NSURLCache crashes under iOS 6.1 - ios

Using iOS 6.1 my App crashes regulary, directly after startup, when it attempts to make several HTTP-Requests, but it works fine on any OS < 6.1.
I'm experiencing
EXC_BAD_ACCESS crashes in the strlen function called from the Queue : com.apple.CFURLCACHE_work_queue, everytime my App is started, except for the first time.
I could resolve the issue by clearing the NSURLCache, directly after the app started:
[[NSURLCache sharedURLCache] removeAllCachedResponses];
Does anyone else experience these crashes? Could there be some issue in the application code causing these crashes? Or should this be a bug filed to apple?

Experiencing a similar crash since iOS 6.1 with a newly installed application. The difference is that the crash occurs when tapping a text cell in a table view. No web requests are being made at this time.
This is the bt:
thread #4: tid = 0x2903, 0x3ae7ad74 libsystem_c.dylib`strlen + 28, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x3ae7ad74 libsystem_c.dylib`strlen + 28
frame #1: 0x3ac6be24 libsqlite3.dylib`___lldb_unnamed_function282$$libsqlite3.dylib + 1232
frame #2: 0x3ac74a5e libsqlite3.dylib`sqlite3_file_control + 174
frame #3: 0x328493fe CFNetwork`__CFURLCache::RecreateEmptyPersistentStoreOnDiskAndOpen_NoLock() + 30
frame #4: 0x32849000 CFNetwork`__CFURLCache::RecreateEmptyPersistentStoreOnDiskAndOpen() + 44
frame #5: 0x327f9488 CFNetwork`__CFURLCache::OpenDatabase() + 192
frame #6: 0x32846a72 CFNetwork`__CFURLCache::ProcessCacheTasks0(bool) + 358
frame #7: 0x32846900 CFNetwork`__CFURLCache::ProcessCacheTasks(bool) + 36
frame #8: 0x3284681e CFNetwork`__CFURLCache::_CFURLCacheTimerCallback0() + 358
frame #9: 0x328466ac CFNetwork`__CFURLCache::_CFURLCacheTimerCallback(void*) + 32
frame #10: 0x328490fc CFNetwork`__SignalWorkerTaskToPerformWork_block_invoke_0 + 12
frame #11: 0x3ae4611e libdispatch.dylib`_dispatch_call_block_and_release + 10
frame #12: 0x3ae49ece libdispatch.dylib`_dispatch_queue_drain$VARIANT$mp + 142
frame #13: 0x3ae49dc0 libdispatch.dylib`_dispatch_queue_invoke$VARIANT$mp + 40
frame #14: 0x3ae4a91c libdispatch.dylib`_dispatch_root_queue_drain + 184
frame #15: 0x3ae4aac0 libdispatch.dylib`_dispatch_worker_thread2 + 84
frame #16: 0x3ae7aa10 libsystem_c.dylib`_pthread_wqthread + 360
frame #17: 0x3ae7a8a4 libsystem_c.dylib`start_wqthread + 8
Reported this as a TSI to Apple, it was reviewed and they requests that I log this as a bug, still need to do this.
Interestingly enough the solution which you found also helped me, clearing the cache at launch solved this problem.

This is only half an answer, but I'm running into a very similar problem whilst running my unit tests. Bizarrely, this only seemed to start happening today.
The full details of my issue are outlined in this Apple dev forums thread.
The common link between our problems appears to be the call to RecreateEmptyPersistentStoreOnDiskAndOpen_NoLock(). If my understanding of CFURLCache is correct, and based on the backtrace, it uses a sqlite3 database internally as a cache. I'd assume this function call creates the empty sqlite3 database on disk.
I was able to repeatedly and consistently stop my tests crashing by deleting the simulator's Library/Caches directory (~/Library/Application Support/iPhone Simulator/6.1/Library/Caches) and make the crash return by re-creating that directory.
Deleting the entire simulator home directory and letting it be recreated by launching my app in the simulator would also fix and re-create the issue.
I'm guessing this is an OS bug; the curious thing is why for me, it only just started happening.

Related

EXC_BAD_INSTRUCTION from com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export

