Opened 2 years ago
Closed 2 years ago
#6513 closed defect (fixed)
Segfault on autostart nonVisual games
Reported by: | Langbart | Owned by: | bb |
---|---|---|---|
Priority: | Release Blocker | Milestone: | Alpha 26 |
Component: | Core engine | Keywords: | |
Cc: | Patch: | Phab:D4527 |
Description (last modified by )
issue
- start a game from the command line with the
-autostart-nonvisual
flag
binaries/system/pyrogenesis -conf=mod.enabledmods:"public" -autostart="random/mainland" -autostart-nonvisual
- Segfault
related
bb
has already created a patch. It is better to also create a ticket to increase the chances that it will not be forgotten.
- IRC 23/Apr/22
23:14 <@Stan> Langbart: you can also create a rb for non visual mode if you like
lldb
(lldb) run -conf=mod.enabledmods:"public" -autostart="random/mainland" -autostart-nonvisual Process 79078 launched: '/Users/paria/0ad/binaries/system/pyrogenesis' (x86_64) TIMER| InitVfs: 6.383 ms FILES| Main log written to '/Users/paria/Library/Application Support/0ad/logs/mainlog.html' FILES| Interesting log written to '/Users/paria/Library/Application Support/0ad/logs/interestinglog.html' TIMER| CONFIG_Init: 7.804 ms Assertion failed: "ms_singleton" Location: Singleton.h:51 (GetSingleton) Call stack: (error while dumping stack: Function not supported) errno = 0 (No error reported here) OS error = ? (C)ontinue, (S)uppress, (B)reak, Launch (D)ebugger, or (E)xit? e Redirecting call to abort() to mozalloc_abort pyrogenesis was compiled with optimization - stepping may behave oddly; variables may not be available. Process 79078 stopped * thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) frame #0: 0x000000010109c1f0 pyrogenesis`::mozalloc_abort(msg=<unavailable>) at mozalloc_abort.cpp:33:3 [opt] 30 #ifdef MOZ_WIDGET_ANDROID 31 abortThroughJava(msg); 32 #endif -> 33 MOZ_CRASH(); 34 } 35 36 #ifdef MOZ_WIDGET_ANDROID Target 0: (pyrogenesis) stopped. (lldb) bt * thread #1, name = 'main', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0) * frame #0: 0x000000010109c1f0 pyrogenesis`::mozalloc_abort(msg=<unavailable>) at mozalloc_abort.cpp:33:3 [opt] frame #1: 0x0000000101b93e3d pyrogenesis`::abort() at mozalloc_abort.cpp:82:3 [opt] frame #2: 0x00000001004f2a86 pyrogenesis`sys_display_error(text=<unavailable>, flags=6) at unix.cpp:268:4 [opt] frame #3: 0x00000001004d5203 pyrogenesis`debug_DisplayError(wchar_t const*, unsigned long, void*, wchar_t const*, wchar_t const*, int, char const*, long volatile*) [inlined] CallDisplayError(text=L"Assertion failed: \"ms_singleton\"\r\nLocation: Singleton.h:51 (GetSingleton)\r\n\r\nCall stack:\r\n\r\n(error while dumping stack: Function not supported)\r\nerrno = 0 (No error reported here)\r\nOS error = ?\r\n", flags=6) at debug.cpp:374:8 [opt] frame #4: 0x00000001004d51e6 pyrogenesis`debug_DisplayError(description=L"Assertion failed: \"ms_singleton\"", flags=6, context=0x00007ffeefbfe000, lastFuncToSkip=<no summary available>, pathname=<no summary available>, line=<no summary available>, func=<no value available>, suppress=<no summary available>) at debug.cpp:460 [opt] frame #5: 0x00000001004d5a6e pyrogenesis`debug_OnAssertionFailure(expr=<no summary available>, suppress=<no summary available>, file=<no summary available>, line=<no summary available>, func=<no value available>) at debug.cpp:547:9 [opt] frame #6: 0x00000001002ce960 pyrogenesis`CFontMetrics::CFontMetrics(CStrIntern) [inlined] Singleton<CRenderer>::GetSingleton() at Singleton.h:51:3 [opt] frame #7: 0x00000001002ce930 pyrogenesis`CFontMetrics::CFontMetrics(this=<no summary available>, font=CStrIntern @ scalar) at FontMetrics.cpp:29 [opt] frame #8: 0x00000001001d993c pyrogenesis`CConsole::Init(this=<no summary available>) at CConsole.cpp:97:21 [opt] frame #9: 0x0000000100214e5f pyrogenesis`InitPs(setup_gui=<no summary available>, gui_page=<no summary available>, srcScriptInterface=<no summary available>, initData=JS::HandleValue @ scalar) at GameSetup.cpp:201:14 [opt] frame #10: 0x0000000100213a36 pyrogenesis`Autostart(args=<no summary available>) at GameSetup.cpp:1127:3 [opt] frame #11: 0x00000001002151eb pyrogenesis`InitNonVisual(args=<no summary available>) at GameSetup.cpp:721:2 [opt] [artificial] frame #12: 0x0000000100004aaa pyrogenesis`RunGameOrAtlas(argc=<no summary available>, argv=<no summary available>) at main.cpp:672:4 [opt] frame #13: 0x00000001000035b6 pyrogenesis`main(argc=<no summary available>, argv=<no summary available>) at main.cpp:743:2 [opt] frame #14: 0x00007fff68073cc9 libdyld.dylib`start + 1 (lldb)
Change History (4)
comment:1 by , 2 years ago
Owner: | set to |
---|
comment:2 by , 2 years ago
Description: | modified (diff) |
---|
comment:3 by , 2 years ago
elexis
(28/Apr/22)
elexis ok [23:55:39] elexis it cant work [23:55:52] elexis he calls InitPs(true, L"page_autostart.xml", &scriptInterface, sessionInitData); [23:55:58] elexis but thats a GUI page [23:56:09] elexis so the patch isnt trivial [23:56:19] elexis yeah revert that [23:56:45] elexis though the fun thing is that revert isnt trivially a fix either because code relating to it might have changed [23:57:18] elexis why does he change that c++ function and not test nonvisual [23:58:07] elexis now we have a wraitii bug concatenated with a bb bug [00:00:42] elexis before rP26584 [00:00:42] elexis if (CRenderer::IsInitialised()) [00:00:42] elexis InitPsAutostart(false, attrs); [00:00:42] elexis else [00:00:42] elexis ENSURE(g_Game->ReallyStartGame() == PSRETURN_OK); [00:00:50] elexis after: [00:00:53] elexis InitPs(true, L"page_autostart.xml", &scriptInterface, sessionInitData); [00:01:09] elexis this is like half the patch missing [00:01:23] elexis I mean rP26584 is missing half and rP25077 missed the half [00:03:02] elexis the bugfix would now be adding those two halves in one patch to make it work again [00:08:32] elexis #6513 might be fixable with 30 lines C++ diff
Version 0, edited 2 years ago by (next)
Note:
See TracTickets
for help on using tickets.
adding a lldb with latest GIT version [26831]