labstreaminglayer / App-LabRecorder

An application for streaming one or more LSL streams to disk in XDF file format.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

LabRecorder crashes on open macOS Big Sur 11.3.1 (20E241)

sunshineinsandiego opened this issue · comments

Hi - Downloaded Big Sur 1.14 tar release here: https://github.com/labstreaminglayer/App-LabRecorder/releases/download/v1.14.0/LabRecorder-1.14.0-MacOS_BigSur.tar.bz2. Extracted the folder to Applications and then tried to open the application. Received this error report:

Process:               LabRecorder [8343]
Path:                  /private/var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
Identifier:            ???
Version:               ??? (???)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           LabRecorder [8343]
User ID:               501

Date/Time:             2021-05-27 18:20:17.644 -0700
OS Version:            macOS 11.3.1 (20E241)
Report Version:        12
Anonymous UUID:        2CB947F5-6D76-16D2-6B60-9EBF68C34E08

Sleep/Wake UUID:       35D38B3A-EF8D-4056-9105-1280F2B38C40

Time Awake Since Boot: 97000 seconds
Time Since Wake:       4300 seconds

System Integrity Protection: enabled

Notes:                 Translocated Process

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  dyld: Using shared cache: 94BDF3EE-CD67-34B0-91E1-19D61487C096
Library not loaded: /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /private/var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
  Reason: image not found

Binary Images:
       0x105353000 -        0x1053bafff + (??? - ???) <C42333DD-648D-3CBC-88BB-6D8721E036CE> /var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
       0x114df9000 -        0x114e94fff  dyld (851.27) <7EAA668B-F906-3BAA-A980-139BBE6E8766> /usr/lib/dyld

Model: MacBookAir6,2, BootROM 431.0.0.0.0, 2 processors, Dual-Core Intel Core i7, 1.7 GHz, 8 GB, SMC 2.13f15
Graphics: kHW_IntelHD5000Item, Intel HD Graphics 5000, spdisplays_builtin
Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x02FE, -
Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x02FE, -
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x117), Broadcom BCM43xx 1.0 (7.77.111.1 AirPortDriverBrcmNIC-1680.7)
Bluetooth: Version 8.0.4d18, 3 services, 19 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SM0512F, 500.28 GB
USB Device: USB 3.0 Bus
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
Thunderbolt Bus: MacBook Air, Apple Inc., 23.6

Looks like a Qt dependency issue? Any advice for fixing? Thanks!

It's been a long time since I dealt with dylib hell on OSX, but I would check:

  1. that the Qt libraries are copied into the app package contents: Right-click on the app, open 'Contents' and look in the 'Frameworks' directory, look for the Qt*.dylib files there
  2. that the Qt libraries do not in fact exist in your OS's normal search paths: look at the contents of /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets (if it exists---probably not since it can't load the libraries)

If I recall correctly, if the Qt*.dylib files are in the app's Contents/Frameworks directory you should not get this error.

This information will be helpful to the developers who maintain LabRecorder.

  1. No frameworks directory:
    Screen Shot 2021-05-27 at 8 52 06 PM
  2. Nothing at usr/local/opt/qt
% cd /usr/local/opt/qt
cd: no such file or directory: /usr/local/opt/qt
local % cd /usr/local
local % ls -al
total 0
drwxr-xr-x   2 root  wheel   64 Jan  1  2020 .
drwxr-xr-x@ 11 root  wheel  352 Jan  1  2020 ..

Also, a question for the osx people, shouldn't it be lsl.1.14.0.dylib not liblsl.1.14.0.dylib? The linux and Windows libs got a name change at 1.14.

Sorry, didn't mean to close this. Hit the wrong button...

Nope, same error with previous version

Process:               LabRecorder [8671]
Path:                  /private/var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
Identifier:            ???
Version:               ??? (???)
Code Type:             X86-64 (Native)
Parent Process:        ??? [1]
Responsible:           LabRecorder [8671]
User ID:               501

Date/Time:             2021-05-27 21:05:03.231 -0700
OS Version:            macOS 11.3.1 (20E241)
Report Version:        12
Anonymous UUID:        2CB947F5-6D76-16D2-6B60-9EBF68C34E08

Sleep/Wake UUID:       E5D9A0AB-75DC-4A58-8E7A-405A499247C4

Time Awake Since Boot: 100000 seconds
Time Since Wake:       1400 seconds

System Integrity Protection: enabled

Notes:                 Translocated Process

Crashed Thread:        0

Exception Type:        EXC_CRASH (SIGABRT)
Exception Codes:       0x0000000000000000, 0x0000000000000000
Exception Note:        EXC_CORPSE_NOTIFY

Termination Reason:    DYLD, [0x1] Library missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  dyld: Using shared cache: 94BDF3EE-CD67-34B0-91E1-19D61487C096
Library not loaded: /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets
  Referenced from: /private/var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
  Reason: image not found

