2024-03-28 15:17 CET

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0004651Spring engineGeneralpublic2015-01-20 23:51
Reporterabma 
Assigned Toabma 
PrioritynormalSeveritycrashReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version 
Target VersionFixed in Version 
Summary0004651: crash at exit in ShaderHandler.cpp:51 after shader compile failed
Descriptionsidenote: its the LoadMap branch, but very likely happens in develop branch as well.

also ForceShader = 1

i'm using the opensource drivers which seems to work quiet well. imo its close before shaders could be enabled as default for it.
Steps To Reproduceget some shader to fail compile, exit -> crash
Additional InformationProgram received signal SIGSEGV, Segmentation fault.
0x00007ffff4948a23 in std::string::length() const ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
(gdb) bt
#0 0x00007ffff4948a23 in std::string::length() const ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#1 0x00000000009e65a9 in std::hash<std::string>::operator() (this=0x2b12a50,
    __s=<Fehler beim Lesen der Variable: Cannot access memory at address 0x49>)
    at /usr/include/c++/4.9/bits/basic_string.h:3084
#2 0x0000000000a4ae64 in std::__detail::_Hash_code_base<std::string, std::pair<std::string const, std::unordered_map<std::string, Shader::IProgramObject*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Shader::IProgramObject*> > > >, std::__detail::_Select1st, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, true>::_M_hash_code (this=0x2b12a50,
    __k=<Fehler beim Lesen der Variable: Cannot access memory at address 0x49>)
    at /usr/include/c++/4.9/bits/hashtable_policy.h:1261
0000003 0x0000000000a4a32c in std::_Hashtable<std::string, std::pair<std::string const, std::unordered_map<std::string, Shader::IProgramObject*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Shader::IProgramObject*> > > >, std::allocator<std::pair<std::string const, std::unordered_map<std::string, Shader::IProgramObject*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Shader::IProgramObject*> > > > >, std::__detail::_Select1st, std::equal_to<std::string>, std::hash<std::string>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::find (this=0x2b12a50,
---Type <return> to continue, or q <return> to quit---
    __k=<Fehler beim Lesen der Variable: Cannot access memory at address 0x49>)
    at /usr/include/c++/4.9/bits/hashtable.h:1302
0000004 0x0000000000a49ce7 in std::unordered_map<std::string, std::unordered_map<std::string, Shader::IProgramObject*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Shader::IProgramObject*> > >, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, std::unordered_map<std::string, Shader::IProgramObject*, std::hash<std::string>, std::equal_to<std::string>, std::allocator<std::pair<std::string const, Shader::IProgramObject*> > > > > >::find (this=0x2b12a50,
    __x=<Fehler beim Lesen der Variable: Cannot access memory at address 0x49>)
    at /usr/include/c++/4.9/bits/unordered_map.h:574
0000005 0x0000000000a48d5a in CShaderHandler::ReleaseProgramObjects (
    this=0x2b12a50,
    poClass=<Fehler beim Lesen der Variable: Cannot access memory at address 0x49>) at rts/Rendering/Shaders/ShaderHandler.cpp:51
#6 0x0000000000a48b99 in CShaderHandler::~CShaderHandler (this=0x2b12a50,
    __in_chrg=<optimized out>) at rts/Rendering/Shaders/ShaderHandler.cpp:34
#7 0x0000000000a48b34 in CShaderHandler::FreeInstance (sh=0x2b12a50)
    at rts/Rendering/Shaders/ShaderHandler.cpp:26
#8 0x0000000000a943e6 in CWorldDrawer::~CWorldDrawer (this=0x56b7540,
    __in_chrg=<optimized out>) at rts/Rendering/WorldDrawer.cpp:96
#9 0x0000000000615f52 in SafeDelete<CWorldDrawer*> (a=@0x232e048: 0x0)
    at rts/System/Util.h:197
---Type <return> to continue, or q <return> to quit---
0000010 0x000000000060b726 in CGame::KillRendering (this=0x232de70)
    at rts/Game/Game.cpp:824
#11 0x0000000000607f64 in CGame::~CGame (this=0x232de70,
    __in_chrg=<optimized out>) at rts/Game/Game.cpp:374
0000012 0x0000000000608084 in CGame::~CGame (this=0x232de70,
    __in_chrg=<optimized out>) at rts/Game/Game.cpp:390
0000013 0x0000000000b5dfdc in SafeDelete<CGame*> (a=@0x1abd780: 0x0)
    at rts/System/Util.h:197
0000014 0x0000000000b5a588 in SpringApp::ShutDown ()
    at rts/System/SpringApp.cpp:981
#15 0x0000000000b59f76 in SpringApp::Run (this=0x7fffffffe210)
    at rts/System/SpringApp.cpp:954
#16 0x0000000000b1c9bf in Run (argc=1, argv=0x7fffffffe3e8)
    at rts/System/Main.cpp:48
#17 0x0000000000b1d295 in main (argc=1, argv=0x7fffffffe3e8)
    at rts/System/Main.cpp:107
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0013931

Kloot (developer)

can't reproduce (with regular nvidia driver blob)

~0013934

abma (administrator)

i hope the fix is correct?

https://github.com/spring/spring/commit/a2951703eea53fc94c45db630532b704f6fb0a76

for me it works...
+Notes

-Issue History
Date Modified Username Field Change
2015-01-20 12:21 abma New Issue
2015-01-20 12:21 abma File Added: infolog.txt
2015-01-20 12:30 abma Description Updated View Revisions
2015-01-20 13:46 Kloot Note Added: 0013931
2015-01-20 23:51 abma Changeset attached => spring LoadMap a2951703
2015-01-20 23:51 abma Assigned To => abma
2015-01-20 23:51 abma Status new => resolved
2015-01-20 23:51 abma Resolution open => fixed
2015-01-20 23:51 abma Note Added: 0013934
+Issue History