MacOS – Update from Mac OS Sierra to High Sierra causes App to crash

crashhigh sierramacosopenssl

I have a file sharing application which works like DropBox and Google Drive. The application works fine in Mac OS Sierra 10.3.2 and older. However when we update the OS to High Sierra (10.3.3) the app crashes.
Apple did move from Openssl to Libressl in the update.

Scenario.

I have a synch folder with 25,000 files. The desired behavior is for the application to push those files to the server.

Behavior.

After the 1000 file the app crashes. From the crash logs, it appears to be crashing on libcrypto.35.dylib

Theories.

I have a few theories as to what is happening here.

  1. I have a race condition in the application that has been exposed in the OS update. This would explain why I do not see it in the previous Mac OS versions.

  2. There is a bug in Apple's new version of Libressl. However I have not seen many complaints about this issue.

Crashing Thread Report

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. Is there a bug in High Sierra that explains this behavior/crash report
  2. If not what are the possible causes for this crash ?

Best Answer

An app terminating with signal 11 (SIGSEGV, segmentation fault) is usually an indication of bad memory access in the application code. It's very likely a bug. Your best bet is to file a bug with Apple via their online bug reporter: https://bugreport.apple.com/

Alternatively, if you can find a reproducer that points to a bug outside of macOS, you could try filing a bug report directly against libressl: http://www.libressl.org