L'aggiornamento da Mac OS Sierra a High Sierra provoca l'arresto anomalo dell'app

0

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.

  1. 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.

  2. 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

  1. C'è un bug in High Sierra che spiega questo comportamento / rapporto sugli arresti anomali
  2. Se no quali sono le possibili cause di questo incidente?
posta Rstack 23.03.2018 - 17:02
fonte

1 risposta

1

Un'app che termina con il segnale 11 ( SIGSEGV , errore di segmentazione ) è di solito un'indicazione di un cattivo accesso alla memoria in il codice dell'applicazione. È molto probabile un bug. La soluzione migliore è presentare un bug con Apple tramite il loro reporter di bug online: link

In alternativa, se riesci a trovare un riproduttore che punta a un bug al di fuori di macOS, puoi provare a presentare una segnalazione di bug direttamente contro libressl: link

    
risposta data 23.03.2018 - 20:53
fonte

Leggi altre domande sui tag