spike of a crash in iOS 10.2

We oberserved spike of a crash (libdispatch.dylib in _dispatch_call_block_and_release) in iOS 10.2. This crash wasn't new, however, a spike occurred since iOS 10.2 release. Anybody experienced with the same crashes and had found the root cause? Thanks!

libobjc.A.dylib
in
objc_msgSend + 16

libdispatch.dylib
in
_dispatch_call_block_and_release + 20

libdispatch.dylib
in
_dispatch_client_callout + 12

libdispatch.dylib
in
_dispatch_queue_serial_drain + 924

libdispatch.dylib
in
_dispatch_queue_invoke + 648

libdispatch.dylib
in
_dispatch_queue_override_invoke + 356

libdispatch.dylib
in
_dispatch_root_queue_drain + 568

libdispatch.dylib
in
_dispatch_worker_thread3 + 120

libsystem_pthread.dylib
in
_pthread_wqthread + 1284

libsystem_pthread.dylib
in
start_wqthread + 0

Replies

Crashes like this are usually the result of memory management problems. Dispatch has called a block that was scheduled on some queue and it’s release of that block has crashed because the block, or some of the objects captured by the block, are no longer valid. As with any memory management problem, this could be caused by a bug in your code or by a bug in framework code. Regardless, the first step in the investigation is to run your app with zombies and the address sanitiser.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Thanks Eskimo. We will follow your suggestion to look into this. Just to add some clarification, this crash occurs only in iOS 10.2. there was no update on our app and we didn't see this crash on iOS 10.1 and below. If there is anything else we could look into, will apprecaite if you could advise.

Just to add some clarification, this crash occurs only in iOS 10.2. there was no update on our app and we didn't see this crash on iOS 10.1 and below.

Understood. And while I agree that this definitely points the finger at 10.2, I have to stress that not all new-in-release-X crashes are caused by bugs in release X. iOS is complex enough that it’s easy for bugs in your app to be revealed by seemingly innocuous changes in a new release.

Regardless, the debugging suggestions I outlined are a good start because, even if it turns out not to be a bug in your app, the act of proving that will yield information that’ll allow you to file a better bug report.

Let us know how you get along.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"

Regardless, the first step in the investigation is to run your app with zombies and the address sanitiser.

And, to get you started, I created a Standard Memory Debugging Tools post with some basic info on those tools.

Share and Enjoy

Quinn “The Eskimo!”
Apple Developer Relations, Developer Technical Support, Core OS/Hardware

let myEmail = "eskimo" + "1" + "@apple.com"