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

Reply via email to