2019-08-24 11:57 CEST

View Issue Details Jump to Notes ] Related Changesets ]
IDProjectCategoryView StatusLast Update
0005172Spring engineGeneralpublic2016-03-16 17:48
ReporterFabriceFABS 
Assigned Tohokomoko 
PriorityhighSeveritycrashReproducibilityalways
StatusresolvedResolutionfixed 
Product Version101.0+git 
Target Version102.0Fixed in Version 
Summary0005172: SegFAULT If map got 3D objects (.3ds & .dae & maybe others 3D filetype)
DescriptionSmall intro :
By updating my maps (MetalHeck & BlockWars mainly), I've decided not use «.3ds» 3D objects filetype anymore in my maps for substitute them with the «.dae» filetype.
By this, I've discovered that for instance for those 3 maps that got some 3D objects :
- BlockWars-V2.2 (.3ds objects) => https://springfiles.com/spring/spring-maps/blockwars-v22
- MetalHeck-V3.2 (.3ds objects) => https://springfiles.com/spring/spring-maps/metalheck-v32
- CoagulationMarsh-V0.7 (.dae objects) => https://springfiles.com/spring/spring-maps/coagulation-marsh-5

NOTA : I've put also CoagulationMarsh-V0.7 made by Anarchid's (with same map structure like BlockWars or MetalHeck) : CoagulationMap to be sure I did no mistake on mine's.

Those 3 maps can work / or not, only in such settings :
[OK_]
Spring RTS 100 & BAR 5245 (case of "Latest BAR").
Spring RTS 101.0.1-140 & BA 9.35,
Spring RTS 101.0.1-140 & BAR<=5159

[SEG FAULT]
Spring RTS 101 & BAR 5245 (case of "Latest BAR"),
Spring RTS 101.0.1-140 & BAR 5245 (case of "Latest BAR").

TimeLine BAR for BAR around 5159 : http://imolarpg.dyndns.org/trac/balatest/timeline?from=03%2F11%2F16&daysback=0&authors=&milestone=on&ticket=on&changeset=on&wiki=on&update=Update

[INFOLOG.TXT] for Engine 101.0.1-140 & BAR-5245
- BlockWars-V2.2 with .3ds objects
*****The part that may interest most maybe*****
[f=-000001] [Texture] Warning: [LoadAndCacheTexture] could not load texture "" from model "objects3d/pipe1.0.3ds"
[f=-000001] [CrashHandler] Error: Segmentation fault (SIGSEGV) in spring 101.0.1-140-g5f08624 develop
[f=-000001] [CrashHandler] Error: Halted Stacktrace for Spring 101.0.1-140-g5f08624 develop using libunwind:
[f=-000001] [CrashHandler] Error: [00] .../spring() [0x8cc6af] log_util_prepareSection
[f=-000001] [CrashHandler] Error: [01] .../spring() [0x8cc84b] log_util_prepareSection
[f=-000001] [CrashHandler] Error: [02] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10340) [0x7f4991e96340] __restore_rt
[f=-000001] Error: [ErrorMessageBox][1] msg="Spring has crashed:
Segmentation fault (SIGSEGV).
************EO sample**************
FULL INFOLOG => http://paste.springfiles.com/view/92d3a356


-Coagulation Marsh 0.7 with .dae 3D objects
*****The part that may interest most maybe*****
[f=-000001] [Texture] Warning: [LoadAndCacheTexture] could not load texture "" from model "objects3d/bloodthorn1.dae"
[f=-000001] searching for normals for, unittextures/bloodthorn1.png
[f=-000001] [CrashHandler] Error: Segmentation fault (SIGSEGV) in spring 101.0.1-140-g5f08624 develop
[f=-000001] [CrashHandler] Error: Halted Stacktrace for Spring 101.0.1-140-g5f08624 develop using libunwind:
[f=-000001] [CrashHandler] Error: [00] .../spring() [0x8cc6af] log_util_prepareSection
[f=-000001] [CrashHandler] Error: [01] .../spring() [0x8cc84b] log_util_prepareSection
[f=-000001] [CrashHandler] Error: [02] /lib/x86_64-linux-gnu/libpthread.so.0(+0x10340) [0x7fd483e8f340] __restore_rt
[f=-000001] Error: [ErrorMessageBox][1] msg="Spring has crashed:
Segmentation fault (SIGSEGV).
************EO sample**************
FULL INFOLOG => http://paste.springfiles.com/view/29528b94


Seems the first error is the first 3D object parsed in the /objects3d dir.

Thanks
Steps To ReproduceSimply choose one of the map above (feel free to try some other maps with 3D objects if you need some extra-tests), and the MOD/ENG concerned.
TagsNo tags attached.
Checked infolog.txt for lua Errors
Attached Files

-Relationships
+Relationships

-Notes

~0016077

FabriceFABS (reporter)

Extra-test with The_Rising map (.s3o 3D Objects) => Works [OK_] with SpringRTS 101.0.1-140 & BAR-5245.

~0016078

Kloot (developer)

hmm...


bt full
#0 0x00000000008bea52 in Assimp::Logger::debug (this=0x7fffaa1fa240, message=0x7fffaa1fa488 "Assimp 3.0.1154 amd64 gcc shared singlethreaded")
    at rts/lib/assimp/code/DefaultLogger.cpp:171
