Jump to content

[DLC]Hang/Kernel panic on Mac OS via Research screen


Kludge
  • Branch: Live Branch Version: OSX Pending

I've hit the spinning cursor of death 3 times now while in the Research screen, panning around (DLC enabled, haven't tried in vanilla ONI). On the last iteration, I let the machine sit, just in case it might recover - the machine eventually rebooted itself, indicating a kernel panic.

I think something in ONI is crashing behind a mutex, leaving the display to eventually lock up.  At least, all the spin logs show ONI sitting on a mutex while the WindowServer is waiting for it to wake up.

Here's the relevant snippets from my last recorded spin dump:

Process:          WindowServer [254]
UUID:             90F1EAB8-1AD7-35D2-9555-B60C0D9C7BBF
Path:             /System/Library/PrivateFrameworks/SkyLight.framework/Resources/WindowServer
Architecture:     x86_64
Footprint:        137.32 MB
Start time:       2020-12-24 07:55:44 -0800
End time:         2020-12-24 07:55:49 -0800
Num samples:      12 (1-12)
CPU Time:         <0.001s
Note:             2 idle work queue threads omitted

  Thread 0x5d9    12 samples (1-12)    priority 79 (base 79)
  <IO tier 0>
  12  start + 1 (libdyld.dylib + 109769) [0x7fff72858cc9] 1-12
    12  ??? (WindowServer + 4910) [0x10546032e] 1-12
      12  SLXServer + 1461 (SkyLight + 2302303) [0x7fff67c7515f] 1-12
        12  server_loop + 91 (SkyLight + 2302401) [0x7fff67c751c1] 1-12
          12  CGXRunOneServicesPass + 218 (SkyLight + 2298343) [0x7fff67c741e7] 1-12
            12  run_timer_pass + 482 (SkyLight + 2092595) [0x7fff67c41e33] 1-12
              12  empty_update_callback(void*, double) + 278 (SkyLight + 1764826) [0x7fff67bf1dda] 1-12
                12  CoreDisplay::Display::PresentScreenRefresh(PresentSyncType) + 220 (CoreDisplay + 259192) [0x7fff38678478] 1-12
                  12  CoreDisplay::Display::Commit(std::__1::vector<std::__1::unique_ptr<CoreDisplay::DisplayPipe::Transaction, std::__1::default_delete<CoreDisplay::DisplayPipe::Transaction> >, std::__1::allocator<std::__1::unique_ptr<CoreDisplay::DisplayPipe::Transaction, std::__1::default_delete<CoreDisplay::DisplayPipe::Transaction> > > >&) + 61 (CoreDisplay + 259861) [0x7fff38678715] 1-12
                    12  CoreDisplay::DisplayPipe::Commit(CoreDisplay::DisplayPipe::Transaction const&, bool) + 9187 (CoreDisplay + 832827) [0x7fff3870453b] 1-12
                      12  CoreDisplay::IOPTransaction::Submit() + 2890 (CoreDisplay + 520574) [0x7fff386b817e] 1-12
                        12  IOPresentmentDisplayPipe::IOPresentmentEnd(__IOPresentmentTransaction*, unsigned long long, bool) + 307 (IOPresentment + 74673) [0x7fff5d4ef3b1] 1-12
                          12  IOAccelDisplayPipeTransactionBegin + 90 (IOAccelerator + 25155) [0x7fff5d4ce243] 1-12
                            12  IOConnectCallScalarMethod + 76 (IOKit + 46597) [0x7fff3b56d605] 1-12
                              12  io_connect_method + 383 (IOKit + 14291) [0x7fff3b5657d3] 1-12
                                12  mach_msg_trap + 10 (libsystem_kernel.dylib + 3578) [0x7fff72999dfa] 1-12
                                 *12  hndl_mach_scall64 + 22 (kernel + 786982) [0xffffff80002c0226] 1-12
                                   *12  mach_call_munger64 + 517 (kernel + 2273349) [0xffffff800042b045] 1-12
                                     *12  mach_msg_overwrite_trap + 722 (kernel + 1100514) [0xffffff800030cae2] 1-12
                                       *12  ipc_kmsg_send + 309 (kernel + 1006901) [0xffffff80002f5d35] 1-12
                                         *12  ipc_kobject_server + 568 (kernel + 1176456) [0xffffff800031f388] 1-12
                                           *12  ??? (kernel + 2106818) [0xffffff80004025c2] 1-12
                                             *12  is_io_connect_method + 547 (kernel + 8761843) [0xffffff8000a5b1f3] 1-12
                                               *12  IOUserClient::externalMethod(unsigned int, IOExternalMethodArguments*, IOExternalMethodDispatch*, OSObject*, void*) + 478 (kernel + 8724430) [0xffffff8000a51fce] 1-12
                                                 *12  IOAccelDisplayPipeUserClient2::s_transaction_begin(IOAccelDisplayPipeUserClient2*, void*, IOExternalMethodArguments*) + 32 (IOAcceleratorFamily2 + 316252) [0xffffff7f8457835c] 1-12
                                                   *12  IOAccelDisplayPipeUserClient2::transactionBegin(unsigned int*) + 51 (IOAcceleratorFamily2 + 319933) [0xffffff7f845791bd] 1-12
                                                     *12  ??? (kernel + 2347435) [0xffffff800043d1ab] 1-12
                                                       *12  lck_mtx_lock_wait_x86 + 313 (kernel + 2349385) [0xffffff800043d949] 1-12
                                                         *12  thread_block_reason + 175 (kernel + 1285359) [0xffffff8000339cef] 1-12
                                                           *12  ??? (kernel + 1291441) [0xffffff800033b4b1] 1-12
                                                             *12  machine_switch_context + 200 (kernel + 2361416) [0xffffff8000440848] (blocked by turnstile with priority 92 waiting for Oxygen Not Included [900] thread 0x4f57) 1-12
 


