2025-07-21 00:50 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0003770Spring engineGeneralpublic2013-05-04 18:12
Reporterabma 
Assigned ToKloot 
PrioritynormalSeverityminorReproducibilityhave not tried
StatusresolvedResolutionfixed 
Product Version94.1.1+git 
Target Version95.0Fixed in Version 
Summary0003770: lua gc seems to be not called when connection is lost
Descriptionhttp://buildbot.springrts.com/builders/validationtests/builds/2935/steps/validation%20test_3/logs/stdio
Steps To Reproduce[90m[f=0004365] [39mReconnecting to server... 23s
[90m[f=0004365] [39mReconnecting to server... 24s
[90m[f=0004365] [39mReconnecting to server... 25s
terminate called after throwing an instance of 'std::bad_alloc'
  what(): std::bad_alloc
Additional Information#0 0x00007fde9cb2e925 in raise () from /lib64/libc.so.6
The program being debugged is not being run.
#0 0x00007fde9cb2e925 in raise () from /lib64/libc.so.6
No symbol table info available.
#1 0x00007fde9cb300d8 in abort () from /lib64/libc.so.6
No symbol table info available.
#2 0x00007fde9d63cdad in __gnu_cxx::__verbose_terminate_handler() () from /lib64/libstdc++.so.6
No symbol table info available.
0000003 0x00007fde9d63aea6 in ?? () from /lib64/libstdc++.so.6
No symbol table info available.
0000004 0x00007fde9d63aed3 in std::terminate() () from /lib64/libstdc++.so.6
No symbol table info available.
0000005 0x00007fde9d63b0fe in __cxa_throw () from /lib64/libstdc++.so.6
No symbol table info available.
#6 0x00007fde9d63b5ed in operator new(unsigned long) () from /lib64/libstdc++.so.6
No symbol table info available.
#7 0x00007fde9d63b689 in operator new[](unsigned long) () from /lib64/libstdc++.so.6
No symbol table info available.
#8 0x0000000000cc4f66 in log_formatter_format(const char *, int, const char *, typedef __va_list_tag __va_list_tag *) (section=0x117b88f "", level=50, fmt=0x117bb30 "%s::RunCallIn: error = %i, %s, %s", arguments=0x7fff82412ca8) at ../../rts/System/Log/DefaultFormatter.cpp:146
        bufferSize = 256
        mem = 0x117b88f ""
        buffer = 0x77fec98
#9 0x0000000000cbef09 in log_backend_record(const char *, int, const char *, typedef __va_list_tag __va_list_tag *) (section=0x117b88f "", level=50, fmt=0x117bb30 "%s::RunCallIn: error = %i, %s, %s", arguments=0x7fff82412ca8) at ../../rts/System/Log/Backend.cpp:84
        record = 0x320117b88f <Address 0x320117b88f out of bounds>
        si = 0
        sinks = std::vector of length 3, capacity 4 = {0xcc63d9 <log_sink_record_console(char const*, int, char const*)>, 0xcc724e <log_sink_record_file(char const*, int, char const*)>, 0xcc502c <log_sink_record_logSinkHandler(char const*, int, char const*)>}
0000010 0x0000000000cc1266 in log_filter_record(const char *, int, const char *, typedef __va_list_tag __va_list_tag *) (section=0x117b88f "", level=50, fmt=0x117bb30 "%s::RunCallIn: error = %i, %s, %s", arguments=0x7fff82412ca8) at ../../rts/System/Log/DefaultFilter.cpp:175
        __PRETTY_FUNCTION__ = "void log_filter_record(const char*, int, const char*, __va_list_tag*)"
#11 0x0000000000cc1449 in log_frontend_record (section=0x117b88f "", level=50, fmt=0x117bb30 "%s::RunCallIn: error = %i, %s, %s") at ../../rts/System/Log/DefaultFilter.cpp:211
        __PRETTY_FUNCTION__ = "void log_frontend_record(const char*, int, const char*, ...)"
        arguments = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fff82412d80, reg_save_area = 0x7fff82412cc0}}
0000012 0x00000000006f51b8 in CLuaHandle::RunCallInTraceback (this=0x8fc3420, hs=..., inArgs=2, outArgs=0, errfuncIndex=0) at ../../rts/Lua/LuaHandle.cpp:478
        traceback = "not enough memory"
        error = 4
0000013 0x0000000000704a3a in CLuaHandle::RunCallIn (this=0x8fc3420, hs=..., inArgs=2, outArgs=0) at ../../rts/Lua/LuaHandle.h:421
No locals.
0000014 0x0000000000704a7e in CLuaHandle::RunCallInUnsynced (this=0x8fc3420, hs=..., inArgs=2, outArgs=0) at ../../rts/Lua/LuaHandle.h:428
        retval = false
#15 0x00000000006fdf2d in CLuaHandle::DrawScreen (this=0x8fc3420) at ../../rts/Lua/LuaHandle.cpp:2187
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 293, starttime = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 1367625698907381000}, nameIterator = {first = 293, second = "Lua"}}, autoShowGraph = false, it = {first = 293, second = 1}}
        L = 0x8fc38d0
        cmdStr = {str = "DrawScreen", hash = 3651032054}
#16 0x0000000000c1de29 in CEventHandler::DrawScreen (this=0x1a60e80) at ../../rts/System/EventHandler.cpp:422
        ec = 0x8fc3420
        i = 1
        count = 2
#17 0x0000000000710878 in LuaInputReceiver::Draw (this=0x9ea6880) at ../../rts/Lua/LuaInputReceiver.cpp:68
No locals.
#18 0x000000000056f561 in CGame::Draw (this=0x306e1a0) at ../../rts/Game/Game.cpp:1200
Python Exception <type 'exceptions.IndexError'> list index out of range:
        rcvr = 0x9ea6880
        inputReceivers = std::list
        ri = {<std::iterator<std::bidirectional_iterator_tag, CInputReceiver*, long, CInputReceiver**, CInputReceiver*&>> = {<No data fields>}, current = }
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 2564, starttime = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 1367625698907373000}, nameIterator = {first = 2564, second = "CInputReceiver::DrawScreen"}}, autoShowGraph = false, it = {first = 2564, second = 1}}
        doDrawWorld = true
        currentTimePreDraw = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 1367625698907038000}
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 1516, starttime = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 1367625698907371000}, nameIterator = {first = 1516, second = "Game::DrawScreen"}}, autoShowGraph = false, it = {first = 1516, second = 1}}
        currentTimePostDraw = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 140735378698608}