No locals.
#1 0x00000000008b82d9 in debug (message="Assimp 3.0.1154 amd64 gcc shared singlethreaded", this=0x7fffaa1fa240)
    at rts/lib/assimp/code/../include/assimp/Logger.hpp:237
No locals.
#2 WriteLogOpening (file="objects3d/pipe1.0.3ds") at rts/lib/assimp/code/Importer.cpp:568
        l = 0x7fffaa1fa240
        flags = <optimized out>
0000003 0x00000000008b89c4 in Assimp::Importer::ReadFile (this=this@entry=0x7fffb74fbab0, _pFile=<optimized out>, pFlags=pFlags@entry=426203)
    at rts/lib/assimp/code/Importer.cpp:584
        pFile = "objects3d/pipe1.0.3ds"
0000004 0x000000000072dd22 in ReadFile (pFlags=426203, pFile="objects3d/pipe1.0.3ds", this=0x7fffb74fbab0) at rts/lib/assimp/include/assimp/Importer.hpp:592
No locals.
0000005 CAssParser::Load (this=0xac38940, modelFilePath="objects3d/pipe1.0.3ds") at rts/Rendering/Models/AssParser.cpp:207
        importer = {pimpl = 0x7fffaa1f9690}
        scene = 0x0
        parentMap = std::map with 28 elements<error reading variable: Cannot access memory at address 0x850f0bff08eb0010>
        metaFileParser = {fileName = "objects3d/pipe1.0.3ds.lua", fileModes = "Mb", textChunk = "", accessModes = "Mmb", valid = true, initDepth = -1, L = 0x7fffaa44e780, tables = std::set with 1 elements = {[0] = 0x7fffb74fbaf0},
          rootRef = 1, currentRef = 1, lowerKeys = true, lowerCppKeys = true, errorLog = "", accessedFiles = std::set with 0 elements, static currentParser = 0x0}
        pieceMap = std::map with 140736268844592 elements = {[<error reading variable: Cannot access memory at address 0xffffffffffffffe8>] = 0x0<error reading variable: Cannot access memory at address 0x2a>...}
        model = <optimized out>
        modelPath = "objects3d/"
        modelName = "pipe1.0"
        metaFileName = "objects3d/pipe1.0.3ds.lua"
        modelTable = @0x7fffb74fbaf0: {path = "ROOT", isValid = true, parser = 0x7fffb74fbb80, L = 0x7fffaa44e780, refnum = 2}
#6 0x000000000072ff02 in CModelLoader::ParseModel (this=this@entry=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe1.0.3ds", path="objects3d/pipe1.0.3ds")
    at rts/Rendering/Models/IModelParser.cpp:350
        model = 0x0
        parser = 0xac38940
#7 0x0000000000730b72 in CModelLoader::CreateModel (this=this@entry=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe1.0.3ds", path="objects3d/pipe1.0.3ds", preload=preload@entry=true)
    at rts/Rendering/Models/IModelParser.cpp:317
        model = <optimized out>
#8 0x0000000000730f81 in CModelLoader::LoadModel (this=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe1.0.3ds", preload=preload@entry=true)
    at rts/Rendering/Models/IModelParser.cpp:284
        path = "objects3d/pipe1.0.3ds"
        refs = {0x7fffb74fbe30, 0x7fffb74fbd90}
#9 0x00000000007310e0 in LoadQueue::Pump (this=0xcc7f90 <CModelLoader::GetInstance()::instance+144>) at rts/Rendering/Models/IModelParser.cpp:127
        modelName = "pipe1.0.3ds"



another run, another trace


bt full
#0 0x00007ffff416ccc9 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56
        resultvar = 0
        pid = 29241
        selftid = 29241
#1 0x00007ffff41700d8 in __GI_abort () at abort.c:89
        save_stage = 2
        act = {__sigaction_handler = {sa_handler = 0x3f800000ffffb878, sa_sigaction = 0x3f800000ffffb878}, sa_mask = {__val = {9036685, 0, 9007647, 0, 0, 0, 462056728, 140737488337104, 3, 0, 9034489, 0, 40, 18446603336221214417,
              3, 0}}, sa_flags = 48, sa_restorer = 0x7fffffffb930}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2 0x00007ffff41a9394 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7ffff42b7b28 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175
        ap = {{gp_offset = 40, fp_offset = 4294934528, overflow_arg_area = 0x7fffffffbb60, reg_save_area = 0x7fffffffbaf0}}
        fd = 27
        on_2 = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
        written = <optimized out>
0000003 0x00007ffff41b566e in malloc_printerr (ptr=<optimized out>, str=0x7ffff42b7cf0 "double free or corruption (fasttop)", action=1) at malloc.c:4996
        buf = "00007fffa8025cc0"
        cp = <optimized out>
0000004 _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at malloc.c:3840
        size = <optimized out>
        fb = <optimized out>
        nextchunk = <optimized out>
        nextsize = <optimized out>
        nextinuse = <optimized out>
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = <optimized out>
        errstr = <optimized out>
        locked = <optimized out>
0000005 0x00000000008be8d7 in ~LogStreamInfo (this=0x7fffa8297490, __in_chrg=<optimized out>) at rts/lib/assimp/code/DefaultLogger.cpp:87
No locals.
#6 Assimp::DefaultLogger::~DefaultLogger (this=0x1d3cb3c0, __in_chrg=<optimized out>) at rts/lib/assimp/code/DefaultLogger.cpp:368
        it =