Binary Images:
       0x10da9d000 -        0x10dacafff + (??? - ???) <F2110336-46F9-3CC7-A1F6-8CB41971AC55> /var/folders/*/LabRecorder.app/Contents/MacOS/LabRecorder
       0x119186000 -        0x119221fff  dyld (851.27) <7EAA668B-F906-3BAA-A980-139BBE6E8766> /usr/lib/dyld

Model: MacBookAir6,2, BootROM 431.0.0.0.0, 2 processors, Dual-Core Intel Core i7, 1.7 GHz, 8 GB, SMC 2.13f15
Graphics: kHW_IntelHD5000Item, Intel HD Graphics 5000, spdisplays_builtin
Memory Module: BANK 0/DIMM0, 4 GB, DDR3, 1600 MHz, 0x02FE, -
Memory Module: BANK 1/DIMM0, 4 GB, DDR3, 1600 MHz, 0x02FE, -
AirPort: spairport_wireless_card_type_airport_extreme (0x14E4, 0x117), Broadcom BCM43xx 1.0 (7.77.111.1 AirPortDriverBrcmNIC-1680.7)
Bluetooth: Version 8.0.4d18, 3 services, 19 devices, 1 incoming serial ports
Network Service: Wi-Fi, AirPort, en0
Serial ATA Device: APPLE SSD SM0512F, 500.28 GB
USB Device: USB 3.0 Bus
USB Device: BRCM20702 Hub
USB Device: Bluetooth USB Host Controller
Thunderbolt Bus: MacBook Air, Apple Inc., 23.6

OK. Then I probably don't know what I'm talking about (unless the dylibs are supposed to ship there as well, and didn't...). I'm sure either Chad or Tristan will comment with useful answers shortly.

In the meantime, you could try installing the Qt5 dependencies on your machine. If the libraries get placed in the expected search path (i.e. /usr/local/opt/qt/) then you might not have this error any more.

Got it, thanks!

Also, a question for the osx people, shouldn't it be lsl.1.14.0.dylib not liblsl.1.14.0.dylib? The linux and Windows libs got a name change at 1.14.

No that was Windows only. *NIX based systems (including MacOS) keep the lib prefix.

Sorry for taking a while to answer. I assumed this had to do with BigSur hiding libs in different places and I thought it might take a while to hunt down. But I'm on Big Sur 11.4 and my locally-built version of LabRecorder bundles Qt and it works fine. I uploaded my locally built version here:
https://github.com/labstreaminglayer/App-LabRecorder/releases/download/v1.14.0/LabRecorder-1.14.0-MacOS_BigSur.zip

Not sure why that isn't happening on the CI servers.

OK. Then I probably don't know what I'm talking about (unless the dylibs are supposed to ship there as well, and didn't...). I'm sure either Chad or Tristan will comment with useful answers shortly.

Six messages in and and the problem is already identified, which is more than I would have found out with my limited knowledge about Macs (it boils down to "don't try weird-command-key + Q to enter the @ sign").

Not sure why that isn't happening on the CI servers.

I had feared I wouldn't have anything useful to add, but it turns out I can :-)

From the build log:

CPack: - Install project: LabRecorder []
CPack: - Install component: LabRecorder
/Applications/Xcode_12.4.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ranlib: file: /Users/runner/work/App-LabRecorder/App-LabRecorder/package/_CPack_Packages/Darwin/TBZ2/lsl-1.14.0-Darwin/LabRecorder/LabRecorder/libxdfwriter.a(mocs_compilation.cpp.o) has no symbols
CPack: - Install component: Unspecified
CMake Warning at /Users/runner/work/App-LabRecorder/App-LabRecorder/build/cmake_install.cmake:110 (message):
'/Users/runner/work/App-LabRecorder/Qt/5.15.2/clang_64/bin/macdeployqt' '/Users/runner/work/App-LabRecorder/App-LabRecorder/package/_CPack_Packages/Darwin/TBZ2/lsl-1.14.0-Darwin/Unspecified/LabRecorder/LabRecorder.app' '-verbose=1' '-always-overwrite'
Error: Could not find app bundle
"/Users/runner/work/App-LabRecorder/App-LabRecorder/package/_CPack_Packages/Darwin/TBZ2/lsl-1.14.0-Darwin/Unspecified/LabRecorder/LabRecorder.app"

It seems that CPack doesn't run macdeployqt in the wrong subfolder. I have pushed a quick'n'dirty fix in #64, but if that doesn't work I'll need to investigate it next week.

Thanks, @cboulay and @tstenner. I'll try @cboulay locally built version first before the quick fix from @tstenner . @cboulay Did you extract your locally built labrecorder into system applications or user applications? Thanks!

@sunshineinsandiego - Neither. I keep it in my Tools folder on a secondary partition. I don't think it matters where you put it.

@cboulay Your version works! Awesome, thanks mucho. Super helpful. Extracted and ran in system applications.

No that was Windows only. *NIX based systems (including MacOS) keep the lib prefix.

Ah yes. I see now that I read the 1.14 release notes incorrectly.