I have an app that runs fine on iOS, but when running with catalyst, it gives me this crash intermittently if I swipe to another virtual Desktop on macOS, and then back, for about 10 times. It mostly happens on a UICollectionViewController
This is the backtrace:
(lldb) bt
* thread #5, queue = 'com.apple.xpc.activity.com.apple.cloudkit.scheduler.com.apple.coredata.cloudkit.activity.export', stop reason = EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
* frame #0: 0x00007fff68c373ae libxpc.dylib`___xpc_activity_dispatch_block_invoke.107.cold.3 + 19
frame #1: 0x00007fff68c1ecdb libxpc.dylib`___xpc_activity_dispatch_block_invoke.107 + 746
frame #2: 0x00000001010377b3 libdispatch.dylib`_dispatch_call_block_and_release + 12
frame #3: 0x000000010103878f libdispatch.dylib`_dispatch_client_callout + 8
frame #4: 0x000000010103fd31 libdispatch.dylib`_dispatch_lane_serial_drain + 777
frame #5: 0x0000000101040ae8 libdispatch.dylib`_dispatch_lane_invoke + 438
frame #6: 0x000000010104df2e libdispatch.dylib`_dispatch_workloop_worker_thread + 681
frame #7: 0x00000001010c4053 libsystem_pthread.dylib`_pthread_wqthread + 290
frame #8: 0x00000001010c3eb3 libsystem_pthread.dylib`start_wqthread + 15
(lldb)
I have tried reviewing the codes, adding print statements, adding breakpoints, commenting out certain parts etc, trying to figure out which part of my code causes this, but failed so far.
I am using NSPersistentCloudKitContainer from iOS 13. Does the stack trace points to a bug inside there?
I've wasted so much time trying to understand the source of the problem and hope that this answer helps many others.
This problems seems to persist now since a long time and has not been fixed, nor understood. But the big hint I've read in the comments:
This crash happens only when the app is run from within Xcode.
Another important hint: You can can run your build product directly from Finder without crashing. Even if it is a "Debug" build.
Based on this, I've come to the conclusion that the problem is related to the Debug execution environment and I found the solution: Disable "Debug XPC services used by this application"
There must be some bug in the debugging code used by this option.
You can find this option in your targets scheme.
Click on your target in the window bar
Select "Edit Scheme..."
Make sure "Run" is selected and remove the checkmark for "Debug XPC services used by this application"
I hope this helps everybody!

SIGABRT crash on the first line

