I keep getting these crashes in my app that´s in the AppStore. The CrashReport always looks like this:
Incident Identifier: 986486D7-F013-4102-B9E3-84F923223914
CrashReporter Key: [TODO]
Hardware Model: iPhone4,1
Process: MyApp [57885]
Path: /Users/USER/MyApp.app/MyApp
Identifier: de.myapp.iphone
Version: 12475
Code Type: ARM
Parent Process: launchd [1]
Date/Time: 2012-12-20 15:48:53 +0000
OS Version: iPhone OS 6.0.1 (10A523)
Report Version: 104
Exception Type: SIGTRAP
Exception Codes: #0 at 0x3abd62be
Crashed Thread: 0
Thread 0 Crashed:
0 CoreFoundation 0x363582be CFRelease + 18
1 WebCore 0x383de395 WebCore::stopSharedTimer() + 33
2 WebCore 0x38433515 WebCore::TimerBase::~TimerBase() + 45
3 WebCore 0x3846003b WebCore::Document::~Document() + 2751
4 WebCore 0x3845f56d WebCore::HTMLDocument::~HTMLDocument() + 81
5 WebCore 0x384e9473 WebCore::JSNodeOwner::finalize(JSC::Handle<JSC::Unknown>, void*) + 79
6 JavaScriptCore 0x321e2067 JSC::WeakBlock::sweep() + 87
7 JavaScriptCore 0x321e22ad JSC::WeakSet::sweep() + 53
8 JavaScriptCore 0x3213d877 JSC::Heap::collect(JSC::Heap::SweepToggle) + 175
9 JavaScriptCore 0x3213cad9 JSC::DefaultGCActivityCallbackPlatformData::timerDidFire(__CFRunLoopTimer*, void*) + 145
10 CoreFoundation 0x363ec5df __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 15
11 CoreFoundation 0x363ec291 __CFRunLoopDoTimer + 273
12 CoreFoundation 0x363eaf01 __CFRunLoopRun + 1233
13 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357
14 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105
15 GraphicsServices 0x3490e2eb GSEventRunModal + 75
16 UIKit 0x37b2b2f9 UIApplicationMain + 1121
17 MyApp 0x00003927 main (main.m:20)
Thread 5:
0 libsystem_kernel.dylib 0x3681feb4 mach_msg_trap + 20
1 CoreFoundation 0x363ec045 __CFRunLoopServiceMachPort + 129
2 CoreFoundation 0x363eada3 __CFRunLoopRun + 883
3 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357
4 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105
5 Foundation 0x307f978f -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 255
6 Foundation 0x3089d05d -[NSRunLoop(NSRunLoop) run] + 81
7 MyApp 0x000c3225 +[AFURLConnectionOperation networkRequestThreadEntryPoint:] (AFURLConnectionOperation.m:157)
8 Foundation 0x308a667d __NSThread__main__ + 973
9 libsystem_c.dylib 0x33ab5311 _pthread_start + 309
Thread 6:
0 libsystem_kernel.dylib 0x3681feb4 mach_msg_trap + 20
1 CoreFoundation 0x363ec045 __CFRunLoopServiceMachPort + 129
2 CoreFoundation 0x363eada3 __CFRunLoopRun + 883
3 CoreFoundation 0x3635debd CFRunLoopRunSpecific + 357
4 CoreFoundation 0x3635dd49 CFRunLoopRunInMode + 105
5 Foundation 0x30822bcd +[NSURLConnection(Loader) _resourceLoadLoop:] + 309
6 Foundation 0x308a667d __NSThread__main__ + 973
7 libsystem_c.dylib 0x33ab5311 _pthread_start + 309
Thread 7:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 8:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 10:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 13:
0 libsystem_kernel.dylib 0x3682239c pread + 20
1 libsqlite3.dylib 0x33978109 sqlite3_get_table + 125
2 libsqlite3.dylib 0x339772a7 sqlite3_get_table + 125
3 libsqlite3.dylib 0x33d25fb1 0x33cde000 + 294833
4 libsqlite3.dylib 0x33d13807 0x33cde000 + 219143
5 libsqlite3.dylib 0x33d0d49d 0x33cde000 + 193693
6 libsqlite3.dylib 0x3398648f sqlite3_step + 2143
7 CFNetwork 0x3138276b __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 459
8 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 17:
0 libsystem_kernel.dylib 0x3683008c __psynch_cvwait + 24
1 libsystem_c.dylib 0x33aadaa5 pthread_cond_timedwait + 45
2 JavaScriptCore 0x320d6c75 WTF::ThreadCondition::timedWait(WTF::Mutex&, double) + 109
3 JavaScriptCore 0x321e8557 JSC::BlockAllocator::blockFreeingThreadMain() + 83
4 JavaScriptCore 0x321fafab _ZN3WTFL19wtfThreadEntryPointEPv + 15
5 libsystem_c.dylib 0x33ab5311 _pthread_start + 309
Thread 18:
0 libsystem_kernel.dylib 0x3683008c __psynch_cvwait + 24
1 libsystem_c.dylib 0x33ab7f19 pthread_cond_wait + 41
2 JavaScriptCore 0x3217bf41 JSC::SlotVisitor::drainFromShared(JSC::SlotVisitor::SharedDrainMode) + 149
3 JavaScriptCore 0x3217be81 JSC::MarkStackThreadSharedData::markingThreadMain() + 145
4 JavaScriptCore 0x321fafab _ZN3WTFL19wtfThreadEntryPointEPv + 15
5 libsystem_c.dylib 0x33ab5311 _pthread_start + 309
Thread 22:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 25:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 43:
0 libsystem_kernel.dylib 0x3682239c pread + 20
1 libsqlite3.dylib 0x33978109 sqlite3_get_table + 125
2 libsqlite3.dylib 0x339772a7 sqlite3_get_table + 125
3 libsqlite3.dylib 0x33d25fb1 0x33cde000 + 294833
4 libsqlite3.dylib 0x33d13807 0x33cde000 + 219143
5 libsqlite3.dylib 0x33d0d49d 0x33cde000 + 193693
6 libsqlite3.dylib 0x3398648f sqlite3_step + 2143
7 CFNetwork 0x3138276b __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 459
8 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 44:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x31382619 __CFURLCache::DoBulkLookupAndStoreBasedOnTime(__CFString const*) + 121
2 CFNetwork 0x313c4667 __ExecuteSQLSelectAndCreateResponse_block_invoke_0 + 35
3 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
4 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
5 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
6 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 47:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 49:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 50:
0 libsystem_kernel.dylib 0x368300fc __psynch_mutexwait + 24
1 CFNetwork 0x3137647f __CFURLCache::ExecuteSQLSelectAndCreateResponse(__CFString const*, bool) + 179
2 CFNetwork 0x313763b1 __CFURLCache::LookupCachedURLResponse(__CFURLCacheNode*, bool) + 13
3 CFNetwork 0x31387893 __CFURLCache::CopyResponseForRequest(_CFURLRequest const*, bool) + 231
4 CFNetwork 0x313c2ee1 __CFURLCacheCopyResponseForRequestInternal(_CFURLCache const*, _CFURLRequest const*, unsigned char) + 33
5 CFNetwork 0x313fe8bd ___loaderEvent_StartLoad_block_invoke_0 + 45
6 CFNetwork 0x3141e657 ConnectionSession::withStorageSession(void ( block_pointer)(StorageSession const*)) const + 83
7 CFNetwork 0x313ff9d5 __withStorageSessionAsync_block_invoke_0 + 17
8 CFNetwork 0x313d3639 __withConnectionSessionAsync_block_invoke_0 + 17
9 libdispatch.dylib 0x3807711f _dispatch_call_block_and_release + 11
10 libdispatch.dylib 0x3807b961 _dispatch_root_queue_drain + 253
11 libdispatch.dylib 0x3807bac1 _dispatch_worker_thread2 + 85
12 libsystem_c.dylib 0x33aaaa11 _pthread_wqthread + 361
Thread 51:
0 libsystem_kernel.dylib 0x36830d98 __workq_kernreturn + 8
1 libsystem_c.dylib 0x33aaaa16 _pthread_wqthread + 366
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x5df80157 r2: 0x1ddd4000 r3: 0x38596026
r4: 0x3be2c86c r5: 0x00000000 r6: 0x00000000 r7: 0x2fd1be1c
r8: 0x00000000 r9: 0x00293498 r10: 0x00388800 r11: 0x04432d90
ip: 0x3bd68a50 sp: 0x2fd1bde8 lr: 0x368ba395 pc: 0x3abd62be
cpsr: 0x60000030
I´m basically using an AFJSONRequestOperation in a UIViewController, which has been pushed onto a NavigationController to fetch a JSON it display its contents. Is it AFNetworking that´s causing the crash (in Thread 5)? Or could it be a flaw in my code? I´m really stuck and it happens quite often. Any help or questions very much appreciated!
Check if some ad opened the iTunes. Maybe you are opening too many threads in the initialization of your application. You can try to enqueue these requests. Just random thoughts..
Its not a problem with Thread 5 according to the crash; it is a problem in Thread 0.
Brian in his blog posting adds some background information on how the timer operates in webkit.
http://brrian.tumblr.com/post/13951629341/how-webkits-event-model-works
Its interesting that the problem OS is 6.0.1, not the newer version 6.1, nor 7.x (as of the time of writing).
The crash happens during a CFRelease, and this tends to happen when a resource has already been released is released. My suggestion is to see if the problem happens on any newer OS as it sounds like a WebKit bug. Webkit is the code responsible for the timer.
The timer code has been re-worked anyhow: https://trac.webkit.org/changeset/143210
So I think the best option is to look to see if the newest iOS ever has this crash, or the newest 6.x (6.1).
Failing this, and assuming you cannot reproduce the problem, since you have networking queries (and DB queries) going on, the classic way timers come into the picture is when you have slow/unreliable network connection. Use Apple's Network Link Conditioner to simulate such conditions. This might show up the problem in WebKit.