2025-07-21 16:58 CEST

View Issue Details Jump to Notes ]
IDProjectCategoryView StatusLast Update
0002708Spring engineGeneralpublic2013-05-06 00:39
Reporterabma 
Assigned TojK 
PrioritynormalSeveritymajorReproducibilityalways
StatusresolvedResolutionfixed 
Product Version91.0.1+git 
Target VersionFixed in Version 
Summary0002708: SIGFPE in assimp/include/aiVector3D.inl:103
Description(gdb) bt full
#0 0x0000000000dfa0e7 in aiVector3D::operator/= (this=0x7fffffffce00, f=0)
    at /home/abma/dev/spring/master/rts/lib/assimp/include/aiVector3D.inl:103
No locals.
#1 0x000000000122f9e4 in aiVector3D::Normalize (this=0x7fffffffce00)
    at /home/abma/dev/spring/master/rts/lib/assimp/code/../include/aiVector3D.inl:87
No locals.
#2 0x000000000123997d in Assimp::CalcTangentsProcess::ProcessMesh (this=0x7fffe09c57c0,
    pMesh=0x7fffe1052660, meshIndex=0)
    at /home/abma/dev/spring/master/rts/lib/assimp/code/CalcTangentsProcess.cpp:201
        p = 198
        localTangent = {x = 0, y = 0, z = 0}
        localBitangent = {x = 0, y = 0, z = 0}
        b = 0
        p2 = 200
        w = {x = -1.90734863e-06, y = -0.70567131, z = -0.641520023}
        sx = 0
        dirCorrection = 1
        tangent = {x = -0, y = -0, z = -0}
        p0 = 198
        sy = 0
        tx = 0
        bitangent = {x = -0, y = -0, z = -0}
        face = @0x7fffe0e07998
        p1 = 199
