[0.17.9] [OSX] Crash - Unknown

Place for things which are bugs but we have no idea how to solve them. Things related to hardware, libraries, strange setups, etc.
2799
Burner Inserter
Burner Inserter
Posts: 7
Joined: Thu Dec 28, 2017 4:55 am
Contact:

[0.17.9] [OSX] Crash - Unknown

Post by 2799 »

OSX 10.12.6 - The attached save file has been crashing after ~1hr in patch 8 & 9. Stack trace doesn't show anything.

Save is from about 1 or 2 minutes before the crash. I've included the current and previous logs. I was just driving the tank around, heading southwest towards the biter base. Other crashes have occurred while walking around the base. I am using a 2011 MBP w/ touch pad.
Attachments
factorio-previous.log
(6.96 KiB) Downloaded 77 times
factorio-current.log
(7.25 KiB) Downloaded 77 times
_autosave1.zip
(15.69 MiB) Downloaded 73 times
User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.17.9] [OSX] Crash - Unknown

Post by TruePikachu »

Most useful stack trace I've ever seen /s

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
#1  0x000000010f52b4f2 in Logger::logStacktrace(StackTraceInfo*) + 0x12
#2  0x000000010f514afd in CrashHandler::writeStackTrace(CrashHandler::CrashReason) + 0x9d
#3  0x000000010f515784 in CrashHandler::commonSignalHandler(int) + 0x74
#4  0x000000010f5149e9 in CrashHandler::SignalHandler(int) + 0x9
#5  0x00007fffa56dbb3a in _sigtramp + 0x1a
Stack trace logging done
Is there any way we can get a core dump, provided this keeps happening in the latest experimental?
2799
Burner Inserter
Burner Inserter
Posts: 7
Joined: Thu Dec 28, 2017 4:55 am
Contact:

Re: [0.17.9] [OSX] Crash - Unknown

Post by 2799 »

Still present in 0.17.14, seems less frequent, log begins as before, same stack trace but after a much longer period playing.

Code: Select all

Factorio crashed. Generating symbolized stacktrace, please wait ...
#1  0x000000010aceb082 in Logger::logStacktrace(StackTraceInfo*) + 0x12
#2  0x000000010acd41a1 in CrashHandler::writeStackTrace(CrashHandler::CrashReason) + 0x61
#3  0x000000010acd4e74 in CrashHandler::commonSignalHandler(int) + 0x74
#4  0x000000010acd40c9 in CrashHandler::SignalHandler(int) + 0x9
#5  0x00007fffa56dbb3a in _sigtramp + 0x1a
Stack trace logging done
11764.569 Error CrashHandler.cpp:175: Map tick at moment of crash: 8866520
@devs, I assumed you were getting crash dumps along with the logs, but in case you're not, I grabbed a core dump and took a look in the debugger.

Obviously take this with a grain of salt:

Code: Select all

