0 votes

La mise à jour de Mac OS Sierra vers High Sierra provoque le plantage d'une application

J'ai une application de partage de fichiers qui fonctionne comme DropBox et Google Drive. L'application fonctionne bien sous Mac OS Sierra 10.3.2 et plus. Cependant, lorsque nous mettons à jour l'OS vers High Sierra (10.3.3), l'application se bloque. Apple est passé d'Openssl à Libressl lors de la mise à jour.

Scénario .

J'ai un dossier de synchronisation contenant 25 000 fichiers. Le comportement souhaité est que l'application pousse ces fichiers vers le serveur.

Comportement .

Après les 1000 fichiers, l'application se bloque. D'après les journaux de crash, il semble que l'application se bloque sur libcrypto.35.dylib.

Théories .

J'ai quelques théories sur ce qui se passe ici.

  1. J'ai une condition de course dans l'application qui a été exposée dans la mise à jour de l'OS. Cela expliquerait pourquoi je ne le vois pas dans les versions précédentes de Mac OS.

  2. Il y a un bug dans la nouvelle version de Libressl d'Apple. Cependant, je n'ai pas vu beaucoup de plaintes à ce sujet.

Rapport sur le crash du fil de discussion

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

Question

  1. Y a-t-il un bogue dans High Sierra qui explique ce comportement/rapport d'accident ?
  2. Sinon, quelles sont les causes possibles de ce crash ?

1voto

jefe2000 Points 1246

Une application se terminant par le signal 11 ( SIGSEGV , défaut de segmentation ) est généralement le signe d'un mauvais accès à la mémoire dans le code de l'application. Il s'agit très probablement d'un bogue. Votre meilleure chance est de signaler le problème à Apple par le biais de leur rapport de bogue en ligne : https://bugreport.apple.com/

Alternativement, si vous pouvez trouver un reproducteur qui pointe vers un bogue en dehors de MacOS, vous pouvez essayer de remplir un rapport de bogue directement contre libressl : http://www.libressl.org

0 votes

Merci pour votre commentaire. Je vais contacter Apple et déposer le bug. Lorsque vous parlez de code d'application, faites-vous référence à mon application File Sync ? Je suis d'accord qu'il s'agit probablement d'un bogue avec Apple puisque j'ai exécuté l'application sur une version plus récente dans des conditions similaires et qu'elle s'est comportée correctement.

0 votes

Par code d'application J'entendais par là tout le code de l'application/du programme ou les diverses "bibliothèques de code" fournies par MacOS et utilisées par l'application/le programme. Dans ce cas, libressl est une "bibliothèque de code" que votre application/programme utilise.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X