#7 0x00000000008be919 in Assimp::DefaultLogger::~DefaultLogger (this=0x1d3cb3c0, __in_chrg=<optimized out>) at rts/lib/assimp/code/DefaultLogger.cpp:370
No locals.
#8 0x00000000008bf100 in Assimp::DefaultLogger::create (name=name@entry=0xaceeeb "", severity=severity@entry=Assimp::Logger::VERBOSE, defStreams=defStreams@entry=9, io=io@entry=0x0)
    at rts/lib/assimp/code/DefaultLogger.cpp:137
No locals.
#9 0x000000000072dc4e in CAssParser::Load (this=0x985b3e0, modelFilePath="objects3d/pipe2.0.3ds") at rts/Rendering/Models/AssParser.cpp:184
        importer = {pimpl = 0x1b7e13c0}
        scene = <optimized out>
        parentMap = std::map with 28 elements<error reading variable: Cannot access memory at address 0x850f0bff08eb0010>
        metaFileParser = {fileName = "objects3d/pipe2.0.3ds.lua", fileModes = "Mb", textChunk = "", accessModes = "Mmb", valid = true, initDepth = -1, L = 0x21728730, tables = std::set with 1 elements = {[0] = 0x7fffffffbd30},
          rootRef = 1, currentRef = 1, lowerKeys = true, lowerCppKeys = true, errorLog = "", accessedFiles = std::set with 0 elements, static currentParser = 0x0}
        pieceMap = std::map with 140737488339040 elements = {[<error reading variable: Cannot access memory at address 0xffffffffffffffe8>] = 0x1d936be0<error reading variable: Cannot access memory at address 0x30>...}
        model = <optimized out>
        modelPath = "objects3d/"
        modelName = "pipe2.0"
        metaFileName = "objects3d/pipe2.0.3ds.lua"
        modelTable = @0x7fffffffbd30: {path = "ROOT", isValid = true, parser = 0x7fffffffbdc0, L = 0x21728730, refnum = 2}
