From: Torsten D. <To...@t3...> - 2014-03-29 22:08:10
|
Hi, a while ago (two years ago or so), I was able to run FlightGear with osg multithreading mode set to AutomaticSelection on my presentation machine with five graphic cards and ten monitors attached and a dozen or so cameras configured. For some reason, that is no longer possible and I get a core dump sooner or later. I have tried to narrow those down and I get the dumps with just two configured cameras rendering to two speparate screens. If I enable --jpg-httpd the core dump occours sooner than without that option. The backtrace differs every time but always, there is Canvas code involved where the Canvas accesses the property tree. One culprit seems to be here: #10 resize (__x=..., __new_size=4, this=0xe018300) at /usr/include/c++/4.8/bits/stl_vector.h:707 #11 simgear::canvas::Element::setBoundingBox (this=0xe018250, bb=...) at /home/flightgear/fg-osg/SimGear/simgear/canvas/elements/CanvasElement.cxx:542 #12 0x0000000000dbbb5e in simgear::canvas::Path::PathDrawable::computeBound (this=0xe0187b0) at /home/flightgear/fg-osg/SimGear/simgear/canvas/elements/CanvasPath.cxx:389 And this makes sense as the code tries to _bounding_box.resize(4); where _bounding_box is declared as std::vector<SGPropertyNode_ptr> _bounding_box; I think we previously were OK with multithreaded scenegraph traversal as we never changed the property tree during the traversal. This seems to have now changed. Any ideas, how we can get around that issue? Greetings, Torsten |