2019-08-19 22:45 CEST

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0004986Spring engineGeneralpublic2015-11-27 08:03
Reporterabma 
Assigned TojK 
PrioritynormalSeveritycrashReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version100.0+git 
Target Version101.0Fixed in Version 
Summary0004986: failed assert in rts/Sim/Misc/LosHandler.cpp:378
Descriptionspring: rts/Sim/Misc/LosHandler.cpp:378: static SLosInstance::TLosStatus ILosType::OptimizeInstanceUpdate(SLosInstance*): Assertion `li->refCount > 0' failed.
[f=0000767] [CrashHandler] Error: Aborted (SIGABRT) in spring 100.0.1-275-g9046711 develop (Debug)
[f=0000767] [CrashHandler] Error: Halted Stacktrace for Spring 100.0.1-275-g9046711 develop (Debug) using libunwind:
[f=0000767] [CrashHandler] Error: [00] .../rts/System/Platform/Linux/CrashHandler.cpp:816 CrashHandler::HaltedStacktrace(std::__cxx11::basic_string<char, std::char_traits<char>, std::a [...]
[f=0000767] [CrashHandler] Error: [01] .../rts/System/Platform/Linux/CrashHandler.cpp:922 CrashHandler::HandleSignal(int, siginfo_t*, void*)
[f=0000767] [CrashHandler] Error: [02] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10d10) [0x7f0717b83d10] __restore_rt
[f=0000767] [CrashHandler] Error: [03] /build/buildd/glibc-2.21/signal/../sysdeps/unix/sysv/linux/raise.c:55 __GI_raise
[f=0000767] [CrashHandler] Error: [04] /build/buildd/glibc-2.21/stdlib/abort.c:91 __GI_abort
[f=0000767] [CrashHandler] Error: [05] /build/buildd/glibc-2.21/assert/assert.c:92 __assert_fail_base
[f=0000767] [CrashHandler] Error: [06] /lib/x86_64-linux-gnu/libc.so.6(+0x2e0f2) [0x7f07141990f2] __assert_fail
[f=0000767] [CrashHandler] Error: [07] .../rts/Sim/Misc/LosHandler.cpp:379 ILosType::OptimizeInstanceUpdate(SLosInstance*)
[f=0000767] [CrashHandler] Error: [08] .../rts/Sim/Misc/LosHandler.cpp:424 (discriminator 2) ILosType::Update()
[f=0000767] [CrashHandler] Error: [09] .../rts/Sim/Misc/LosHandler.cpp:652 CLosHandler::Update()::{lambda(int)#1}::operator()(int) const
[f=0000767] [CrashHandler] Error: [10] /usr/include/c++/5/functional:1873 std::_Function_handler<void (int), CLosHandler::Update()::{lambda(int)#1}>::_M_invoke(std::_An [...]
[f=0000767] [CrashHandler] Error: [11] /usr/include/boost/bind/bind_mf_cc.hpp:114 boost::_bi::bind_t<void, boost::_mfi::mf2<void, CGame, std::__cxx11::basic_string<char, std::c [...]
[f=0000767] [CrashHandler] Error: [12] .../rts/Game/PreGame.cpp:491 (discriminator 1) CPreGame::GameDataReceived(boost::shared_ptr<netcode::RawPacket const>)
[f=0000767] [CrashHandler] Error: [13] .../rts/Game/PreGame.cpp:373 (discriminator 4) CPreGame::StartServerForDemo(std::__cxx11::basic_string<char, std::char_traits<char>, std::all [...]
[f=0000767] [CrashHandler] Error: [14] /usr/include/boost/thread/future.hpp:2919 boost::detail::task_shared_state<std::_Bind<std::function<void (int)> (int)>, void>::do_run()
[f=0000767] [CrashHandler] Error: [15] /usr/include/boost/thread/future.hpp:2501 boost::detail::task_base_shared_state<void>::run()
[f=0000767] [CrashHandler] Error: [16] /usr/include/boost/thread/future.hpp:3291 boost::packaged_task<void>::operator()()
[f=0000767] [CrashHandler] Error: [17] .../rts/System/ThreadPool.h:183 TaskGroup<std::function<void (int)> const, int const>::enqueue(std::function<void (int)> const [...]
[f=0000767] [CrashHandler] Error: [18] /usr/include/c++/5/functional:1873 std::_Function_handler<void (), TaskGroup<std::function<void (int)> const, int const>::enqueue [...]
[f=0000767] [CrashHandler] Error: [19] ./spring(_ZNKSt8functionIFbvEEclEv+0x5c) [0x630f82] ??
[f=0000767] [CrashHandler] Error: [20] .../rts/System/ThreadPool.cpp:144 ThreadPool::DoTask(std::shared_ptr<ITaskGroup>)
[f=0000767] [CrashHandler] Error: [21] .../rts/System/ThreadPool.cpp:181 ThreadPool::WaitForFinished(std::shared_ptr<ITaskGroup>)
[f=0000767] [CrashHandler] Error: [22] .../rts/System/ThreadPool.h:116 (discriminator 2) void ThreadPool::WaitForFinished<TaskGroup<std::function<void (int)> const, int const> >(std:: [...]
[f=0000767] [CrashHandler] Error: [23] .../rts/System/ThreadPool.h:319 (discriminator 2) for_mt(int, int, int, std::function<void (int)> const&&)
[f=0000767] [CrashHandler] Error: [24] .../rts/System/ThreadPool.h:326 for_mt(int, int, std::function<void (int)> const&&)
[f=0000767] [CrashHandler] Error: [25] .../rts/Sim/Misc/LosHandler.cpp:644 CLosHandler::Update()
[f=0000767] [CrashHandler] Error: [26] .../rts/Game/Game.cpp:1567 CGame::SimFrame()
[f=0000767] [CrashHandler] Error: [27] .../rts/Net/NetCommands.cpp:512 CGame::ClientReadNet()
[f=0000767] [CrashHandler] Error: [28] .../rts/Game/Game.cpp:1007 CGame::Update()
[f=0000767] [CrashHandler] Error: [29] .../rts/System/SpringApp.cpp:949 SpringApp::Update()
[f=0000767] [CrashHandler] Error: [30] .../rts/System/SpringApp.cpp:985 SpringApp::Run()
[f=0000767] [CrashHandler] Error: [31] .../rts/System/Main.cpp:48 Run(int, char**)
[f=0000767] [CrashHandler] Error: [32] .../rts/System/Main.cpp:91 main
[f=0000767] [CrashHandler] Error: [33] /build/buildd/glibc-2.21/csu/libc-start.c:323 __libc_start_main
[f=0000767] [CrashHandler] Error: [34] ./spring(_start+0x29) [0x5c02f9] ??
Steps To Reproduce/cheat
/give all
/give all 1
TagsNo tags attached.
Checked infolog.txt for lua Errors
Attached Files

-Relationships
+Relationships

-Notes

~0015306

cleanrock (developer)

Last edited: 2015-11-01 10:47

View 2 revisions

fwiw,
With this demo i get a crash at Rendering/GL/LightHandler.cpp:141 at frame 745, SIGFPE in libnvidia-glcore.so.355.11 caused by call to
glLightfv(lightID, GL_POSITION, &lightPos.x).
I guess nvidia don't like the w component:
x = 3448
y = 350
z = 3248
w = 4.59163468e-41

~0015307

cleanrock (developer)

Last edited: 2015-11-01 11:35

View 2 revisions

If i change ParseLight to use a 4 sized array the glLightfv crash is gone and i see the mentioned crash at LosHandler.cpp:378.
float array[4] = {0.0f, 0.0f, 0.0f, 1.0f};

I am pretty sure the Light::SetPosition(const float array[3]) { position = array; } will set position.w to array[3] which is uninitialised in current code.

~0015310

abma (administrator)

oh, indeed. i didn't know that the position here uses 4 values

https://www.opengl.org/sdk/docs/man2/xhtml/glLight.xml

also see 0004985

~0015311

abma (administrator)

in 100.0.1-277-g88c7414 i still get the failed assert:

spring: rts/Sim/Misc/LosHandler.cpp:378: static SLosInstance::TLosStatus ILosType::OptimizeInstanceUpdate(SLosInstance*): Assertion `li->refCount > 0' failed.
[f=0000767] [CrashHandler] Error: Aborted (SIGABRT) in spring 100.0.1-277-g88c7414 develop (Debug)
[f=0000767] [CrashHandler] Error: Halted Stacktrace for Spring 100.0.1-277-g88c7414 develop (Debug) using libunwind:
[f=0000767] [CrashHandler] Error: [00] .../rts/System/Platform/Linux/CrashHandler.cpp:816 CrashHandler::HaltedStacktrace(std::__cxx11::basic_string<char, std::char_traits<char>, std::a [...]
[f=0000767] [CrashHandler] Error: [01] .../rts/System/Platform/Linux/CrashHandler.cpp:922 CrashHandler::HandleSignal(int, siginfo_t*, void*)
[f=0000767] [CrashHandler] Error: [02] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10d10) [0x7f0902ff5d10] __restore_rt
[f=0000767] [CrashHandler] Error: [03] /build/buildd/glibc-2.21/signal/../sysdeps/unix/sysv/linux/raise.c:55 __GI_raise
[f=0000767] [CrashHandler] Error: [04] /build/buildd/glibc-2.21/stdlib/abort.c:91 __GI_abort
[f=0000767] [CrashHandler] Error: [05] /build/buildd/glibc-2.21/assert/assert.c:92 __assert_fail_base
[f=0000767] [CrashHandler] Error: [06] /lib/x86_64-linux-gnu/libc.so.6(+0x2e0f2) [0x7f08ff60b0f2] __assert_fail
[f=0000767] [CrashHandler] Error: [07] /home/abma/dev/spring/develop/rts/Sim/Misc/LosHandler.cpp:379 ILosType::OptimizeInstanceUpdate(SLosInstance*)
[f=0000767] [CrashHandler] Error: [08] /home/abma/dev/spring/develop/rts/Sim/Misc/LosHandler.cpp:424 (discriminator 2) ILosType::Update()
[f=0000767] [CrashHandler] Error: [09] /home/abma/dev/spring/develop/rts/Sim/Misc/LosHandler.cpp:652 CLosHandler::Update()::{lambda(int)#1}::operator()(int) const
[f=0000767] [CrashHandler] Error: [10] /usr/include/c++/5/functional:1873 std::_Function_handler<void (int), CLosHandler::Update()::{lambda(int)#1}>::_M_invoke(std::_An [...]
[f=0000767] [CrashHandler] Error: [11] /usr/include/boost/bind/bind.hpp:874 boost::_bi::bind_t<void, boost::_mfi::mf2<void, CGame, std::__cxx11::basic_string<char, std::c [...]
[f=0000767] [CrashHandler] Error: [12] /home/abma/dev/spring/develop/rts/Game/PreGame.cpp:494 CPreGame::GameDataReceived(boost::shared_ptr<netcode::RawPacket const>)
[f=0000767] [CrashHandler] Error: [13] /home/abma/dev/spring/develop/rts/Game/PreGame.cpp:379 (discriminator 1) CPreGame::StartServerForDemo(std::__cxx11::basic_string<char, std::char_traits<char>, std::all [...]
[f=0000767] [CrashHandler] Error: [14] /usr/include/boost/thread/future.hpp:2919 boost::detail::task_shared_state<std::_Bind<std::function<void (int)> (int)>, void>::do_run()
[f=0000767] [CrashHandler] Error: [15] /usr/include/boost/thread/future.hpp:2501 boost::detail::task_base_shared_state<void>::run()
[f=0000767] [CrashHandler] Error: [16] /usr/include/boost/thread/future.hpp:3291 boost::packaged_task<void>::operator()()
[f=0000767] [CrashHandler] Error: [17] /home/abma/dev/spring/develop/rts/System/ThreadPool.h:183 TaskGroup<std::function<void (int)> const, int const>::enqueue(std::function<void (int)> const [...]
[f=0000767] [CrashHandler] Error: [18] /usr/include/c++/5/functional:1873 std::_Function_handler<void (), TaskGroup<std::function<void (int)> const, int const>::enqueue [...]
[f=0000767] [CrashHandler] Error: [19] ./spring(_ZNKSt8functionIFbvEEclEv+0x5c) [0x631072] ??
[f=0000767] [CrashHandler] Error: [20] /home/abma/dev/spring/develop/rts/System/ThreadPool.cpp:104 ThreadPool::DoTask(boost::shared_lock<boost::shared_mutex>&)
[f=0000767] [CrashHandler] Error: [21] /home/abma/dev/spring/develop/rts/System/ThreadPool.cpp:165 ThreadPool::WorkerLoop(int)
[f=0000767] [CrashHandler] Error: [22] /usr/include/boost/bind/bind.hpp:254 void boost::_bi::list1<boost::_bi::value<int> >::operator()<void (*)(int), boost::_bi::list0>( [...]
[f=0000767] [CrashHandler] Error: [23] /usr/include/boost/bind/bind.hpp:893 boost::_bi::bind_t<void, void (*)(int), boost::_bi::list1<boost::_bi::value<int> > >::operator()()
[f=0000767] [CrashHandler] Error: [24] /usr/include/boost/thread/detail/thread.hpp:117 boost::detail::thread_data<boost::_bi::bind_t<void, void (*)(int), boost::_bi::list1<boost::_b [...]
[f=0000767] [CrashHandler] Error: [25] /usr/lib/x86_64-linux-gnu/libboost_thread.so.1.58.0(+0x10bc5) [0x7f09006e5bc5] boost::this_thread::interruption_point()
[f=0000767] [CrashHandler] Error: [26] /build/buildd/glibc-2.21/nptl/pthread_create.c:333 start_thread
[f=0000767] [CrashHandler] Error: [27] /build/buildd/glibc-2.21/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:111 clone
[f=0000767] Error: [ErrorMessageBox][1] msg="Spring has crashed:
Aborted (SIGABRT).

(the SIGFPE should be fixed)

~0015347

jK (developer)

Fix f6e37ecb8723b61d9c4c81f72d3ffe8155ea6f54 committed to develop branch: fix 0004986: failed asserts in LosHandler, repo: spring changeset id: 5835
+Notes

+Related Changesets

-Issue History
Date Modified Username Field Change
2015-11-01 01:34 abma New Issue
2015-11-01 01:34 abma Status new => assigned
2015-11-01 01:34 abma Assigned To => jK
2015-11-01 01:34 abma File Added: 20151101_013150_DeltaSiegeDry_100.0.1-275-g9046711 develop.sdf
2015-11-01 10:31 cleanrock Note Added: 0015306
2015-11-01 10:47 cleanrock Note Edited: 0015306 View Revisions
2015-11-01 11:08 cleanrock Note Added: 0015307
2015-11-01 11:35 cleanrock Note Edited: 0015307 View Revisions
2015-11-01 14:56 abma Note Added: 0015310
2015-11-01 15:04 abma Note Added: 0015311
2015-11-27 08:03 jK Changeset attached => spring develop f6e37ecb
2015-11-27 08:03 jK Note Added: 0015347
2015-11-27 08:03 jK Status assigned => resolved
2015-11-27 08:03 jK Resolution open => fixed
+Issue History