0000010 0x000000000072ff02 in CModelLoader::ParseModel (this=this@entry=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe2.0.3ds", path="objects3d/pipe2.0.3ds")
    at rts/Rendering/Models/IModelParser.cpp:350
        model = 0x0
        parser = 0x985b3e0
#11 0x0000000000730b72 in CModelLoader::CreateModel (this=this@entry=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe2.0.3ds", path="objects3d/pipe2.0.3ds", preload=preload@entry=false)
    at rts/Rendering/Models/IModelParser.cpp:317
        model = <optimized out>
0000012 0x0000000000730f81 in CModelLoader::LoadModel (this=0xcc7f00 <CModelLoader::GetInstance()::instance>, name="pipe2.0.3ds", preload=preload@entry=false)
    at rts/Rendering/Models/IModelParser.cpp:284
---Type <return> to continue, or q <return> to quit---
        path = "objects3d/pipe2.0.3ds"
        refs = {0x7fffffffc060, 0x7fffffffbfd0}
0000013 0x00000000009e1d43 in SolidObjectDef::LoadModel (this=this@entry=0xda82540) at rts/Sim/Objects/SolidObjectDef.cpp:75
No locals.
0000014 0x000000000063e401 in LuaUtils::PushModelTable (L=0x18f58a30, def=0xda82540) at rts/Lua/LuaUtils.cpp:757
        modelPath = "objects3d/pipe2.0.3ds"
        modelType = "3ds"
        model = <optimized out>
#15 0x00000000005b19b8 in FeatureDefIndex (L=0x18f58a30) at rts/Lua/LuaFeatureDefs.cpp:166
        fd = <optimized out>
        name = 0x1b8ec798 "model"
        it = {first = "model", second = {type = FUNCTION_TYPE, offset = 0, func = <ModelTable(lua_State*, void const*)>, deprecated = false}}
        userData = <optimized out>
        elem = @0x1b0a8b18: {type = FUNCTION_TYPE, offset = 0, func = 0x5b16f0 <ModelTable(lua_State*, void const*)>, deprecated = false}
        p = <optimized out>
        L = 0x18f58a30
#16 0x0000000000892feb in luaD_precall (L=L@entry=0x18f58a30, func=func@entry=0x1b6f6800, nresults=1) at rts/lib/lua/src/ldo.cpp:320
        ci = <optimized out>
        n = <optimized out>
        cl = <optimized out>
        funcr = <optimized out>
#17 0x0000000000893294 in luaD_call (L=L@entry=0x18f58a30, func=0x1b6f6800, nResults=nResults@entry=1) at rts/lib/lua/src/ldo.cpp:377
No locals.
#18 0x000000000089fa77 in callTMres (L=L@entry=0x18f58a30, res=<optimized out>, f=<optimized out>, p1=<optimized out>, p2=<optimized out>)
    at rts/lib/lua/src/lvm.cpp:110
        result = 976
#19 0x00000000008a017c in luaV_gettable (L=L@entry=0x18f58a30, t=<optimized out>, key=<optimized out>, val=<optimized out>) at rts/lib/lua/src/lvm.cpp:147
        tm = <optimized out>
        loop = <optimized out>
0000020 0x00000000008a0f2f in luaV_execute (L=L@entry=0x18f58a30, nexeccalls=nexeccalls@entry=1) at rts/lib/lua/src/lvm.cpp:493
        rb = <optimized out>
        i = <optimized out>
        ra = <optimized out>
        cl = 0x1bb69010
        base = <optimized out>
        k = 0x1bb92900
        pc = 0x1bb68b08
#21 0x00000000008932dd in luaD_call (L=0x18f58a30, func=0x1b6f66e0, nResults=<optimized out>) at rts/lib/lua/src/ldo.cpp:378
No locals.
#22 0x00000000008926da in luaD_rawrunprotected (L=L@entry=0x18f58a30, f=f@entry=0x88b760 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffc480)
    at rts/lib/lua/src/ldo.cpp:116
        lj = {previous = 0x7fffffffca50, b = 6543787, status = 0}
#23 0x000000000089347a in luaD_pcall (L=L@entry=0x18f58a30, func=func@entry=0x88b760 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffc480, old_top=816, ef=<optimized out>)
    at rts/lib/lua/src/ldo.cpp:464
        status = <optimized out>
        old_ci = 320
        old_errfunc = 0
        oldnCcalls = 2
        old_allowhooks = 1 '\001'
0000024 0x000000000088ce38 in lua_pcall (L=L@entry=0x18f58a30, nargs=nargs@entry=0, nresults=nresults@entry=-1, errfunc=errfunc@entry=0)
    at rts/lib/lua/src/lapi.cpp:833
        c = {func = 0x1b6f66e0, nresults = -1}
        status = <optimized out>
        func = <optimized out>
#25 0x0000000000647b8b in LuaVFS::Include (L=0x18f58a30, synced=<optimized out>) at rts/Lua/LuaVFS.cpp:189
        hasCustomEnv = <optimized out>
        __FUNCTION__ = "Include"
        paramTop = 1
        filename = "ModelMaterials/3_features_wrecks.lua"
        modes = "rMmb"
        code = "-- $Id$\r\n", '-' <repeats 80 times>, "\r\n", '-' <repeats 80 times>, "\r\n\r\n\r\nlocal materials = {\r\n\tf"...
---Type <return> to continue, or q <return> to quit---
        error = 0
0000026 0x0000000000892feb in luaD_precall (L=L@entry=0x18f58a30, func=0x1b6f66c0, nresults=nresults@entry=2) at rts/lib/lua/src/ldo.cpp:320
        ci = <optimized out>
        n = <optimized out>
        cl = <optimized out>
        funcr = <optimized out>
0000027 0x00000000008a0d90 in luaV_execute (L=L@entry=0x18f58a30, nexeccalls=5, nexeccalls@entry=1) at rts/lib/lua/src/lvm.cpp:613
        b = <optimized out>
        nresults = 2
        i = <optimized out>
        ra = <optimized out>
        cl = 0x1b753220
        base = <optimized out>
        k = 0x1b74e3a0
        pc = 0x1b74e4f8
#28 0x00000000008932dd in luaD_call (L=0x18f58a30, func=0x18f59390, nResults=<optimized out>) at rts/lib/lua/src/ldo.cpp:378
No locals.
0000029 0x00000000008926da in luaD_rawrunprotected (L=L@entry=0x18f58a30, f=f@entry=0x88b760 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffcac0)
    at rts/lib/lua/src/ldo.cpp:116
        lj = {previous = 0x7fffffffd090, b = 6543787, status = 0}
#30 0x000000000089347a in luaD_pcall (L=L@entry=0x18f58a30, func=func@entry=0x88b760 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffcac0, old_top=112, ef=<optimized out>)
    at rts/lib/lua/src/ldo.cpp:464
        status = <optimized out>
        old_ci = 80
        old_errfunc = 16
        oldnCcalls = 1
        old_allowhooks = 1 '\001'
#31 0x000000000088ce38 in lua_pcall (L=L@entry=0x18f58a30, nargs=nargs@entry=0, nresults=nresults@entry=-1, errfunc=errfunc@entry=0)
    at rts/lib/lua/src/lapi.cpp:833
        c = {func = 0x18f59390, nresults = -1}
        status = <optimized out>
        func = <optimized out>
#32 0x0000000000647b8b in LuaVFS::Include (L=0x18f58a30, synced=<optimized out>) at rts/Lua/LuaVFS.cpp:189
        hasCustomEnv = <optimized out>
        __FUNCTION__ = "Include"
        paramTop = 3
        filename = "LuaRules/gadgets.lua"
        modes = "Mmb"
        code = '-' <repeats 80 times>, "\n", '-' <repeats 80 times>, "\n--\n-- file: gadgets.lua\n-- brief:"...
        error = 0
#33 0x0000000000892feb in luaD_precall (L=L@entry=0x18f58a30, func=0x18f59350, nresults=nresults@entry=0) at rts/lib/lua/src/ldo.cpp:320
        ci = <optimized out>
        n = <optimized out>
        cl = <optimized out>
        funcr = <optimized out>
0000034 0x00000000008a0d90 in luaV_execute (L=L@entry=0x18f58a30, nexeccalls=nexeccalls@entry=1) at rts/lib/lua/src/lvm.cpp:613
        b = <optimized out>
        nresults = 0
        i = <optimized out>
        ra = <optimized out>
        cl = 0x1b65a0b0
        base = <optimized out>
        k = 0x1b659ca0
        pc = 0x1b659d70
0000035 0x00000000008932dd in luaD_call (L=0x18f58a30, func=0x18f59340, nResults=<optimized out>) at rts/lib/lua/src/ldo.cpp:378
No locals.
#36 0x00000000008926da in luaD_rawrunprotected (L=L@entry=0x18f58a30, f=f@entry=0x88b760 <f_call(lua_State*, void*)>, ud=ud@entry=0x7fffffffd100)
    at rts/lib/lua/src/ldo.cpp:116
        lj = {previous = 0x0, b = 459643552, status = 0}
#37 0x000000000089347a in luaD_pcall (L=L@entry=0x18f58a30, func=func@entry=0x88b760 <f_call(lua_State*, void*)>, u=u@entry=0x7fffffffd100, old_top=32, ef=<optimized out>)
    at rts/lib/lua/src/ldo.cpp:464
---Type <return> to continue, or q <return> to quit---
        status = <optimized out>
        old_ci = 0
        old_errfunc = 0
        oldnCcalls = 0
        old_allowhooks = 1 '\001'
#38 0x000000000088ce38 in lua_pcall (L=L@entry=0x18f58a30, nargs=nargs@entry=0, nresults=nresults@entry=0, errfunc=errfunc@entry=1)
    at rts/lib/lua/src/lapi.cpp:833
        c = {func = 0x18f59340, nresults = 0}
        status = <optimized out>
        func = <optimized out>
0000039 0x00000000005b6b2e in ScopedLuaCall (_popErrFunc=<optimized out>, _errFuncIdx=<optimized out>, _nOutArgs=0, _nInArgs=0, func=<optimized out>, state=0x18f58a30, handle=<optimized out>, this=<synthetic pointer>)
    at rts/Lua/LuaHandle.cpp:302
        prevMatState = {mode = 5888, modelView = 0, projection = 0, texture = 0}
        matTracker = @0x18f545b8: {matrixData = {mode = 5888, modelView = 0, projection = 0, texture = 0}, listMode = false}
#40 CLuaHandle::RunCallInTraceback (this=this@entry=0x18f54420, L=L@entry=0x18f58a30, hs=hs@entry=0xcb0840 <CLuaHandle::LoadCode(lua_State*, std::string const&, std::string const&)::cmdStr>, inArgs=inArgs@entry=0,
    outArgs=outArgs@entry=0, errFuncIndex=1, tracebackMsg="", popErrorFunc=popErrorFunc@entry=false) at rts/Lua/LuaHandle.cpp:373
        call = {luaState = 0x18f58a30, luaHandle = <optimized out>, nInArgs = <optimized out>, nOutArgs = <optimized out>, errFuncIdx = <optimized out>, popErrFunc = <optimized out>, top = <optimized out>, error = <optimized out>}
