Page MenuHome

Collada import crash
Closed, ArchivedPublic

Description

Blender 2.59 (rev.39307) Linux 32-bit

Crashes with attached COLLADA data. Randomly, you have to import it several times to see it.

With the following backtrace:

#0 0x08c611e6 in MeshImporter::assign_material_to_geom(COLLADAFW::MaterialBinding, std::map<COLLADAFW::UniqueId, Material*, std::less<COLLADAFW::UniqueId>, std::allocator<std::pair<COLLADAFW::UniqueId const, Material*> > >&, Object*, COLLADAFW::UniqueId const*, MTex**, char*, MTFace*, std::map<Material*, std::map<unsigned long, std::vector<MTex*, std::allocator<MTex*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::vector<MTex*, std::allocator<MTex*> > > > >, std::less<Material*>, std::allocator<std::pair<Material* const, std::map<unsigned long, std::vector<MTex*, std::allocator<MTex*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::vector<MTex*, std::allocator<MTex*> > > > > > > >&, int) ()
#1 0x08c61b29 in MeshImporter::create_mesh_object(COLLADAFW::Node*, COLLADAFW::InstanceBindingBase<(COLLADAFW::COLLADA_TYPE::ClassId)437>*, bool, std::map<COLLADAFW::UniqueId, Material*, std::less<COLLADAFW::UniqueId>, std::allocator<std::pair<COLLADAFW::UniqueId const, Material*> > >&, std::map<Material*, std::map<unsigned long, std::vector<MTex*, std::allocator<MTex*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::vector<MTex*, std::allocator<MTex*> > > > >, std::less<Material*>, std::allocator<std::pair<Material* const, std::map<unsigned long, std::vector<MTex*, std::allocator<MTex*> >, std::less<unsigned long>, std::allocator<std::pair<unsigned long const, std::vector<MTex*, std::allocator<MTex*> > > > > > > >&) ()
#2 0x08c39b45 in DocumentImporter::write_node(COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool) ()
#3 0x08c3a28c in DocumentImporter::write_node(COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool) ()
#4 0x08c3a28c in DocumentImporter::write_node(COLLADAFW::Node*, COLLADAFW::Node*, Scene*, Object*, bool) ()
#5 0x08c3a57f in DocumentImporter::writeLibraryNodes(COLLADAFW::LibraryNodes const*) ()
#6 0x09a80fbd in COLLADASaxFWL::PostProcessor::writeLibraryNodes() ()
#7 0x09a816f8 in COLLADASaxFWL::PostProcessor::postProcess() ()
#8 0x09a77abe in COLLADASaxFWL::Loader::loadDocument(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, COLLADAFW::IWriter*) ()
#9 0x09dca99a in COLLADAFW::Root::loadDocument(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ()
#10 0x08c373d0 in DocumentImporter::import() ()
#11 0x08c345e1 in collada_import ()
#12 0x08694a4d in ?? ()
#13 0x0869fae4 in ?? ()
#14 0x086a0622 in WM_operator_call_py ()
#15 0x08db422b in ?? ()
#16 0x09968545 in PyEval_EvalFrameEx ()
#17 0x09969b45 in PyEval_EvalCodeEx ()

Details

Type
To Do

Event Timeline

Most probably crash caused by invalid write in assign_material_to_gem function. Valgrind backtrace for it is here: http://www.pasteall.org/25520

Not sure how it's supposed to work, so assigning to Nathan.

Collada bugs are not being handled well so far,

for this reason they are all being set as \'TODO\' and linked from our wiki page.

http://wiki.blender.org/index.php/Dev:2.5/Source/Development/Todo/Import_Export#OpenCollada

This tracker item can still be updated with useful info and closed (removed from the page above) when fixed.