---Type <return> to continue, or q <return> to quit---
        v = {x = 9.53674316e-07, y = 0, z = 3.84911966}
        ty = 0
        a = 66
        angleEpsilon = 0.999899983
        qnan = nan(0x400000)
        meshPos = 0x7fffe1196f20
        vertexFinder = 0x1215dc5
        _vertexFinder = {mPlaneNormal = {x = -7.80073417e+19, y = 4.59163468e-41,
            z = -nan(0x7fcd30)},
          mPositions = {<std::_Vector_base<Assimp::SpatialSort::Entry, std::allocator<Assimp::SpatialSort::Entry> >> = {
              _M_impl = {<std::allocator<Assimp::SpatialSort::Entry>> = {<__gnu_cxx::new_allocator<Assimp::SpatialSort::Entry>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffe0edba40,
                _M_finish = 0x1231001, _M_end_of_storage = 0x7fffe0875238}}, <No data fields>}}
        closeVertices = {<std::_Vector_base<unsigned int, std::allocator<unsigned int> >> = {
            _M_impl = {<std::allocator<unsigned int>> = {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffffffcd90, _M_finish = 0x0,
              _M_end_of_storage = 0x7fffe0875238}}, <No data fields>}
        vertexDone = {<std::_Bvector_base<std::allocator<bool> >> = {
            _M_impl = {<std::allocator<unsigned long>> = {<__gnu_cxx::new_allocator<unsigned long>> = {<No data fields>}, <No data fields>},
              _M_start = {<std::_Bit_iterator_base> = {<std::iterator<std::random_access_iterator_tag, bool, long, bool*, bool&>> = {<No data fields>}, _M_p = 0x7fffe0409680,
                  _M_offset = 0}, <No data fields>},
---Type <return> to continue, or q <return> to quit---
              _M_finish = {<std::_Bit_iterator_base> = {<std::iterator<std::random_access_iterator_tag, bool, long, bool*, bool&>> = {<No data fields>}, _M_p = 0x7fffe04096e0,
                  _M_offset = 60}, <No data fields>},
              _M_end_of_storage = 0x7fffe04096e8}}, <No data fields>}
        meshNorm = 0x7fffe119a2f0
        meshTex = 0x7fffe119d6c0
        meshTang = 0x7fffe103ff90
        meshBitang = 0x7fffe0ffca30
        posEpsilon = 4.59163468e-41
        verticesFound = {<std::_Vector_base<unsigned int, std::allocator<unsigned int> >> = {
            _M_impl = {<std::allocator<unsigned int>> = {<__gnu_cxx::new_allocator<unsigned int>> = {<No data fields>}, <No data fields>}, _M_start = 0x7fffe0875238, _M_finish = 0x7fffe0875230,
              _M_end_of_storage = 0x7fffe0edba40}}, <No data fields>}
        fLimit = 2.13983324e+12
0000003 0x00000000012390de in Assimp::CalcTangentsProcess::Execute (this=0x7fffe09c57c0,
    pScene=0x7fffe0ca05e0)
    at /home/abma/dev/spring/master/rts/lib/assimp/code/CalcTangentsProcess.cpp:96
        a = 0
        bHas = false
0000004 0x000000000122a407 in Assimp::BaseProcess::ExecuteOnScene (this=0x7fffe09c57c0,
    pImp=0x7fffffffd3d0) at /home/abma/dev/spring/master/rts/lib/assimp/code/BaseProcess.cpp:80
        __PRETTY_FUNCTION__ = "void Assimp::BaseProcess::ExecuteOnScene(Assimp::Importer*)"
0000005 0x000000000121130a in Assimp::Importer::ApplyPostProcessing (this=0x7fffffffd3d0,
    pFlags=426203) at /home/abma/dev/spring/master/rts/lib/assimp/code/Importer.cpp:768
---Type <return> to continue, or q <return> to quit---
        process = 0x7fffe09c57c0
        a = 18
        profiler = {px = 0x0}
        __PRETTY_FUNCTION__ = "const aiScene* Assimp::Importer::ApplyPostProcessing(unsigned int)"
#6 0x0000000001210e0d in Assimp::Importer::ReadFile (this=0x7fffffffd3d0,
    _pFile=0x7fffe092b218 "objects3d/blender/corraid.blend", pFlags=426203)
    at /home/abma/dev/spring/master/rts/lib/assimp/code/Importer.cpp:678
        pre = {scene = 0x7fffe0ca05e0}
        profiler = {px = 0x0}
        imp = 0x7fffe0e82fb0
        pFile = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0d06118 "objects3d/blender/corraid.blend"}}
#7 0x0000000000dfa60c in Assimp::Importer::ReadFile (this=0x7fffffffd3d0, pFile=...,
    pFlags=426203) at /home/abma/dev/spring/master/rts/lib/assimp/include/assimp.hpp:597
No locals.
#8 0x0000000000df54f0 in CAssParser::Load (this=0x2b08010, modelFilePath=...)
    at /home/abma/dev/spring/master/rts/Rendering/Models/AssParser.cpp:151
        modelPath = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0884b88 "objects3d/blender"}}

        modelFileNameNoPath = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0b675e8 "corraid.blend"}}
