Vik
Vik

Reputation: 1927

Mysterious crash happening many times with strange stacktrace

I got this app live on the app store, for which in 10 days I got more than 6000 crashes! The stacktrace I can see on HockeyApp is quite cryptic, and I also get 2 different stacktraces depending on iOS version (5 or 6), but I'm pretty sure they are both the same crash. What do you think about this? Where should I hunt the bug? Needless to say I can't reproduce it.

iOS 6

Thread 0 Crashed:
0   libobjc.A.dylib                     0x3ae395d0 _objc_msgSend + 16
1   Foundation                          0x338bc4a1 __NSThreadPerformPerform + 461
2   CoreFoundation                      0x32f798f7 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
3   CoreFoundation                      0x32f791f3 __CFRunLoopDoSources0 + 363
4   CoreFoundation                      0x32f77f2f __CFRunLoopRun + 647
5   CoreFoundation                      0x32eeb23d _CFRunLoopRunSpecific + 357
6   CoreFoundation                      0x32eeb0c9 _CFRunLoopRunInMode + 105
7   GraphicsServices                    0x36aa633b _GSEventRunModal + 75
8   UIKit                               0x34e072b9 _UIApplicationMain + 1121
9   <REDACTED>                        0x00055943 main (main.m:16)

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0x736f7477
Crashed Thread:  0

iOS 5:

Thread 0 Crashed:
0   libobjc.A.dylib                     0x338c8f78 _objc_msgSend + 16
1   CoreFoundation                      0x35c091fb -[NSObject performSelector:withObject:] + 43
2   Foundation                          0x350d9747 ___NSThreadPerformPerform + 351
3   CoreFoundation                      0x35c7ead3 ___CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
4   CoreFoundation                      0x35c7e335 ___CFRunLoopDoSources0 + 365
5   CoreFoundation                      0x35c7d045 ___CFRunLoopRun + 653
6   CoreFoundation                      0x35c004a5 _CFRunLoopRunSpecific + 301
7   CoreFoundation                      0x35c0036d _CFRunLoopRunInMode + 105
8   GraphicsServices                    0x3399b439 _GSEventRunModal + 137
9   UIKit                               0x333d8cd5 _UIApplicationMain + 1081
10  <REDACTED>                        0x0003f32b main (main.m:16)

Exception Type:  SIGSEGV
Exception Codes: SEGV_ACCERR at 0xf10d9e21
Crashed Thread:  0

I have checked every call to performSelector:withObject: and I can't see any unrecognized selector being called. Where can the bug lie?

UPDATE ** Included stack traces from background threads as well

Thread 1:
0   libsystem_kernel.dylib              0x3568a3a8 _kevent + 24
1   libdispatch.dylib                   0x339bdbc9 __dispatch_mgr_wakeup + 1

Thread 2:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 3:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 4:
0   libsystem_kernel.dylib              0x3569a0d8 ___psynch_mutexwait + 24
1   WebCore                             0x3721d4ef __ZL17_WebTryThreadLockb + 215
2   WebCore                             0x3721d7f3 __ZL14WebRunLoopLockP19__CFRunLoopObservermPv + 31
3   CoreFoundation                      0x355f8b1b ___CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 19
4   CoreFoundation                      0x355f6d57 ___CFRunLoopDoObservers + 259
5   CoreFoundation                      0x355f701f ___CFRunLoopRun + 615
6   CoreFoundation                      0x3557a4a5 _CFRunLoopRunSpecific + 301
7   CoreFoundation                      0x3557a36d _CFRunLoopRunInMode + 105
8   WebCore                             0x372c0ca3 __ZL12RunWebThreadPv + 403
9   libsystem_c.dylib                   0x34843735 __pthread_start + 321

Thread 5:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 6:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 7:
0   libsystem_kernel.dylib              0x3568a004 _mach_msg_trap + 20
1   CoreFoundation                      0x355f83f3 ___CFRunLoopServiceMachPort + 127
2   CoreFoundation                      0x355f712b ___CFRunLoopRun + 883
3   CoreFoundation                      0x3557a4a5 _CFRunLoopRunSpecific + 301
4   CoreFoundation                      0x3557a36d _CFRunLoopRunInMode + 105
5   Foundation                          0x349bfbb9 +[NSURLConnection(Loader) _resourceLoadLoop:] + 309
6   Foundation                          0x349bfa81 -[NSThread main] + 73
7   Foundation                          0x34a53591 ___NSThread__main__ + 1049
8   libsystem_c.dylib                   0x34843735 __pthread_start + 321

Thread 8:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 9:
0   libsystem_kernel.dylib              0x3569a570 ___select + 20
1   libsystem_c.dylib                   0x34843735 __pthread_start + 321

Thread 10:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 11:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 12:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 13:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 14:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 15:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 16:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 17:
0   libsystem_kernel.dylib              0x3569acd4 ___workq_kernreturn + 8

Thread 0 crashed with ARM Thread State:
    r0: 0x10910cc0     r1: 0x322194f6     r2: 0x00482a7a     r3: 0x00000000 
    r4: 0xf10a6823     r5: 0x00481a7a     r6: 0x33102823     r7: 0x2fef2e54 
    r8: 0x00482a7a     r9: 0x0c88653d    r10: 0x3efac9b4    r11: 0x00000000 
    ip: 0x004a710c     sp: 0x2fef2e38     lr: 0x00315cf3     pc: 0x33242f78 
  cpsr: 0x20080030 

Thanks

EDITED: I finally solved it thanks to DDPerformDebugger.m The crash was caused by a third party framework provided by the customer. Thanks everybody

Upvotes: 2

Views: 808

Answers (1)

Kerni
Kerni

Reputation: 15339

It seems you have a memory and threading issue in your app. The app is trying to send a message (method) to an object that is already deallocated.

Both stack traces hint at the usage of threads. It looks like you are doing some work in a background thread and then sending a message to an object (on the main thread?) which does not exist any more. So it might be helpful to check the stack traces of your background threads and see what they are doing.

Upvotes: 1

Related Questions