xintrea / mytetra_dev

MyTetra - smart crossplatform manager for information collecting / MyTetra - кроссплатформенный менеджер накопления информации / Официальная страница:
http://webhamster.ru/site/page/index/articles/projectcode/105
254 stars 55 forks source link

При запуске синхронизации из приложения - крашится (MacOS) #165

Closed perevozchiko closed 7 months ago

perevozchiko commented 7 months ago

Mytetra версия 1.44.165 MacOS Sonoma 14.2.1

Синхронизация через гит, из терминала если вручную комитить то все ок.

Строчка синхрониации в настройках cd %a ; git add . ; git commit -a -m MyTetraCommit ; git pull -s recursive ; git push


Translated Report (Full Report Below)

Process: mytetra [77321] Path: /Applications/mytetra.app/Contents/MacOS/mytetra Identifier: com.yourcompany.mytetra Version: ??? Code Type: X86-64 (Translated) Parent Process: launchd [1] User ID: 501

Date/Time: 2024-03-19 16:11:05.2870 +0100 OS Version: macOS 14.2.1 (23C71) Report Version: 12 Anonymous UUID: 73F16C0A-BBA7-D3BF-32B6-79106C1DAD4D

Sleep/Wake UUID: 63CB62D7-6736-4BBC-893E-16BCAF28BD3B

Time Awake Since Boot: 990000 seconds Time Since Wake: 36275 seconds

System Integrity Protection: enabled

Notes: PC register does not match crashing frame (0x0 vs 0x10C7663C9)

Crashed Thread: 0 Dispatch queue: com.apple.main-thread

Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000 Exception Codes: 0x0000000000000001, 0x0000000000000000

Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11 Terminating Process: exc handler [77321]

Полный версия лога краша в файле

crash.txt

xintrea commented 7 months ago

Это вы запускаете под MacOs код для x86_64 на ARM-процессоре с эмуляцией через Розетту?

Тут я вам ничего сказать не могу.

Единственное что я вижу - это проблема возникает в момент создания треда (thread_create) в котором должны запуститься команды синхронизации MyTetra. Видимо, либо эмулятор Розетта, либо сама операционка не позволяет программе создать новый тред. Возможно, где-то в настройках запуска программы эмуляции надо поставить галочку, разрешающую выполнять многопоточное приложение.

В принципе, вся MyTetra написана в одном потоке, но вот именно процедура синхронизации сделана через дополнительный поток, чтобы пользователь мог работать пока синхронизация идет, и чтобы работала фоновая синхронизация.

Вам нужно разобраться как корректно запускать многопоточные программы в MacOs/Rosetta.

perevozchiko commented 7 months ago

Да запускаю на macos с arm процессором M2.

perevozchiko commented 7 months ago

Установил сборку 1.43.27 https://webhamster.ru/punbb/viewtopic.php?id=198 Все установилось корректно, синхронизация заработала