I have an iOS app which was running fine until yesterday and suddenly started to crash with Thread 1: signal SIGABRT at this point:
class AppDelegate: UIResponder, UIApplicationDelegate {
Having no idea of the cause I typed bt in the debugging console and got this:
(lldb) bt
* thread #1: tid = 0xda342, 0x0000000194637270 libsystem_kernel.dylib`__pthread_kill + 8, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x0000000194637270 libsystem_kernel.dylib`__pthread_kill + 8
frame #1: 0x00000001946d5170 libsystem_pthread.dylib`pthread_kill + 112
frame #2: 0x00000001945aeb18 libsystem_c.dylib`abort + 112
frame #3: 0x000000018badf2ec GraphicsServices`_GSRegisterPurpleNamedPortInPrivateNamespace + 424
frame #4: 0x000000018bade1d4 GraphicsServices`_GSEventInitializeApp + 140
frame #5: 0x0000000186c86c38 UIKit`UIApplicationMain + 712
* frame #6: 0x00000001000592f0 TheApp`main + 164 at AppDelegate.swift:13
frame #7: 0x000000019451ea08 libdyld.dylib`start + 4
(lldb)
Browsing the net for similar issues I have read it may be due to some problems related to the StoryBoard, but since I am doing everything programmatically I have some doubts that it applies to my case. I have also tried to use an exception break point just in case, but with no success.
I have even remade the project, the problem is still there. It seems something goes wrong even before my code starts to execute. I wonder what I can check.
Anyway if someone can give me a hint on what may be the issue, or on how to further investigate, that would be much appreciated.

EXC_BAD_ACCESS (code=1, address=0x0) when stepping in debugger

My application crashes each and every time I try to step over a call. Without debugger it works fine.
Also, when I run the app in simulator it woks fine with or without debugger.
Recently I upgraded my Mac OS X 10.8 to 10.9 (Mavericks). There were no issues before the upgrade.
What causes the issue and how could I fix it?
Below is the back trace. My app uses ARC. I have enabled zombies and added exception breakpoint but no zombies where detected and exception breakpoint is never triggered.
* thread #1: tid = 0x2503, 0x00000000, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x00000000
frame #1: 0x35e170c4 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 72
frame #2: 0x35e17076 UIKit`-[UIApplication sendAction:toTarget:fromSender:forEvent:] + 30
frame #3: 0x35e17054 UIKit`-[UIControl sendAction:to:forEvent:] + 44
frame #4: 0x35e1690a UIKit`-[UIControl(Internal) _sendActionsForEvents:withEvent:] + 502
frame #5: 0x35e16e00 UIKit`-[UIControl touchesEnded:withEvent:] + 488
frame #6: 0x35d3f5f0 UIKit`-[UIWindow _sendTouchesForEvent:] + 524
frame #7: 0x35d2c800 UIKit`-[UIApplication sendEvent:] + 380
frame #8: 0x35d2c11a UIKit`_UIApplicationHandleEvent + 6154
frame #9: 0x37a1e5a2 GraphicsServices`_PurpleEventCallback + 590
frame #10: 0x37a1e1d2 GraphicsServices`PurpleEventCallback + 34
frame #11: 0x33ef9172 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
frame #12: 0x33ef9116 CoreFoundation`__CFRunLoopDoSource1 + 138
frame #13: 0x33ef7f98 CoreFoundation`__CFRunLoopRun + 1384
frame #14: 0x33e6aebc CoreFoundation`CFRunLoopRunSpecific + 356
frame #15: 0x33e6ad48 CoreFoundation`CFRunLoopRunInMode + 104
frame #16: 0x37a1d2ea GraphicsServices`GSEventRunModal + 74
frame #17: 0x35d80300 UIKit`UIApplicationMain + 1120
frame #18: 0x000faac8 MyApp`main(argc=1, argv=0x2fd0fd08) + 116 at main.m:16
EDIT:
I have latest Xcode Version 5.0.1 (5A2053).
I have created new app from scratch and ran it without issues. Then I put a breakpoint in ViewController's viewDidLoad and tried to step over. Here I got another crash
* thread #1: tid = 0x2503, 0x3bb9d7c4 libobjc.A.dylib`objc_msgSendSuper2 + 4, queue = 'com.apple.main-thread, stop reason = EXC_BAD_ACCESS (code=1, address=0x4)
frame #0: 0x3bb9d7c4 libobjc.A.dylib`objc_msgSendSuper2 + 4
frame #1: 0x000b913a test`-[ViewController viewDidLoad](self=0x1cda5c70, _cmd=0x361bd5db) + 62 at ViewController.m:19
frame #2: 0x35d4b594 UIKit`-[UIViewController loadViewIfRequired] + 364
frame #3: 0x35d8bd78 UIKit`-[UIWindow addRootViewControllerViewIfPossible] + 64
frame #4: 0x35d87aec UIKit`-[UIWindow _setHidden:forced:] + 364
frame #5: 0x35dc91e8 UIKit`-[UIWindow makeKeyAndVisible] + 60
frame #6: 0x35d8c83e UIKit`-[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1666
frame #7: 0x35d8484a UIKit`-[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 698
frame #8: 0x35d2cc38 UIKit`-[UIApplication handleEvent:withNewEvent:] + 1004
frame #9: 0x35d2c6cc UIKit`-[UIApplication sendEvent:] + 72
frame #10: 0x35d2c11a UIKit`_UIApplicationHandleEvent + 6154
frame #11: 0x37a1e5a2 GraphicsServices`_PurpleEventCallback + 590
frame #12: 0x37a1e1d2 GraphicsServices`PurpleEventCallback + 34
frame #13: 0x33ef9172 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 34
frame #14: 0x33ef9116 CoreFoundation`__CFRunLoopDoSource1 + 138
frame #15: 0x33ef7f98 CoreFoundation`__CFRunLoopRun + 1384
frame #16: 0x33e6aebc CoreFoundation`CFRunLoopRunSpecific + 356
frame #17: 0x33e6ad48 CoreFoundation`CFRunLoopRunInMode + 104
frame #18: 0x35d83484 UIKit`-[UIApplication _run] + 668
frame #19: 0x35d80300 UIKit`UIApplicationMain + 1120
frame #20: 0x000b93bc test`main(argc=1, argv=0x2fd51d30) + 116 at main.m:16
frame #21: 0x3bfd9b20 libdyld.dylib`start + 4
EDIT 2:
Greg Clayton in the XCode 5 Crashes while running the app on device suggests following
Others have seen this issue.
A few things to try:
1 - Reboot your device and try again. The theory is an old developer disk image is already mounted and won't be unmounted until you reboot.
2 - Re-install the OS on the device
Hopefully #1 fixes your issue. Others have done #2 and had their issue fixed, but hopefully it doesn't require an OS re-install.
I did both and it didn't help.
I tried to use another device and it made a difference. Exceptions are still there if I use iPod Touch with iOS 6.1 but iPad with iOS 7.0.2 works fine.
So, it looks like the issue is related to the iOS version installed on the device. I am still not sure what to do to fix it.
EDIT 3:
My Command Line Tools version matches my Xcode version (I have only one version of Command Line Tools, actually).
The issues is probably not related to the code being debugged. It crashes with newly created Single View Application created by Xcode. And it crashes when stepping over trivial code:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
I have asked on Apple Developer Forum and got following response from Jason Molenda:
We're tracking a bug that sounds like what you're seeing here. It is
a subtle timing issue that requires a slightly slower host machine or
a slightly slower device to hit. It is primarily iPhone 4 and similar
that will see this with iOS 7. With iOS 6, iPhone 4 and iPhone 3GS
devices are most likely to experience it. ... This issue will only
happen with Xcode 5.0.1.
So, it seems like it's a bug in Xcode.
Ok, this is definitely a bug in Xcode 5.0.1.
This is confirmed by Jason Molenda on Apple Developer Forum. The only workaround for now is to use older version of Xcode and the older version of Mac OS X because Xcode 5 requires OS X 10.8.4.
There is no announced ETA for a fix for this issue. Direct question about ETA on Apple Developer Forum is left without answer.
UPDATE 06-Nov-2013:
Today a pre-release version of Xcode 5.0.2 became available on developer.apple.com. This version fixes (among other things) the following issue:
Debugging an application on a device running iOS 6.x causes the
application to crash with EXC_BAD_ACCESS.  This has been resolved.
(15310896)
I have installed the new version and the issue is indeed gone. Now I am able to debug apps on my 6.x devices again.
Jason Molenda in thread on Apple Developer Forum said:
I'm told you can submit apps to the app store with this Xcode 5.0.2
seed.
I confirm I have exactly same bug. My App worked fine.
After upgrade to Xcode 5 and Mavericks code work but when I debug I can't Step Over certain lines as I get EXC_BAD_ACCESS.
So I have to remember lines that I can't pass with Step Over and put break point after these lines or use Continue to Line to jump over these problematic lines.
PS
Downloaded Xcode 5.0.2 GM seed and debugging is much better. I spent 30 minutes with new Xcode so far.
Please login developer site and download the Xcode 5.0.2 GM seed, it fixed this bug.
See the release notes.
Update 12-Nov-2013
Xcode 5.0.2 has released, you can download it from Dev Center

iOS first steps - getting the annoying SIGABRT error

I'm watching Paul Hegarty's iOS lessons on iTunes U.
I'm developing the first app of the course.
I am randomly getting the same error (Thread 1: signal SIGABRT), about once every two runs.
I placed breakpoints everywhere but the error seems to happen before anything gets called. I checked and re-checked my storyboard since it already happened to me that it was a problem with referenced outlets and that stuff, but everything seems fine. Also, it's so strange that it happens randomly and not programmatically.
I'm on Xcode 4.
I did a bt in lldb, but I keep getting this (same) cryptic error message (given that Matchismo is the name of the app):
(lldb) bt
* thread #1: tid = 0x1c03, 0x94b49a6a libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
frame #0: 0x94b49a6a libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x93ba5b2f libsystem_c.dylib`pthread_kill + 101
frame #2: 0x04a7f57b libsystem_sim_c.dylib`abort + 140
frame #3: 0x01bf3b4e GraphicsServices`GSRegisterPurpleNamedPort + 348
frame #4: 0x01bf369f GraphicsServices`_GSEventInitialize + 123
frame #5: 0x01bf3c1f GraphicsServices`GSEventInitialize + 36
frame #6: 0x0001bd99 UIKit`UIApplicationMain + 600
frame #7: 0x00002a0d Matchismo`main(argc=1, argv=0xbffff3ac) + 141 at main.m:16
frame #8: 0x00002935 Matchismo`start + 53
I don't even know if it's a meaningful question and if it can be actually answered. If not, I'm sorry. If it's necessary, I can paste the entire app code here, it's quite short actually.
Edit
I thought that pushing to a repo and linking the repo here could really make things easier for everyone :).
https://github.com/whatyouhide/Matchismo
I think the problem is situated inside CardGameViewController/CardMatchingGame. I'm not sure though.
I also had this error while doing Matchismo. After spending so much time, I found how to fix it. The way I fixed my error was by going in story board. Below the iPhone screen, there will be small yellow button. Right click on it and you will see that is causing error. Delete(x) it if there is yellow error sign.
If this does not fix your error then try to make new project and then replace its blank files with old files of your old project. I had same error in very beginning and by doing this program run without any error.
Other people suggests by restarting your laptop and running it again, reseting the iOS simulator, or changing iOS debugger (however this does not work in latest x code since there is only one debugger)
Hope this helps