---Type <return> to continue, or q <return> to quit---
        modelName = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe07f2078 "corraid"}}
        metaTable = @0x7fffffffd2c0
        importer = {pimpl = 0x7fffe0894760}
        maxIndices = 16777215
        scene = 0xdffb98
        metaFileName = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe04391a8 "objects3d/blender/corraid.blend.lua"}}
        metaFile = 0x7fffe0871b30
        model = 0x32d1418
        modelExt = {static npos = <optimized out>,
          _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0930878 ".blend"}}
        metaFileParser = {fileName = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe04391a8 "objects3d/blender/corraid.blend.lua"}},
          fileModes = {static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0440b48 "Mb"}}, textChunk = {
            static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff5320598 ""}}, accessModes = {
---Type <return> to continue, or q <return> to quit---
            static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe07f26b8 "Mmb"}}, valid = true, initDepth = -1,
          L = 0x7fffe0cc1390, tables = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<LuaTable*> >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<LuaTable*> >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<LuaTable*, LuaTable*, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x7fffe0b9c400,
                  _M_left = 0x7fffe0b9c400, _M_right = 0x7fffe0b9c400}, _M_node_count = 1}}},
          rootRef = 1, currentRef = 1, lowerKeys = true, lowerCppKeys = true, errorLog = {
            static npos = <optimized out>,
            _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff5320598 ""}}, accessedFiles = {_M_t = {
              _M_impl = {<std::allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<__gnu_cxx::new_allocator<std::_Rb_tree_node<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >> = {<No data fields>}, <No data fields>},
                _M_key_compare = {<std::binary_function<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool>> = {<No data fields>}, <No data fields>}, _M_header = {_M_color = std::_S_red, _M_parent = 0x0,
                  _M_left = 0x7fffffffd290, _M_right = 0x7fffffffd290}, _M_node_count = 0}}},




          static currentParser = 0x0}
        severity = 15
        maxVertices = 2147483647
---Type <return> to continue, or q <return> to quit---
#9 0x0000000000dfe1be in C3DModelLoader::Load3DModel (this=0x32d13e0, name=..., centerOffset=...)
    at /home/abma/dev/spring/master/rts/Rendering/Models/IModelParser.cpp:153
        p = 0x2b08010
        model = 0x0

        root = 0x0
        ci = {_M_node = 0x32d13e8}
        fileExt = @0x7fffffffd670
        pi = {_M_node = 0x32f2740}
0000010 0x000000000100f5a5 in UnitDef::LoadModel (this=0x2aef370)
    at /home/abma/dev/spring/master/rts/Sim/Units/UnitDef.cpp:754
No locals.
#11 0x0000000000ff18c0 in CUnit::PreInit (this=0x7fffe08730b0, uDef=0x2aef370, uTeam=0, facing=0,
    position=..., build=false) at /home/abma/dev/spring/master/rts/Sim/Units/Unit.cpp:448
No locals.
0000012 0x0000000001024d75 in CUnitLoader::LoadUnit (this=0x32d12c0, ud=0x2aef370, pos=..., team=0,
    build=false, facing=0, builder=0x0)
    at /home/abma/dev/spring/master/rts/Sim/Units/UnitLoader.cpp:115
        unit = 0x7fffe08730b0
        myScopedTimerFromMakro = {<BasicTimer> = {<boost::noncopyable_::noncopyable> = {<No data fields>}, name = {static npos = <optimized out>,
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0871b88 "UnitLoader::LoadUnit"}}, starttime = 13235},
          autoShowGraph = false}
0000013 0x000000000102663f in CUnitLoader::GiveUnits (this=0x32d12c0, objectName=..., pos=...,
---Type <return> to continue, or q <return> to quit---
    amount=1, team=0, featureAllyTeam=-1)
    at /home/abma/dev/spring/master/rts/Sim/Units/UnitLoader.cpp:409
        px = 980
        pz = 881
        unitPos = {static binder = {class_ = 0x1c54e80, base = 0x0, flags = creg::CF_None,
            memberRegistrator = 0x1bf0280, name = 0x163a2ea "float3", size = 12,
            constructor = 0x10cd90e <float3::_ConstructInstance(void*)>,
            destructor = 0x10cd93a <float3::_DestructInstance(void*)>, nextBinder = 0x1bf0340},

          static memberRegistrator = 0x1bf0310, static CMP_EPS = 9.99999975e-05,
          static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 2047, static maxzpos = 2047,
          x = 980, y = 193.4375, z = 881}
        unit = 0x7fffffffda78
        x = 0
        z = 0
        xsize = 2
        zsize = 2
        squareSize = 1
        squarePos = {static binder = {class_ = 0x1c54e80, base = 0x0, flags = creg::CF_None,
            memberRegistrator = 0x1bf0280, name = 0x163a2ea "float3", size = 12,
            constructor = 0x10cd90e <float3::_ConstructInstance(void*)>,
            destructor = 0x10cd93a <float3::_DestructInstance(void*)>, nextBinder = 0x1bf0340},
          static memberRegistrator = 0x1bf0310, static CMP_EPS = 9.99999975e-05,
          static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 2047, static maxzpos = 2047,
          x = 980, y = 194, z = 881}