#41 0x00000000005b6f03 in CLuaHandle::RunCallInTraceback (this=this@entry=0x18f54420, L=L@entry=0x18f58a30, hs=..., inArgs=inArgs@entry=0, outArgs=outArgs@entry=0, errFuncIndex=<optimized out>, popErrFunc=popErrFunc@entry=false)
    at rts/Lua/LuaHandle.cpp:383
        traceback = ""
        error = <optimized out>
0000042 0x00000000005bfb35 in CLuaHandle::LoadCode (this=this@entry=0x18f54420, L=0x18f58a30,
    code="if (select == nil) then\r\n select = function(n,...) \r\n local arg = arg\r\n if (not arg) then arg = {...}; arg.n = #arg end\r\n return arg[((n=='#') and 'n')or n]\r\n end\r\nend\r\n\r\nVFS.Include(Script"..., debug="LuaRules/draw.lua") at rts/Lua/LuaHandle.cpp:419
        cmdStr = {str = "Initialize", hash = 1287071195}
        traceBack = {L = 0x18f58a30, errFuncIdx = 1}
        loadError = 0
        ret = true
0000043 0x00000000005c7f86 in CUnsyncedLuaHandle::Init (this=this@entry=0x18f54420,
    code="if (select == nil) then\r\n select = function(n,...) \r\n local arg = arg\r\n if (not arg) then arg = {...}; arg.n = #arg end\r\n return arg[((n=='#') and 'n')or n]\r\n end\r\nend\r\n\r\nVFS.Include(Script"..., file="LuaRules/draw.lua") at rts/Lua/LuaHandleSynced.cpp:148
No locals.
0000044 0x00000000005c957e in CLuaHandleSynced::Init (this=this@entry=0x18f541a0, syncedFile="LuaRules/main.lua", unsyncedFile="LuaRules/draw.lua", modes="M")
    at rts/Lua/LuaHandleSynced.cpp:1366
        syncedCode = "if (select == nil) then\n select = function(n,...) \n local arg = arg\n if (not arg) then arg = {...}; arg.n = #arg end\n return arg[((n=='#') and 'n')or n]\n end\nend\n\nSpring.Echo('LuaRules Entr"...
        unsyncedCode = "if (select == nil) then\r\n select = function(n,...) \r\n local arg = arg\r\n if (not arg) then arg = {...}; arg.n = #arg end\r\n return arg[((n=='#') and 'n')or n]\r\n end\r\nend\r\n\r\nVFS.Include(Script"...
        haveSynced = true
        haveUnsynced = <optimized out>
