We are working on a MacOS app that was based on the face detection iOS sample code from Apple. We are experincing a frequent crash on Mac OS Mojave (version 10.14.6) but it is not happening on Catalina (beta 7) so far:
- Hackintosh Failed To Send Exception Exc_corpse_notify
- Hackintosh Failed To Send Exception Exc Corpse Notify Xcode
Exception Type: EXCBADACCESS (SIGSEGV) Exception Codes: KERNINVALIDADDRESS at 0x000007fc0a5286d0 Exception Note: EXCCORPSENOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler 840 VM Regions Near 0x7fc0a5286d0. OS Version: Mac OS X 10.7.3 (11D50b) Report Version: 9. Crashed Thread: 0 Dispatch queue: com.apple.main-thread. Exception Type: EXCBADACCESS (SIGSEGV) Exception Codes: KERNINVALIDADDRESS at 0x00007fce7b0de630. VM Regions Near 0x7fce7b0de630. OS Version: Mac OS X 10.14.3 (18D109) Report Version: 12 Bridge OS Version: 3.0 (14Y674) Anonymous UUID: 879-6CBD-E176-A02165260FDA Sleep/Wake UUID: F29F3D1B-244F-4541-BF80-CEEED46FCB7D Time Awake Since Boot: 11000 seconds Time Since Wake: 6700 seconds System Integrity Protection: enabled. EXCCORPSENOTIFY is irrelevant. You’ll see it in any crash log like this on iOS 9. For example, if you create a simple test app that calls abort, you’ll see a crash log whose header is like this: Exception Type: EXCCRASH (SIGABRT) Exception Codes: 0x000000, 0x000000 Exception Note: EXCCORPSENOTIFY.
And another crash is happening in Core Animaiton after about 2 hours of running the app in both operating systems:
The first crash is more critcal to resolve. Is this crash indicating that there is an underlying problem in Vision framework in Mojave? Or is there something do with how background queues are being used?
Some additional context, the applicaiton is converting the video preview stream to images that get uploaded to Firebase when a face has been detected. The CALayers for the tracking overlays are being composited into a new image with the video stream. I don't think that is related to the crash.
Sometime in the last few months, my 5K iMac started misbehaving. Not in any of the ways you’d expect—crashes, lock-ups, weird error messages, that sort of thing. No, one day I came into my office in the morning and the iMac and all the peripherals were still on, the spinning gear animation still right where I had left it upon choosing Shut Down from the Apple menu the night before.
I fancy myself a pretty good Mac troubleshooter, but this was a bit baffling to me. The system has already gone into shutdown mode by the time it gets to this point; I can’t bring up a terminal window or run Activity Monitor to see what might be going on. Even stranger, when I manually powered off the iMac and restarted it, then tried to shut it down, it shut down properly. Okay. Maybe it was nothing. I started up and got about my business.
After a full day’s work, I shut down the iMac again—and once again, the spinning-gear animation appeared. I came back after dinner and it was still there. Okay, this was a problem. I reset my iMac’s power manager, zapped the PRAM, did all of the weird system-level things I could think of, and nothing solved the problem.
The next day, I started my iMac up while holding down Command-V, the cue for the Mac to boot in “verbose mode,” which shows a scary cascade of text information at the beginning and end of the startup process. When I shut down at the end of the night, I finally had some new information:
Yes, there’s a bizarre error code called “corpse notify.” Whatever. At least I now knew something! It appeared that a process (in this case, one with id 57024) was getting in the way of my shutdown. Hooray! Now to open Activity Monitor and see which process that…
…oh, right. My computer’s locked up and shutting down. I can’t look at the process ID. Monkey quest for mac. And process IDs change from boot to boot.
My old pal Matt Deatherage solved the issue by suggesting that before I shut down, I open Terminal and save a list of all my existing processes, so that I could then compare that list to whatever process was holding up my Mac.
So at the end of the day, when I was ready to shut down (after once again having started up in verbose mode), I opened Terminal and typed
Hackintosh Failed To Send Exception Exc_corpse_notify
…which generated a textfile with a list of all of those processes. Then I shut down, wrote down the process ID of the item that might be hanging up the shutdown, manually powered off the iMac, rebooted, and opened that dump.txt file in BBEdit, then searched for the appropriate process ID. Here’s the result:
Hackintosh Failed To Send Exception Exc Corpse Notify Xcode
Well, well. My culprit appeared to be Adobe Creative Cloud Crash Reporter Daemon. That’s right, a tool designed to help Adobe improve its software quality was causing my iMac to fail to shut down every night. I am surprised Creative Cloud didn’t collapse into itself right then in a fit of irony.
I don’t want to get rid of Adobe Creative Cloud. I’ve been using Photoshop for two decades and don’t plan to stop now. Instead, I dug into the Creative Cloud app package and deleted the AdobeCRDaemon itself—with more than a little bit of glee—in the hopes that I’d still be able to launch Photoshop without that element around.
It took some detective work, but at least this story has a happy ending: These days my Mac shuts down when I tell it to.
If you appreciate articles like this one, support us by becoming a Six Colors subscriber. Subscribers get access to an exclusive podcast, members-only stories, and a special community.