#19 0x0000000000c586cd in SpringApp::Update (this=0x7fff82413420) at ../../rts/System/SpringApp.cpp:975
        cputimer = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 1972, starttime = {static binder = {class_ = 0x2ec0be0, base = 0x0, flags = creg::CF_None, memberRegistrator = 0x1a640c0, name = 0x120496d "spring_time", size = 8, alignment = 8, hasVTable = false, constructor = 0xc3a90e <spring_time::_ConstructInstance(void*)>, destructor = 0xc3a93a <spring_time::_DestructInstance(void*)>, nextBinder = 0x1a64000}, static memberRegistrator = 0x1a64150, static hasVTable = false, x = 1367625698906459000}, nameIterator = {first = 1972, second = "GameController::Draw"}}, autoShowGraph = false, it = {first = 1972, second = 1}}
        ret = 1
0000020 0x0000000000c5887b in SpringApp::Run (this=0x7fff82413420, argc=2, argv=0x7fff82413608) at ../../rts/System/SpringApp.cpp:1058
No locals.
#21 0x0000000000c33659 in Run (argc=2, argv=0x7fff82413608) at ../../rts/System/Main.cpp:65
        app = {cmdline = 0x2eb1190, binaryName = "/tmp/spring/tests/usr/local/bin/spring-headless"}
        ret = -1
        err = 0x4016cbe4019e4000
#22 0x0000000000c33c55 in main (argc=2, argv=0x7fff82413608) at ../../rts/System/Main.cpp:150
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
+Relationships

-Notes

~0010611

abma (administrator)

Last edited: 2013-05-04 02:21

View 2 revisions

also, is it called when

- game is paused?
- game isn't started?
- at high fps?

~0010613

Kloot (developer)

Last edited: 2013-05-04 11:34

View 2 revisions

it is called only every simframe, or every 1/30th of a second when paused --> without a server connection neither of those conditions are met

+Notes

-Issue History
Date Modified Username Field Change
2013-05-04 02:12 abma New Issue
2013-05-04 02:12 abma Note Added: 0010611
2013-05-04 02:21 abma Note Edited: 0010611 View Revisions
2013-05-04 11:33 Kloot Note Added: 0010613
2013-05-04 11:34 Kloot Note Edited: 0010613 View Revisions
2013-05-04 17:44 Kloot Changeset attached => spring develop ff2727f6
2013-05-04 17:44 Kloot Assigned To => Kloot
2013-05-04 17:44 Kloot Resolution open => fixed
2013-05-04 18:12 Kloot Status new => resolved
+Issue History