---Type <return> to continue, or q <return> to quit---
        total = 1
        numRequestedUnits = 1
        currentNumUnits = 0
        unitDef = 0x2aef370
        featureDef = 0x0




        receivingTeam = 0x245dd60
        __FUNCTION__ = "GiveUnits"
0000014 0x0000000001025fd6 in CUnitLoader::ParseAndExecuteGiveUnitsCommand (this=0x32d12c0, args=...,
    team=0) at /home/abma/dev/spring/master/rts/Sim/Units/UnitLoader.cpp:326
        __FUNCTION__ = "ParseAndExecuteGiveUnitsCommand"
        amount = 1
        teamArgIdx = -1
        featureAllyTeam = -1
        objectName = @0x7fffe07bd7e0
        pos = {static binder = {class_ = 0x1c54e80, base = 0x0, flags = creg::CF_None,
            memberRegistrator = 0x1bf0280, name = 0x163a2ea "float3", size = 12,
            constructor = 0x10cd90e <float3::_ConstructInstance(void*)>,
            destructor = 0x10cd93a <float3::_DestructInstance(void*)>, nextBinder = 0x1bf0340},
          static memberRegistrator = 0x1bf0310, static CMP_EPS = 9.99999975e-05,
          static NORMALIZE_EPS = 9.99999996e-13, static maxxpos = 2047, static maxzpos = 2047,
          x = 980, y = 194, z = 881}
        amountArgIdx = -1
#15 0x0000000000b4f984 in (anonymous namespace)::GiveActionExecutor::Execute (this=0x3be3280,
    action=...) at /home/abma/dev/spring/master/rts/Game/SyncedGameCommands.cpp:126
---Type <return> to continue, or q <return> to quit---
        parsedArgs = @0x7fffffffdac0
#16 0x0000000000aade40 in IActionExecutor<SyncedAction, true>::ExecuteAction (this=0x3be3280,
    action=...) at /home/abma/dev/spring/master/rts/Game/IActionExecutor.h:119
No locals.
#17 0x0000000000aa8b8c in CGame::ActionReceived (this=0x2740300, action=..., playerID=0)
    at /home/abma/dev/spring/master/rts/Game/Game.cpp:2247
        syncedAction = {<IAction> = {_vptr.IAction = 0x15ad0b0, action = @0x7fffffffdda0},
          playerID = 0}
        executor = 0x3be3280
#18 0x0000000000b2579d in CGame::ClientReadNet (this=0x2740300)
    at /home/abma/dev/spring/master/rts/Game/NetCommands.cpp:975
        msg = {action = {command = {static npos = <optimized out>,
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x7fffe000cae8 "give"}}, extra = {
              static npos = <optimized out>,
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7fffe0444378 "blendtank @980,194,881"}}, rawline = {
              static npos = <optimized out>,
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>},
_M_p = 0x7ffff5320598 ""}}, boundWith = {
              static npos = <optimized out>,
              _M_dataplus = {<std::allocator<char>> = {<__gnu_cxx::new_allocator<char>> = {<No data fields>}, <No data fields>}, _M_p = 0x7ffff5320598 ""}}}, playerID = 0}
        inbuf = 0x7fffe0872970 "6#"
---Type <return> to continue, or q <return> to quit---
        dataLength = 35
        packetCode = 54 '6'
        packet = {px = 0x7fffe03fce80, pn = {pi_ = 0x7fffe0406ac0}}
        procstarttime = 13235
        __PRETTY_FUNCTION__ = "void CGame::ClientReadNet()"
#19 0x0000000000aa163f in CGame::Update (this=0x2740300)
    at /home/abma/dev/spring/master/rts/Game/Game.cpp:885
        timeNow = 13235
        difTime = 17
        dif = 0.0170000009
