Ho un'applicazione di condivisione file che funziona come DropBox e Google Drive. L'applicazione funziona perfettamente con Mac OS Sierra 10.3.2 e versioni precedenti. Tuttavia, quando aggiorniamo il sistema operativo su High Sierra (10.3.3), l'app si arresta in modo anomalo. Nell'aggiornamento, Apple è passata da Openssl a Libressl.
Scenario .
Ho una cartella di sincronizzazione con 25.000 file. Il comportamento desiderato è che l'applicazione spinga quei file al server.
Comportamento .
Dopo il file 1000 l'app si arresta in modo anomalo. Dai registri degli arresti anomali, sembra bloccarsi su libcrypto.35.dylib
Teorie .
Ho alcune teorie su ciò che sta accadendo qui.
-
Ho una condizione di competizione nell'applicazione che è stata esposta nell'aggiornamento del sistema operativo. Questo spiegherebbe perché non lo vedo nelle versioni precedenti di Mac OS.
-
C'è un bug nella nuova versione di Libressl di Apple. Tuttavia non ho visto molte lamentele riguardo a questo problema.
Rapporto sui thread in crash
Process: fileSync [8888]
Path: /Applications/file Synce.app/Contents/MacOS/File Sync
Identifier: com.hds.osx.fss.File-Sync
Version: 9.0.0
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: File Sync [8888]
User ID: 503
Date/Time: 2018-03-22 16:28:17.837 -0400
OS Version: Mac OS X 10.13.3 (17D47)
Report Version: 12
Anonymous UUID: FBE3606C-ABD0-D8A2-E971-ADD1A3955EFC
Sleep/Wake UUID: 45EAC198-3478-40FC-B89A-613ECA3EB94A
Time Awake Since Boot: 150000 seconds
Time Since Wake: 6000 seconds
System Integrity Protection: enabled
Crashed Thread: 12
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: EXC_I386_GPFLT
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11
Termination Reason: Namespace SIGNAL, Code 0xb
Terminating Process: exc handler [0]
Thread 12 Crashed:
0 libcrypto.35.dylib 0x00007fff51d47ffa ERR_STATE_free + 58
1 libcrypto.35.dylib 0x00007fff51d48fac int_thread_del_item + 252
2 libcrypto.35.dylib 0x00007fff51d47f78 ERR_remove_thread_state + 104
3 libcurl.4.dylib 0x00007fff5205a25b Curl_close + 186
4 libcurl.4.dylib 0x00007fff52075c08 curl_multi_cleanup + 227
5 com.hds.osx.fss.File-Sync 0x000000010cc3e317 CurlHttpClient::~CurlHttpClient() + 263
6 com.hds.osx.fss.File-Sync 0x000000010cd430ab AwRestClient::QueryFileSystemChanges(unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, AwFileSystemChangeList&, AwRestResponse&) + 539
7 com.hds.osx.fss.File-Sync 0x000000010ccd9fb7 AwFssMgr::PullRemoteChangesPrivate(unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, unsigned long long&, unsigned int&) + 471
8 com.hds.osx.fss.File-Sync 0x000000010ccd9c36 AwFssMgr::PullRemoteChanges(unsigned long long, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&, bool, unsigned int&) + 214
9 com.hds.osx.fss.File-Sync 0x000000010cc72c46 AwController::RemoteNotificationListeningThread() + 2950
10 com.hds.osx.fss.File-Sync 0x000000010cc720ad AwController::RemoteNotificationListeningThread(void*) + 29
11 libsystem_pthread.dylib 0x00007fff539e66c1 _pthread_body + 340
12 libsystem_pthread.dylib 0x00007fff539e656d _pthread_start + 377
13 libsystem_pthread.dylib 0x00007fff539e5c5d thread_start + 13
Domanda
- C'è un bug in High Sierra che spiega questo comportamento / rapporto sugli arresti anomali
- Se no quali sono le possibili cause di questo incidente?