Process:          Oxygen Not Included [900]
UUID:             6D82BA8C-38A6-3A10-8CDE-BDD368B8F4CF
Path:             /Users/USER/Library/Application Support/Steam/*/OxygenNotIncluded.app/Contents/MacOS/Oxygen Not Included
Architecture:     x86_64
Footprint:        3761.34 MB
Start time:       2020-12-24 07:55:44 -0800
End time:         2020-12-24 07:55:49 -0800
Num samples:      12 (1-12)
CPU Time:         2.873s
Note:             1 idle work queue thread omitted

  Thread 0x36bd    Thread name "MainThrd"    12 samples (1-12)    priority 31 (base 31)
  <process frontmost, thread QoS unspecified (requested override user initiated), process unclamped, process received importance donation from WindowServer [254], IO tier 0>
  12  start + 1 (libdyld.dylib + 109769) [0x7fff72858cc9] 1-12
    12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 25065157) [0x1095c86c5] 1-12
      12  NSApplicationMain + 777 (AppKit + 13206) [0x7fff35a22396] 1-12
        12  -[NSApplication run] + 658 (AppKit + 202126) [0x7fff35a5058e] 1-12
          12  ??? (<9F013F92-58EB-3DF3-83A4-020CAE079B01> + 106142) [0x1037b4e9e] 1-12
            12  -[NSApplication(NSEvent) _nextEventMatchingEventMask:untilDate:inMode:dequeue:] + 1352 (AppKit + 260224) [0x7fff35a5e880] 1-12
              12  _DPSNextEvent + 883 (AppKit + 266297) [0x7fff35a60039] 1-12
                12  _BlockUntilNextEventMatchingListInModeWithFilter + 64 (HIToolbox + 193913) [0x7fff3741a579] 1-12
                  12  ReceiveNextEventCommon + 584 (HIToolbox + 194517) [0x7fff3741a7d5] 1-12
                    12  RunCurrentEventLoopInMode + 292 (HIToolbox + 195261) [0x7fff3741aabd] 1-12
                      12  CFRunLoopRunSpecific + 462 (CoreFoundation + 532030) [0x7fff387ede3e] 1-12
                        12  __CFRunLoopRun + 1871 (CoreFoundation + 535530) [0x7fff387eebea] 1-12
                          12  __CFRunLoopDoTimers + 322 (CoreFoundation + 646727) [0x7fff38809e47] 1-12
                            12  __CFRunLoopDoTimer + 859 (CoreFoundation + 648031) [0x7fff3880a35f] 1-12
                              12  __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20 (CoreFoundation + 649209) [0x7fff3880a7f9] 1-12
                                12  __NSFireTimer + 67 (Foundation + 783098) [0x7fff3aee82fa] 1-12
                                  12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 25026994) [0x1095bf1b2] 1-12
                                    12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 13456193) [0x108ab6341] 1-12
                                      12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 13454711) [0x108ab5d77] 1-12
                                        12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 13454606) [0x108ab5d0e] 1-12
                                          12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 13517476) [0x108ac52a4] 1-12
                                            12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 13512500) [0x108ac3f34] 1-12
                                              12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 7391311) [0x1084ed84f] 1-12
                                                12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 7307893) [0x1084d9275] 1-12
                                                  12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 5627090) [0x10833ecd2] 1-12
                                                    12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 5627323) [0x10833edbb] 1-12
                                                      12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 5748246) [0x10835c616] 1-12
                                                        12  ??? (<13927ECB-C753-315F-9231-0AEDEA857009> + 26778792) [0x10976aca8] 1-12
                                                          12  _dispatch_semaphore_wait_slow + 98 (libdispatch.dylib + 12223) [0x7fff727fffbf] 1-12
                                                            12  semaphore_wait_trap + 10 (libsystem_kernel.dylib + 3638) [0x7fff72999e36] 1-12
                                                             *12  semaphore_wait_continue + 0 (kernel + 1334000) [0xffffff8000345af0] 1-12

If you can't repro, and you'd like me to try out a build with symbols for a better callstack, I'd be happy to help.

Wil

*update*: hit it again, this time a crash report that appeared after restarting shows that we had an allocation failure:

Thread 5 Crashed:: com.apple.NSEventThread
0   UnityPlayer.dylib                 0x0000000109c681d7 MemoryProfiler::RegisterAllocation(void*, MemLabelId const&, char const*, int, unsigned long) + 151
1   UnityPlayer.dylib                 0x000000010957702e MemoryManager::RegisterAllocation(MemoryManager::AllocationLogDetails const&, BaseAllocator*) + 206
2   UnityPlayer.dylib                 0x00000001095732bc MemoryManager::Allocate(unsigned long, unsigned long, MemLabelId const&, AllocateOptions, char const*, int) + 1068
3   UnityPlayer.dylib                 0x000000010956e703 operator new(unsigned long) + 67
4   com.apple.SkyLight                0x00007fff5fb11c62 SLEventCreateNextEvent + 28
5   com.apple.HIToolbox               0x00007fff2f41dcc7 PullEventsFromWindowServerOnConnection(unsigned int, unsigned char, __CFMachPortBoost*) + 45
6   com.apple.HIToolbox               0x00007fff2f41dc72 MessageHandler(__CFMachPort*, void*, long, void*) + 48
7   com.apple.CoreFoundation          0x00007fff30814b05 __CFMachPortPerform + 250
8   com.apple.CoreFoundation          0x00007fff307e6304 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 41
9   com.apple.CoreFoundation          0x00007fff307e6250 __CFRunLoopDoSource1 + 541
10  com.apple.CoreFoundation          0x00007fff307e4d79 __CFRunLoopRun + 2270
11  com.apple.CoreFoundation          0x00007fff307e3e3e CFRunLoopRunSpecific + 462
12  com.apple.AppKit                  0x00007fff2dbf7954 _NSEventThread + 132
13  libsystem_pthread.dylib           0x00007fff6aa53109 _pthread_start + 148
14  libsystem_pthread.dylib           0x00007fff6aa4eb8b thread_start + 15

 


Steps to Reproduce

Bring up the research panel, pan around - it locks up at some point.

*updated* attached a screenshot of the graphics getting corrupted when I hit the spinning cursor of death.  At this point, I have to reboot the machine (ie I can never crash out cleanly and/or force quit the app, the OS is hosed from here on out).  (Note that the gfx getting corrupted doesn't always happen, I've seen it twice so far out of the several crashes I've hit.  Regardless, when the beach ball shows up on the research screen, I know I'm dead in the water.)

ONI_research_gfx_corruption.jpg




User Feedback


There are no comments to display.



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
  • Create New...