2024-04-25 18:47 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004656Spring engineGeneralpublic2015-01-31 23:22
Reporterabma 
Assigned TojK 
PrioritynormalSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0004656: 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
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0013959

cleanrock (reporter)

infolog show "LoadingMT = 0", is summary wrong ?

~0013960

hokomoko (developer)

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).

~0013961

abma (administrator)

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.

~0013962

abma (administrator)

Last edited: 2015-01-30 15:45

View 2 revisions

"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)

~0013963

jK (developer)

can't reproduce

~0013964

abma (administrator)

same map & game? debug build?

~0013965

hokomoko (developer)

I attached gdb output on watching drawMode. (these are the last two changes and the assert fail following)

~0013966

cleanrock (reporter)

Caused by changes to LuaOpenGL::PushEntries in https://github.com/spring/spring/commit/a724aa9

~0013967

Kloot (developer)

Last edited: 2015-01-31 12:22

View 7 revisions

"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?

~0013968

cleanrock (reporter)

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.

~0013969

abma (administrator)

Last edited: 2015-01-31 18:22

View 2 revisions

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

~0013970

abma (administrator)

> 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)
+Notes

-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
+Issue History