(lldb) bt
* thread #1, stop reason = signal SIGSTOP
  * frame #0: 0x000000010ad74faf factorio`::find<LogisticMember *>() at __hash_table:2338 [opt]
    frame #1: 0x000000010a7bc3e8 factorio`::unregisterConnector() [inlined] __erase_unique<const IDConnectorBase *> at __hash_table:2510 [opt]
    frame #2: 0x000000010a7bc3d8 factorio`::unregisterConnector() [inlined] erase at unordered_map:1155 [opt]
    frame #3: 0x000000010a7bc3d8 factorio`::unregisterConnector() at IDConnectorErrorHelper.cpp:19 [opt]
    frame #4: 0x000000010a7ac555 factorio`::~IDConnector() [inlined] unregisterConnector at IDConnectorList.cpp:19 [opt]
    frame #5: 0x000000010a7ac51d factorio`::~IDConnector() at IDConnector.cpp:84 [opt]
    frame #6: 0x000000010b0be048 factorio`::~ShortcutPrototype() [inlined] ~IDConnector at IDConnector.cpp:82 [opt]
    frame #7: 0x000000010b0be043 factorio`::~ShortcutPrototype() at ShortcutPrototype.hpp:14 [opt]
    frame #8: 0x000000010ad3a70e factorio`::~ShortcutPrototype() [inlined] ~ShortcutPrototype at PrototypeMigrationListDefinition.cpp:14 [opt]
    frame #9: 0x000000010ad3a709 factorio`::~ShortcutPrototype() at ShortcutPrototype.hpp:14 [opt]
    frame #10: 0x000000010a7d17bb factorio`::~vector() [inlined] operator() at memory:2321 [opt]
    frame #11: 0x000000010a7d17b5 factorio`::~vector() [inlined] reset at memory:2634 [opt]
    frame #12: 0x000000010a7d17b0 factorio`::~vector() [inlined] ~unique_ptr at memory:2588 [opt]
    frame #13: 0x000000010a7d17b0 factorio`::~vector() [inlined] ~unique_ptr at memory:2588 [opt]
    frame #14: 0x000000010a7d17b0 factorio`::~vector() [inlined] destroy at memory:1866 [opt]
    frame #15: 0x000000010a7d17b0 factorio`::~vector() [inlined] __destroy<std::__1::unique_ptr<CustomInputPrototype, std::__1::default_delete<CustomInputPrototype> > > at memory:1728 [opt]
    frame #16: 0x000000010a7d17b0 factorio`::~vector() [inlined] destroy<std::__1::unique_ptr<CustomInputPrototype, std::__1::default_delete<CustomInputPrototype> > > at memory:1596 [opt]
    frame #17: 0x000000010a7d17b0 factorio`::~vector() [inlined] __destruct_at_end at vector:421 [opt]
    frame #18: 0x000000010a7d1795 factorio`::~vector() [inlined] clear at vector:364 [opt]
    frame #19: 0x000000010a7d1795 factorio`::~vector() [inlined] ~__vector_base at vector:458 [opt]
    frame #20: 0x000000010a7d1784 factorio`::~vector() [inlined] ~vector at iterator:1427 [opt]
    frame #21: 0x000000010a7d1784 factorio`::~vector() at iterator:1427 [opt]
    frame #22: 0x00007fffa5561178 libsystem_c.dylib`__cxa_finalize_ranges + 332
    frame #23: 0x00007fffa55614b2 libsystem_c.dylib`exit + 55
    frame #24: 0x000000010acd40d3 factorio`::SignalHandler() at InRangePredicate.cpp:563 [opt]
    frame #25: 0x00007fffa56dbb3a libsystem_platform.dylib`_sigtramp + 26
    frame #26: 0x00007fffa55fad43 libsystem_kernel.dylib`__pthread_kill + 11
    frame #27: 0x00007fffa56e8457 libsystem_pthread.dylib`pthread_kill + 90
    frame #28: 0x00007fffa5560420 libsystem_c.dylib`abort + 129
    frame #29: 0x00007fff9d917c05 libGPUSupport.dylib`gpusKillClient + 83
    frame #30: 0x0000000117c1de0e AppleIntelHD3000GraphicsGLDriver`GhalInterface::getCommandBuffer(unsigned char**, unsigned char**, unsigned int*, unsigned int*) + 158
    frame #31: 0x0000000117c39eb1 AppleIntelHD3000GraphicsGLDriver`GHAL3D::CPrivateCommandTransport::FlushCommandBuffer(GHAL3D::FLUSH_TYPE, unsigned char) + 273
    frame #32: 0x0000000117c39c52 AppleIntelHD3000GraphicsGLDriver`g575SubmitPacketsToken + 69
    frame #33: 0x0000000117e8b3ea AppleIntelHD3000GraphicsGLDriver`glrBindContextDrawFramebuffer + 2369
    frame #34: 0x00007fff9d91aa3f libGPUSupport.dylib`gldUpdateDrawFramebuffer + 117
    frame #35: 0x000000011b069e02 GLEngine`gleUpdateDrawFramebufferState + 560
    frame #36: 0x000000011af7a4cb GLEngine`glSwap_Exec + 59
    frame #37: 0x00007fff94a4c126 OpenGL`CGLFlushDrawable + 66
    frame #38: 0x000000010ce3dcea gameoverlayrenderer.dylib`SteamCGLFlushDrawable(_CGLContextObject*) + 33
    frame #39: 0x00007fff8d67ad7b AppKit`-[NSOpenGLContext flushBuffer] + 27
    frame #40: 0x000000010b30600d factorio`Cocoa_GL_SwapWindow at SDL_cocoaopengl.m:468 [opt]
    frame #41: 0x000000010a4b2acc factorio`::swapBuffers() at ControllerView.cpp:231 [opt]
    frame #42: 0x000000010a4d9913 factorio`::swap() at EvolutionFactorData.hpp:270 [opt]
    frame #43: 0x000000010a92212a factorio`::mainLoopStep() at MainLoop.cpp:611 [opt]
    frame #44: 0x000000010a91f342 factorio`::run() at MainLoop.cpp:364 [opt]
    frame #45: 0x0000000109f1d3ce factorio`main at Main.cpp:1242 [opt]
    frame #46: 0x00007fffa54cc235 libdyld.dylib`start + 1
So, 2 things, it looks like _sigtramp is being called due to some GPU crash? and also the crash handler is calling std::exit, which is firing C++ destructors, and one of the destructors also appears to generate an access violation.

re: if we assume the GPU crash is real, searching for libGPUSupport gpusKillClient gets some hits. A stab in the dark guess might be modifying some buffer during the swap that the driver thinks is locked?

From playing around in the debugger it looks like unregisterConnection calls find with a static variable ' IDConnectorErrorHelper::mapping()::mapping', but mapping is null at this point.

Let me know if you want the core file - unfortunately it's massive (2GB), and you might not feel like spending a lot of time tracking down iGPU bugs on 8 year old systems.
User avatar
TruePikachu
Filter Inserter
Filter Inserter
Posts: 978
Joined: Sat Apr 09, 2016 8:39 pm
Contact:

Re: [0.17.9] [OSX] Crash - Unknown

Post by TruePikachu »

Assuming it's a full core dump (which it probably is if it's that large), I'd suggest only distributing it to the devs via DMs, as it might contain credential information for Factorio.
posila
Factorio Staff
Factorio Staff
Posts: 5366
Joined: Thu Jun 11, 2015 1:35 pm
Contact:

Re: [0.17.9] [OSX] Crash - Unknown

Post by posila »

2799 wrote: Sun Mar 17, 2019 3:25 pmyou might not feel like spending a lot of time tracking down iGPU bugs on 8 year old systems
Unfortunally, you are right about that.

According to 7092, crash in AppleIntelHD3000GraphicsGLDriver GhalInterface::getCommandBuffer (even though entire callstack was different) was solved by lowering Atlas texture size (now you can set it in graphics options instead of editing config).
Post Reply

Return to “1 / 0 magic”