I should also mention that at times we get the following message on the console before the crash occurs:
WARNING: Attachment::unlinkParent: Child <-> Parent link inconsistent. -Aron On Mon, Mar 23, 2009 at 3:36 PM, Allen Bierbaum <[email protected]> wrote: > A couple points of clarification. > > - All threads are using the same aspect > - Sync means a critical section where the data from the background > thread is connected to the scene graph that is being used in the > primordial thread > > So data is created in one thread, connected in another thread, and then used. > > -Allen > > PS. Aron is under describing how nasty this bug is and how bad it is killing > us. > > On Mon, Mar 23, 2009 at 3:31 PM, Aron Bierbaum <[email protected]> wrote: >> I have been beating my head against the wall trying to figure out a >> bug in our application and I don't know if I understand enough about >> how OpenSG works in order to find the bug. The basic idea is that our >> application creates some geometry in a background thread, and then >> syncs that geometry into the OpenSG scene graph in the primordial >> thread. Later on the geometry is removed from the graph and deleted. >> While trying to delete the object that contains the geometry I get the >> following stack trace. It appears that while trying to clear the >> geometry properties there is an invalid pointer access. Does anyone >> have any ideas and/or guidance as to what could be causing this? >> >> >> 00000000() >>> >>> OSGDrawable.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::unlinkParent(OSG::FieldContainer >>> * const pParent=0x18da6900, OSG::FieldContainer * const pChild=0x0b077370, >>> const unsigned short parentFieldId=3) Line 88 C++ >> >> OSGDrawable.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onReplace(OSG::PointerSFieldBase >> * const pSField=0x18da69a0, OSG::FieldContainer * const >> pOldObj=0x0b077370, OSG::FieldContainer * const pNewObj=0x00000000) >> Line 167 + 0x34 bytes C++ >> >> OSGDrawable.dll!OSG::PointerSFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreSet(OSG::FieldContainer >> * const pNewObj=0x00000000) Line 107 + 0x13 bytes C++ >> OSGDrawable.dll!OSG::ChildPointerSField<OSG::GeoIntegralProperty >> *,OSG::UnrecordedRefCountPolicy,1>::setValue(OSG::GeoIntegralProperty >> * const value=0x00000000) Line 110 C++ >> OSGDrawable.dll!OSG::GeometryBase::setTypes(OSG::GeoIntegralProperty >> * const value=0x00000000) Line 91 C++ >> OSGDrawable.dll!OSG::GeometryBase::resolveLinks() Line 1226 C++ >> OSGBase.dll!OSG::FieldContainer::subReferenceUnrecorded() Line 237 >> C++ >> OSGBase.dll!OSG::UnrecordedRefCountPolicy::subRef() Line 145 C++ >> >> OSGBase.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onReplace() >> Line 169 + 0x9 bytes C++ >> >> OSGBase.dll!OSG::PointerSFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreSet() >> Line 107 + 0x13 bytes C++ >> OSGBase.dll!OSG::ChildPointerSField<OSG::NodeCore >> *,OSG::UnrecordedRefCountPolicy,1>::setValue() Line 110 C++ >> OSGBase.dll!OSG::Node::resolveLinks() Line 983 C++ >> OSGBase.dll!OSG::FieldContainer::subReferenceUnrecorded() Line 237 >> C++ >> OSGBase.dll!OSG::UnrecordedRefCountPolicy::subRef() Line 145 C++ >> >> OSGBase.dll!OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>::onSub() >> Line 151 + 0x9 bytes C++ >> >> OSGBase.dll!OSG::PointerMFieldCommon<OSG::ChildAccessHandler<OSG::UnrecordedRefCountPolicy>,1>::ptrStoreClear() >> Line 319 + 0x14 bytes C++ >> OSGBase.dll!OSG::ChildPointerMField<OSG::Node >> *,OSG::UnrecordedRefCountPolicy,1>::clear() Line 1066 C++ >> OSGBase.dll!OSG::Node::resolveLinks() Line 984 C++ >> OSGBase.dll!OSG::FieldContainer::subReferenceRecorded() Line 153 >> C++ >> >> p5_dve_earth.dll!OSG::RecordedRefCountPolicy::subRef(OSG::FieldContainer >> * const objectP=0x2318fe50) Line 68 C++ >> p5_dve_earth.dll!OSG::RecordedRefCountPolicy::setRefd<OSG::Node >> *,OSG::Node *>(OSG::Node * & pTarget=0x2318fe50, OSG::Node * >> pSource=0x00000000) Line 75 + 0xb bytes C++ >> >> p5_dve_earth.dll!OSG::RefCountPtr<OSG::Node,OSG::MTRecordedRefCountPolicy>::operator=(OSG::Node >> * const objectPtr=0x00000000) Line 133 + 0xd bytes C++ >> >> p5_dve_earth.dll!OSG::CoredNodeMTRefPtr<OSG::DoubleTransform>::setNode(OSG::Node >> * const pNode=0x00000000) Line 489 C++ >> >> p5_dve_earth.dll!OSG::CoredNodeMTRefPtr<OSG::DoubleTransform>::~CoredNodeMTRefPtr<OSG::DoubleTransform>() >> Line 352 C++ >> p5_dve_earth.dll!dve::LandTile::~LandTile() Line 26 + 0x90 bytes >> C++ >> p5_dve_earth.dll!dve::LandTile::`scalar deleting destructor'() + >> 0xf bytes C++ >> >> p5_dve_earth.dll!dve::SharedObjectDeleter<dve::LandTile>::operator()(dve::LandTile >> * p=0x189b07e0) Line 88 + 0x20 bytes C++ >> p5_dve_earth.dll!boost::detail::sp_counted_impl_pd<dve::LandTile >> *,dve::SharedObjectDeleter<dve::LandTile> >::dispose() Line 145 C++ >> p5_dve_earth.dll!boost::detail::sp_counted_base::release() Line 103 >> C++ >> p5_dve_earth.dll!boost::detail::shared_count::~shared_count() Line >> 220 C++ >> >> p5_dve_earth.dll!boost::shared_ptr<dve::LandTile>::~shared_ptr<dve::LandTile>() >> + 0x3f bytes C++ >> p5_dve_earth.dll!dve::TileLayer::updateSectors(...) >> >> Thanks, >> Aron >> >> ------------------------------------------------------------------------------ >> Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are >> powering Web 2.0 with engaging, cross-platform capabilities. Quickly and >> easily build your RIAs with Flex Builder, the Eclipse(TM)based development >> software that enables intelligent coding and step-through debugging. >> Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com >> _______________________________________________ >> Opensg-users mailing list >> [email protected] >> https://lists.sourceforge.net/lists/listinfo/opensg-users >> > > ------------------------------------------------------------------------------ > Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are > powering Web 2.0 with engaging, cross-platform capabilities. Quickly and > easily build your RIAs with Flex Builder, the Eclipse(TM)based development > software that enables intelligent coding and step-through debugging. > Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com > _______________________________________________ > Opensg-users mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/opensg-users > ------------------------------------------------------------------------------ Apps built with the Adobe(R) Flex(R) framework and Flex Builder(TM) are powering Web 2.0 with engaging, cross-platform capabilities. Quickly and easily build your RIAs with Flex Builder, the Eclipse(TM)based development software that enables intelligent coding and step-through debugging. Download the free 60 day trial. http://p.sf.net/sfu/www-adobe-com _______________________________________________ Opensg-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/opensg-users