0000020 0x00000000010b0bf5 in SpringApp::UpdateSim (this=0x7fffffffe5a0, ac=0x2740300)
    at /home/abma/dev/spring/master/rts/System/SpringApp.cpp:987
        ret = false
#21 0x00000000010b0c69 in SpringApp::Update (this=0x7fffffffe5a0)
    at /home/abma/dev/spring/master/rts/System/SpringApp.cpp:1062
        ret = 1
#22 0x00000000010b0ed7 in SpringApp::Run (this=0x7fffffffe5a0, argc=1, argv=0x7fffffffe768)
    at /home/abma/dev/spring/master/rts/System/SpringApp.cpp:1166
No locals.
#23 0x000000000108d563 in MainFunc (argc=1, argv=0x7fffffffe768, ret=0x7fffffffe64c)
    at /home/abma/dev/spring/master/rts/System/Main.cpp:51
        app = {cmdline = 0x1c4ffb0, lastRequiredDraw = 165, static ogc = 0x0}
0000024 0x000000000108d7f6 in Run (argc=1, argv=0x7fffffffe768)
    at /home/abma/dev/spring/master/rts/System/Main.cpp:62
---Type <return> to continue, or q <return> to quit---
        ret = -1
        err = 0x7ffff480dc48
#25 0x000000000108d88f in main (argc=1, argv=0x7fffffffe768)
    at /home/abma/dev/spring/master/rts/System/Main.cpp:92
No locals.
Additional Informationto test, compile spring with SIGNAL_NAN=TRUE, load assimp-test mod:

http://www.warriorhut.org/spring/projects/assimp/AssimpTest.sd7

and type
/cheat
/give blendtank
TagsNo tags attached.
Checked infolog.txt for Errors
Attached Files

-Relationships
related to 0002617resolvedhokomoko (master) blender assimp import broken 
+Relationships

-Notes

~0007516

abma (administrator)

what to do with assimp releated bugs like this one?

~0007517

Kloot (developer)

imo: write an as-minimalistic-as-possible patch/workaround (or failing that, disable the crashing format(s) entirely in the loader), and strongly advice the assimp developers to test their code more.

~0007592

spliff (reporter)

Blender support is very alpha quality in the assimp version used by spring. At the time blender support was less than a month old and patches were being added to assimp almost daily. Do you get the error with other formats? If not the only real solution to this is to let blender support mature and pull in a new version of assimp or we can disable calculating tangents in the assimp post process options.

~0007593

abma (administrator)

Last edited: 2011-11-13 02:05

i follow the assimp development, but they made no fixes to blender. last merge with assimp was about 3 months ago: https://github.com/spring/spring/commits/02d5469ebf86e46c1643a77eb8ad831aba516ed6 the assimp repo is a bit newer but it contains no useful fixes, so i didn't merge into spring... ( https://github.com/spring/assimp )

only thing they did is, they increased priority for my bug report, see also: https://sourceforge.net/tracker/?func=detail&aid=3385430&group_id=226462&atid=1067632

~0010650

jK (developer)

deactivated SigNaNs in Assimp for now
+Notes

-Issue History
Date Modified Username Field Change
2011-11-06 20:28 abma New Issue
2011-11-06 20:29 abma Note Added: 0007516
2011-11-06 21:11 Kloot Note Added: 0007517
2011-11-13 01:07 spliff Note Added: 0007592
2011-11-13 01:50 abma Relationship added related to 0002617
2011-11-13 01:59 abma Note Added: 0007593
2011-11-13 02:04 abma Note Edited: 0007593
2011-11-13 02:05 abma Note Edited: 0007593
2012-09-03 08:51 abma Product Version 83.0 => 91.0.1+git
2013-05-06 00:39 jK Note Added: 0010650
2013-05-06 00:39 jK Status new => resolved
2013-05-06 00:39 jK Resolution open => fixed
2013-05-06 00:39 jK Assigned To => jK
+Issue History