View Issue Details [ Jump to Notes ] | [ Issue History ] [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
---|---|---|---|---|---|---|---|---|---|
0004656 | Spring engine | General | public | 2015-01-28 23:10 | 2015-01-31 23:22 | ||||
Reporter | abma | ||||||||
Assigned To | jK | ||||||||
Priority | normal | Severity | crash | Reproducibility | always | ||||
Status | resolved | Resolution | fixed | ||||||
Product Version | |||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0004656: failing assert with LoadingMT = 1 in rts/Lua/LuaOpenGL.cpp:454 | ||||||||
Description | [f=0000000] [CrashHandler] Error: [00] .../rts/System/Platform/Linux/CrashHandler.cpp:835 CrashHandler::HaltedStacktrace(std::string const&, siginfo_t*, ucontext*) [f=0000000] [CrashHandler] Error: [01] .../rts/System/Platform/Linux/CrashHandler.cpp:941 CrashHandler::HandleSignal(int, siginfo_t*, void*) [f=0000000] [CrashHandler] Error: [02] /lib/x86_64-linux-gnu/libpthread.so.0(+0xfc90) [0x7fcdf9a93c90] __restore_rt [f=0000000] [CrashHandler] Error: [03] /build/buildd/glibc-2.19/signal/../nptl/sysdeps/unix/sysv/linux/raise.c:56 __GI_raise [f=0000000] [CrashHandler] Error: [04] /build/buildd/glibc-2.19/stdlib/abort.c:91 __GI_abort [f=0000000] [CrashHandler] Error: [05] /build/buildd/glibc-2.19/assert/assert.c:92 __assert_fail_base [f=0000000] [CrashHandler] Error: [06] /lib/x86_64-linux-gnu/libc.so.6(+0x2fd92) [0x7fcdf61a0d92] __assert_fail [f=0000000] [CrashHandler] Error: [07] .../rts/Lua/LuaOpenGL.cpp:454 LuaOpenGL::DisableCommon(LuaOpenGL::DrawMode) [f=0000000] [CrashHandler] Error: [08] .../rts/Lua/LuaIntro.cpp:349 CLuaIntro::DrawLoadScreen() [f=0000000] [CrashHandler] Error: [09] .../rts/Game/LoadScreen.cpp:284 CLoadScreen::Draw() [f=0000000] [CrashHandler] Error: [10] .../rts/System/SpringApp.cpp:916 SpringApp::Update() [f=0000000] [CrashHandler] Error: [11] .../rts/System/SpringApp.cpp:948 SpringApp::Run() [f=0000000] [CrashHandler] Error: [12] /home/abma/dev/spring/develop/rts/System/Main.cpp:48 Run(int, char**) [f=0000000] [CrashHandler] Error: [13] /home/abma/dev/spring/develop/rts/System/Main.cpp:108 main [f=0000000] [CrashHandler] Error: [14] /build/buildd/glibc-2.19/csu/libc-start.c:321 __libc_start_main [f=0000000] [CrashHandler] Error: [15] ./spring() [0x5d64c9] _start | ||||||||
Tags | No tags attached. | ||||||||
Checked infolog.txt for Errors | |||||||||
Attached Files |
|
Notes | |
cleanrock (reporter) 2015-01-29 16:37 |
infolog show "LoadingMT = 0", is summary wrong ? |
hokomoko (developer) 2015-01-30 07:56 |
I encountered this as well, (sorry for not reporting, I wanted to be sure if it's only LockFreeLua, or other versions as well) I think it's due to both LuaIntro and one of the the other Luas running at the same time on different threads which can cause a race condition in setting/reading LuaOpenGL::drawMode (which doesn't have per-thread context). |
abma (administrator) 2015-01-30 08:30 |
no clue how LoadingMT = 1 slipped into the first infolog.txt, maybe because of tests with Spring.Reload() / editing config setting in menu. with LoadingMT = 1, map: Marble_Madness_Map game: Kernel Panic 4.6 assert always fails. LoadingMT = 0 assert doesn't fail. |
abma (administrator) 2015-01-30 15:32 Last edited: 2015-01-30 15:45 |
"LoadingScreen: single-threaded" is missing in infolog.txt's. -> yes, LoadingMT was changed via edit menu prior start (maybe as sidenote: LoadingMT defaults to 0 for me, because of using a mesa driver) |
jK (developer) 2015-01-30 21:04 |
can't reproduce |
abma (administrator) 2015-01-31 03:07 |
same map & game? debug build? |
hokomoko (developer) 2015-01-31 03:40 |
I attached gdb output on watching drawMode. (these are the last two changes and the assert fail following) |
cleanrock (reporter) 2015-01-31 08:06 |
Caused by changes to LuaOpenGL::PushEntries in https://github.com/spring/spring/commit/a724aa9 |
Kloot (developer) 2015-01-31 11:28 Last edited: 2015-01-31 12:22 |
"Caused by changes to LuaOpenGL::PushEntries..." Wrong. The cause would be an already-present race condition between the main and loading thread with loadingMT=1, when the latter calls LuaUI::LuaUI --> LuaOpenGL::PushEntries while the former is executing CLuaIntro::DrawLoadScreen --> LuaOpenGL::{Enable,Disable}Common. This condition extends beyond my changes because both threads might be anywhere in LuaOpenGL due to scripts. Why don't you go fix that? |
cleanrock (reporter) 2015-01-31 13:04 |
This LoadingMT have given us trouble before. How about removing this config and use single-threaded loading ? This would make sense if MT loading has limited speed/time advantage over ST loading. |
abma (administrator) 2015-01-31 18:18 Last edited: 2015-01-31 18:22 |
with a release build it doesn't crash with these settings / no error is shown, so is the assert() wrong or is it a bug? edit: thread apply all bt full: http://paste.springfiles.com/view/b61ba390 thread apply all bt: http://paste.springfiles.com/view/0cd46427 |
abma (administrator) 2015-01-31 18:33 |
> How about removing this config and use single-threaded loading ? idk the goals of LoadingMT, imo its not for speeding up loading, its for having a higher FPS when loading. (=smooth animations) |
Issue History | |||
Date Modified | Username | Field | Change |
---|---|---|---|
2015-01-28 23:10 | abma | New Issue | |
2015-01-29 00:54 | abma | File Added: infolog.txt | |
2015-01-29 16:37 | cleanrock | Note Added: 0013959 | |
2015-01-29 16:52 | abma | Assigned To | => abma |
2015-01-29 16:52 | abma | Status | new => feedback |
2015-01-30 07:56 | hokomoko | Note Added: 0013960 | |
2015-01-30 08:28 | abma | File Added: MT1_infolog.txt | |
2015-01-30 08:30 | abma | Note Added: 0013961 | |
2015-01-30 08:30 | abma | Status | feedback => assigned |
2015-01-30 08:30 | abma | Assigned To | abma => |
2015-01-30 08:30 | abma | Status | assigned => new |
2015-01-30 15:32 | abma | Note Added: 0013962 | |
2015-01-30 15:45 | abma | Note Edited: 0013962 | View Revisions |
2015-01-30 21:04 | jK | Note Added: 0013963 | |
2015-01-31 03:07 | abma | Note Added: 0013964 | |
2015-01-31 03:38 | hokomoko | File Added: drawmodewatch.txt | |
2015-01-31 03:40 | hokomoko | Note Added: 0013965 | |
2015-01-31 08:06 | cleanrock | Note Added: 0013966 | |
2015-01-31 11:28 | Kloot | Note Added: 0013967 | |
2015-01-31 11:28 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 11:29 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 11:30 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 11:31 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 12:11 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 12:22 | Kloot | Note Edited: 0013967 | View Revisions |
2015-01-31 13:04 | cleanrock | Note Added: 0013968 | |
2015-01-31 18:18 | abma | Note Added: 0013969 | |
2015-01-31 18:22 | abma | Note Edited: 0013969 | View Revisions |
2015-01-31 18:33 | abma | Note Added: 0013970 | |
2015-01-31 23:22 | jK | Changeset attached | => spring develop 5aba0908 |
2015-01-31 23:22 | jK | Assigned To | => jK |
2015-01-31 23:22 | jK | Status | new => resolved |
2015-01-31 23:22 | jK | Resolution | open => fixed |