0000045 0x00000000005e773a in CLuaRules::CLuaRules (this=0x18f541a0) at rts/Lua/LuaRules.cpp:57
No locals.
0000046 0x00000000005e7d5d in CLuaRules::LoadHandler () at rts/Lua/LuaRules.cpp:35
No locals.
0000047 0x00000000004cf7d8 in LoadFreeHandler () at rts/Lua/LuaRules.h:33
No locals.
0000048 CGame::LoadLua (this=this@entry=0x15d3e50) at rts/Game/Game.cpp:653
No locals.
0000049 0x00000000004d78c0 in CGame::LoadGame (this=0x15d3e50, mapName="maps/BlockWars.smf", threaded=threaded@entry=false) at rts/Game/Game.cpp:394
No locals.
0000050 0x00000000004f62ad in CLoadScreen::Init (this=this@entry=0x1a8e3c0) at rts/Game/LoadScreen.cpp:133
No locals.
0000051 0x00000000004f6c70 in CLoadScreen::CreateInstance (mapName="maps/BlockWars.smf", modName="bar-svn.sdd", saveFile=saveFile@entry=0x0)
    at rts/Game/LoadScreen.cpp:201
No locals.
0000052 0x00000000004fd1dd in CPreGame::UpdateClientNet (this=this@entry=0x1278bd0) at rts/Game/PreGame.cpp:340
        playerNum = <optimized out>
        inbuf = <optimized out>
        packet = {px = <optimized out>, pn = {pi_ = 0x12e3440}}
        __FUNCTION__ = "UpdateClientNet"