MQMapKit (MapQuest) IOS 6 crashing

I had a working MKMapKit working in an app Im working on and decided to
convert it to MapQuest's MQMapKit which is supposed to be a drop-in replacement from
what I understand. After doing so (and checking for any 'MK' map stuff...which I dont
believe I have any now, they are all 'MQ' map references), Im getting the following
crash when the app tries to start up. Im not sure where 'prepareKeyForNewAnimation'
comes from. It seems to me to be a MapQuest Library issue (which is version 1.0.1).
Any ideas what is causing this or how to fix it? Thanks for any help on this!
013-05-28 07:01:23.394 myapp[25100:14003] === set USER center
2013-05-28 07:01:23.394 myapp[25100:14003] spanVal <0.300000>
2013-05-28 07:01:23.503 myapp[25100:14003] -[CALayer prepareKeyForNewAnimation:]: unrecognized selector sent to instance 0x85781e0
2013-05-28 07:01:23.504 myapp[25100:14003] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CALayer prepareKeyForNewAnimation:]: unrecognized selector sent to instance 0x85781e0'
*** First throw call stack:
(0x1ec7012 0x1c3ae7e 0x1f524bd 0x1eb6bbc 0x1eb694e 0x55e9b 0x248053f 0x2492014 0x24827d5 0x1e6daf5 0x1e6cf44 0x1e6ce1b 0x2efe7e3 0x2efe668 0xb7effc 0x2042 0x1f75)
libc++abi.dylib: terminate called throwing an exception
backtrace:
* thread #1: tid = 0x1f03, 0x9bca39c6 libsystem_kernel.dylib`__pthread_kill + 10, stop reason = signal SIGABRT
frame #0: 0x9bca39c6 libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x90065f78 libsystem_c.dylib`pthread_kill + 106
frame #2: 0x0250157b libsystem_sim_c.dylib`abort + 140
frame #3: 0x02413f7b libc++abi.dylib`abort_message + 105
frame #4: 0x02411a25 libc++abi.dylib`default_terminate() + 34
frame #5: 0x01c3b0c1 libobjc.A.dylib`_objc_terminate() + 94
frame #6: 0x02393652 libstdc++.6.0.9.dylib`std::terminate() + 21
frame #7: 0x01c3b039 libobjc.A.dylib`objc_terminate + 11
frame #8: 0x02492027 libdispatch.dylib`_dispatch_client_callout + 33
frame #9: 0x024827d5 libdispatch.dylib`_dispatch_main_queue_callback_4CF + 296
frame #10: 0x01e6daf5 CoreFoundation`__CFRunLoopRun + 1925
frame #11: 0x01e6cf44 CoreFoundation`CFRunLoopRunSpecific + 276
frame #12: 0x01e6ce1b CoreFoundation`CFRunLoopRunInMode + 123
frame #13: 0x02efe7e3 GraphicsServices`GSEventRunModal + 88
frame #14: 0x02efe668 GraphicsServices`GSEventRun + 104
frame #15: 0x00b7effc UIKit`UIApplicationMain + 1211
frame #16: 0x00002042 myapp`main(argc=1, argv=0xbffff364) + 130 at main.m:16
frame #17: 0x00001f75 myapp`start + 53
[EDIT] Very bizarre. This was happening in the simulator on ipad. I tried plugging
in my iphone 5 and I got a provisioning error (even though it worked earlier and shouldnt
have been an issue. When I edited the dev profile and added a couple other users that
I had and re-downloaded it, it still didnt work. When I went into the settings and changed
the debug/release/distro settings to the generic 'Developer profile' for all three it
now worked fine without crashing. Bizarre!
[EDIT] NOT so solved....still crashing on and off, mostly on. Any help would be
appreciated.
[SOLVED] Found this article where I missed adding -ObjC to 'Other Linker Flags':
mapquest developer site

Resources