0000053 0x00000000004fde46 in CPreGame::Update (this=0x1278bd0) at rts/Game/PreGame.cpp:172
---Type <return> to continue, or q <return> to quit---
No locals.
#54 0x00000000007d0818 in SpringApp::Update (this=this@entry=0x7fffffffdc80) at rts/System/SpringApp.cpp:980
        ret = 1
        cputimer = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, hash = 19253840, starttime = {static binder = {class_ = {members = std::vector of length 1, capacity 1 = {{name = 0xab4fea "x", type = {
                        px = 0xd792d0, pn = {pi_ = 0xd79810}}, offset = 0, alignment = 8, flags = 0}}, binder = 0xccef60 <spring_time::binder>, name = "spring_time", size = 8, alignment = 8,
                  serializeProc = {<std::_Maybe_unary_or_binary_function<void, void*, creg::ISerializer*>> = {<std::binary_function<void*, creg::ISerializer*, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16, static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0xd79860, _M_const_object = 0xd79860, _M_function_pointer = 0xd79860,
                          _M_member_pointer = (void (std::_Undefined_class::*)(std::_Undefined_class * const)) 0xd79860, this adjustment 8331830}, _M_pod_data = "`\230\327\000\000\000\000\000\066\"\177\000\000\000\000"},
                      _M_manager = 0x7b2710 <std::_Function_base::_Base_manager<void creg::Class::SetSerialize<spring_time, void (spring_time::*)(creg::ISerializer*)>(spring_time*, void (spring_time::*)(creg::ISerializer*))::{lambda(void*, creg::ISerializer*)#1}>::_M_manager(std::_Any_data&, std::_Function_base::_Base_manager<void creg::Class::SetSerialize<spring_time, void (spring_time::*)(creg::ISerializer*)>(spring_time*, void (spring_time::*)(creg::ISerializer*))::{lambda(void*, creg::ISerializer*)#1}> const&, std::_Manager_operation)>}, _M_invoker = 0x669f90
     <std::_Function_handler<void (void*, creg::ISerializer*), void creg::Class::SetSerialize<CReadMap, void (CReadMap::*)(creg::ISerializer*)>(CReadMap*, void (CReadMap::*)(creg::ISerializer*))::{lambda(void*, creg::ISerializer*)#1}>::_M_invoke(std::_Any_data const&, void*, creg::ISerializer*)>},
                  postLoadProc = {<std::_Maybe_unary_or_binary_function<void, void*>> = {<std::unary_function<void*, void>> = {<No data fields>}, <No data fields>}, <std::_Function_base> = {static _M_max_size = 16,
                      static _M_max_align = 8, _M_functor = {_M_unused = {_M_object = 0x0, _M_const_object = 0x0, _M_function_pointer = 0x0, _M_member_pointer = NULL}, _M_pod_data = '\000' <repeats 15 times>}, _M_manager = 0x0},
                    _M_invoker = 0x0}, currentMemberFlags = 0}, base = 0x0, flags = creg::CF_None, name = 0xac3fd9 "spring_time", size = 8, alignment = 8, hasVTable = false, isCregStruct = true,
                constructor = 0x7b21d0 <spring_time::_ConstructInstance(void*)>, destructor = 0x7b21e0 <spring_time::_DestructInstance(void*)>}, static creg_hasVTable = false, static creg_isStruct = true, x = 8464469049,
              static xs = 1458064377169448352}, nameIterator = <error reading variable>
0000055 0x00000000007d5b78 in SpringApp::Run (this=this@entry=0x7fffffffdc80) at rts/System/SpringApp.cpp:1016
        __FUNCTION__ = "Run"
0000056 0x00000000007ae4b5 in Run (argc=argc@entry=1, argv=argv@entry=0x7fffffffdf38) at rts/System/Main.cpp:48
        app = {cmdline = {px = 0xde9f80, pn = {pi_ = 0xdea2c0}}, clientSetup = {px = 0x155ba00, pn = {pi_ = 0x19ad0d0}}}
        ret = -1
        err = <optimized out>
0000057 0x000000000047576c in main (argc=1, argv=0x7fffffffdf38) at rts/System/Main.cpp:107

~0016079

Kloot (developer)

either a threading issue or memory corruption in assparser/assimp because some runs do succeed.

~0016086

abma (administrator)

i'm getting this:

[f=-000001] [LoadFinalize] finalized PFS (14117ms, checksum 1f46a3c5)
[f=-000001] Error: OpenGL: source<API> type<other> id<1> severity<medium>:
FBO incomplete: no attachments [-1]
[f=-000001] Set water rendering mode to 1 (reflective)
[f=-000001] Set view resolution: 1615 x 1026
=================================================================
==15579==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ffdcef25b7c at pc 0x000000ccfec8 bp 0x7ffdcef258d0 sp 0x7ffdcef258c0
READ of size 4 at 0x7ffdcef25b7c thread T0 (unknown)
    #0 0xccfec7 in CTextWrap::RemergeColorCodes(std::__cxx11::list<CTextWrap::word, std::allocator<CTextWrap::word> >*, std::__cxx11::list<CTextWrap::colorcode, std::allocator<CTextWrap::colorcode> >&) const rts/Rendering/Fonts/TextWrap.cpp:514
    #1 0xcd10c2 in CTextWrap::WrapInPlace(std::u8string&, float, float, float) rts/Rendering/Fonts/TextWrap.cpp:559
    #2 0x7bc0b8 in CTextWrap::WrapInPlace(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, float, float, float) rts/Rendering/Fonts/TextWrap.h:87
    0000003 0x7bc0b8 in LuaFonts::WrapText(lua_State*) rts/Lua/LuaFonts.cpp:290
    0000004 0xfd4b55 in luaD_precall(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:320
    0000005 0xff84d6 in luaV_execute(lua_State*, int) rts/lib/lua/src/lvm.cpp:634
    #6 0xfd53ac in luaD_call(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:378
    #7 0xfd2aa6 in luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) rts/lib/lua/src/ldo.cpp:116
    #8 0xfd5893 in luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) rts/lib/lua/src/ldo.cpp:464
    #9 0xfc8300 in lua_pcall(lua_State*, int, int, int) rts/lib/lua/src/lapi.cpp:833
    0000010 0xfcbe7b in luaB_xpcall rts/lib/lua/src/lbaselib.cpp:389
    #11 0xfd4b55 in luaD_precall(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:320
    0000012 0xff85a2 in luaV_execute(lua_State*, int) rts/lib/lua/src/lvm.cpp:613
    0000013 0xfd53ac in luaD_call(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:378
    0000014 0xfd2aa6 in luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) rts/lib/lua/src/ldo.cpp:116
    #15 0xfd5893 in luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) rts/lib/lua/src/ldo.cpp:464
    #16 0xfc8300 in lua_pcall(lua_State*, int, int, int) rts/lib/lua/src/lapi.cpp:833
    #17 0xfcbe17 in luaB_pcall rts/lib/lua/src/lbaselib.cpp:377
    #18 0xfd4b55 in luaD_precall(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:320
    #19 0xff85a2 in luaV_execute(lua_State*, int) rts/lib/lua/src/lvm.cpp:613
    0000020 0xfd53ac in luaD_call(lua_State*, lua_TValue*, int) rts/lib/lua/src/ldo.cpp:378
    #21 0xfd2aa6 in luaD_rawrunprotected(lua_State*, void (*)(lua_State*, void*), void*) rts/lib/lua/src/ldo.cpp:116
    #22 0xfd5893 in luaD_pcall(lua_State*, void (*)(lua_State*, void*), void*, long, long) rts/lib/lua/src/ldo.cpp:464
    #23 0xfc8300 in lua_pcall(lua_State*, int, int, int) rts/lib/lua/src/lapi.cpp:833
    0000024 0x7c0b93 in ScopedLuaCall rts/Lua/LuaHandle.cpp:302
    #25 0x7c0b93 in CLuaHandle::RunCallInTraceback(lua_State*, LuaHashString const*, int, int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, bool) rts/Lua/LuaHandle.cpp:373
    0000026 0x7c17bc in CLuaHandle::RunCallInTraceback(lua_State*, LuaHashString const&, int, int, int, bool) rts/Lua/LuaHandle.cpp:383
    0000027 0x7dd658 in CLuaHandle::RunCallIn(lua_State*, LuaHashString const&, int, int) rts/Lua/LuaHandle.h:346
    #28 0x7dd658 in CLuaHandle::RunDrawCallIn(LuaHashString const&) rts/Lua/LuaHandle.cpp:1729
    0000029 0x7dd82e in CLuaHandle::DrawGenesis() rts/Lua/LuaHandle.cpp:1742
    #30 0xd10571 in CEventHandler::DrawGenesis() rts/System/EventHandler.cpp:559
    #31 0x546532 in CGame::Draw() rts/Game/Game.cpp:1150
    #32 0xdb5916 in SpringApp::Update() rts/System/SpringApp.cpp:984
    #33 0xdc0caf in SpringApp::Run() rts/System/SpringApp.cpp:1016
    0000034 0xd563c6 in Run(int, char**) rts/System/Main.cpp:48
    0000035 0x4a6caf in main rts/System/Main.cpp:107
    #36 0x7eff9a2ea9ff in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x209ff)
    #37 0x4e40a8 in _start (/usr/local/bin/spring+0x4e40a8)

Address 0x7ffdcef25b7c is located in stack of thread T0 (unknown) at offset 92 in frame
    #0 0xcd0f6f in CTextWrap::WrapInPlace(std::u8string&, float, float, float) rts/Rendering/Fonts/TextWrap.cpp:544

  This frame has 3 object(s):
    [32, 56) 'words'
    [96, 120) 'colorcodes' <== Memory access at offset 92 underflows this variable
    [160, 192) '<unknown>'
HINT: this may be a false positive if your program uses some custom stack unwind mechanism or swapcontext
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow rts/Rendering/Fonts/TextWrap.cpp:514 CTextWrap::RemergeColorCodes(std::__cxx11::list<CTextWrap::word, std::allocator<CTextWrap::word> >*, std::__cxx11::list<CTextWrap::colorcode, std::allocator<CTextWrap::colorcode> >&) const
Shadow bytes around the buggy address:
  0x100039ddcb10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100039ddcb20: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 00 00 00 00
  0x100039ddcb30: f2 f2 f2 f2 00 00 00 00 f2 f2 f2 f2 00 00 00 00
  0x100039ddcb40: 00 00 00 f4 f2 f2 f2 f2 00 00 00 00 00 00 00 f4
  0x100039ddcb50: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
=>0x100039ddcb60: 00 00 00 00 f1 f1 f1 f1 00 00 00 f4 f2 f2 f2[f2]
  0x100039ddcb70: 00 00 00 f4 f2 f2 f2 f2 00 00 00 00 f3 f3 f3 f3
  0x100039ddcb80: f3 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
  0x100039ddcb90: 00 00 f1 f1 f1 f1 00 00 00 00 f3 f3 f3 f3 f3 f3
  0x100039ddcba0: f3 f3 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x100039ddcbb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable: 00
  Partially addressable: 01 02 03 04 05 06 07
  Heap left redzone: fa
  Heap right redzone: fb
  Freed heap region: fd
  Stack left redzone: f1
  Stack mid redzone: f2
  Stack right redzone: f3
  Stack partial redzone: f4
  Stack after return: f5
  Stack use after scope: f8
  Global redzone: f9
  Global init order: f6
  Poisoned by user: f7
  Container overflow: fc
  Array cookie: ac
  Intra object redzone: bb
  ASan internal: fe
==15579==ABORTING

101.0.1-144-ge27d26f

~0016087

abma (administrator)

Last edited: 2016-03-16 15:44

View 2 revisions

also:

Warning: Invalid Name detected, please contact the author of the archive to remove the Version from the Name: BlockWars-V2.2, Version: 2.2
Warning: /home/abma/.spring/maps/blockwars-v2.2.sd7: mapfile isn't set in mapinfo.lua, please set it for faster loading!

~0016089

hokomoko (developer)

Fix 4f2360d98cdeace1dabfc174fa5356d9aef4f042 committed to develop branch: Fix 0005172, repo: spring changeset id: 6832

~0016090

hokomoko (developer)

can you please verify that it is solved after https://github.com/spring/spring/commit/4f2360d98cdeace1dabfc174fa5356d9aef4f042 ?

~0016092

abma (administrator)

mine no, but idk if i hit the same bug as others.

current infolog: http://paste.springfiles.com/view/74bb6bb3

~0016093

hokomoko (developer)

I don't think it is

~0016094

Kloot (developer)

TextWrap crash looks unrelated.

I can't trigger it anymore with 4f2360 (loaded BlockWars 20 consecutive times), and had more or less converged to the same fix.

~0016095

hokomoko (developer)

cool, thanks
+Notes

+Related Changesets

-Issue History
Date Modified Username Field Change
2016-03-15 18:08 FabriceFABS New Issue
2016-03-15 18:50 FabriceFABS Note Added: 0016077
2016-03-15 18:53 Kloot Note Added: 0016078
2016-03-15 19:05 Kloot Note Added: 0016079
2016-03-16 15:41 abma Note Added: 0016086
2016-03-16 15:41 abma Target Version => 102.0
2016-03-16 15:43 abma Note Added: 0016087
2016-03-16 15:44 abma Note Edited: 0016087 View Revisions
2016-03-16 15:55 abma Severity block => crash
2016-03-16 17:12 hokomoko Changeset attached => spring develop 4f2360d9
2016-03-16 17:12 hokomoko Note Added: 0016089
2016-03-16 17:12 hokomoko Assigned To => hokomoko
2016-03-16 17:12 hokomoko Status new => resolved
2016-03-16 17:12 hokomoko Resolution open => fixed
2016-03-16 17:14 hokomoko Note Added: 0016090
2016-03-16 17:14 hokomoko Status resolved => feedback
2016-03-16 17:14 hokomoko Resolution fixed => reopened
2016-03-16 17:20 abma Note Added: 0016092
2016-03-16 17:31 hokomoko Note Added: 0016093
2016-03-16 17:43 Kloot Note Added: 0016094
2016-03-16 17:48 hokomoko Note Added: 0016095
2016-03-16 17:48 hokomoko Status feedback => resolved
2016-03-16 17:48 hokomoko Resolution reopened => fixed
+Issue History