After recompiling OpenSG with -DOSG_DEBUG defined for MSVS 7.0 with your patch I get the following debug output:

DEBUG: Map: 182 to 195
DEBUG: Map: 192 to 206
DEBUG: Map: 185 to 198
WARNING: FieldContainerFactory::unregisterFieldContainer:id -17891602 inconsistent with store size 207!

and the stack trace:

> OSGSystemD.dll!osg::FieldContainerPtrBase::deleteContainers() Line 89 + 0xa C++
    OSGSystemD.dll!osg::FieldContainerPtrBase::subRef()  Line 133    C++
OSGSystemD.dll!osg::subRefCP(const osg::FieldContainerPtrBase & objectP={...}) Line 66 C++ OSGSystemD.dll!osg::ClearSlot::operator()(osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> & slotPtr={...}) Line 69 + 0x9 C++ OSGSystemD.dll!std::transform(std::_Ptrit<osg::FCPtr<osg::AttachmentPtr,osg::StateChunk>,int,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &> _First={...}, std::_Ptrit<osg::FCPtr<osg::AttachmentPtr,osg::StateChunk>,int,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &> _Last={...}, std::_Ptrit<osg::FCPtr<osg::AttachmentPtr,osg::StateChunk>,int,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> *,osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> &> _Dest={...}, osg::ClearSlot _Func={...}) Line 385 + 0x11 C++
    OSGSystemD.dll!osg::State::clearChunks()  Line 433 + 0x3a    C++
    OSGSystemD.dll!osg::ChunkMaterial::rebuildState()  Line 305    C++
OSGSystemD.dll!osg::Material::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 161 + 0xd C++ OSGSystemD.dll!osg::ChunkMaterial::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 134 C++ OSGSystemD.dll!osg::FieldContainerPtr::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 552 + 0x2d C++ OSGSystemD.dll!osg::changedCP(const osg::FieldContainerPtr & objectP={...}, unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 118 C++ OSGSystemD.dll!osg::RemoteAspect::receiveSync(osg::Connection & connection={...}, bool applyToChangelist=false) Line 392 + 0x1c C++
    RemoteAspect.exe!client_idle()  Line 360 + 0x16    C++
    RemoteAspect.exe!display()  Line 385    C++
glut32.dll!014f4ac9() glut32.dll!014f490f() RemoteAspect.exe!client_start(int argc=1, char * * argv=0x003d3188) Line 342 + 0x8 C++ RemoteAspect.exe!main(int argc=1, char * * argv=0x003d3188) Line 528 + 0xd C++
    RemoteAspect.exe!mainCRTStartup()  Line 400 + 0xe    C
kernel32.dll!7c816d4f()
Any help that you could give would be greatly appreciated.

Thanks,
Aron

Dirk Reiners wrote:

        Hi Aron,

On Wed, 2005-06-08 at 14:30 -0500, Aron Bierbaum wrote:
I am fairly new to OpenSG, especially to RemoteAspects. I am getting the following error when when trying to sync a remote aspect with another machine. I am fairly sure that this stack trace is trying to set a FieldContainer to NULL that is already invalid. My question is, what could be causing this since the remote machine crashes but the sending node does not. I could be completely off with this too.

did you solve this problem or is it still active? It's a little weird,
at this point it shouldn't be able to crash.

Could you add this little patch, and see if it triggers? (Note: I
haven't tried this patch yet, recompile still running, but it should be
safe.)

--- Source/System/FieldContainer/Impl/OSGFieldContainerFactoryImpl.inl
14 Mar 2003 17:23:56 -0000      1.4
+++ Source/System/FieldContainer/Impl/OSGFieldContainerFactoryImpl.inl
20 Jun 2005 17:41:56 -0000
@@ -132,6 +132,19 @@ void FieldContainerFactory::unregisterFi

    if(_pFieldContainerStore != NULL)
    {
+#ifdef OSG_DEBUG
+        if (pFieldContainer.getFieldContainerId() < 0 ||
+            pFieldContainer.getFieldContainerId() >=
+                    (*_pFieldContainerStore).size())
+        {
+            FWARNING(("FieldContainerFactory::unregisterFieldContainer:"
+                "id %d inconsistent with store size %d!\n",
+                pFieldContainer.getFieldContainerId(),
+                (*_pFieldContainerStore).size() ));
+        }
+        else
+#endif
+
        (*_pFieldContainerStore)[pFieldContainer.getFieldContainerId()] =
            NullFC;
    }

Yours

        Dirk


Thanks,
Aron

OSGSystemD.dll!osg::FieldContainerPtrBase::setNull() Line 411 + 0x3 C++ OSGSystemD.dll!osg::FieldContainerPtr::operator=(const osg::NullFieldContainerPtr & __formal={...}) Line 525 C++ OSGSystemD.dll!osg::FieldContainerFactory::unregisterFieldContainer(const osg::FieldContainerPtr & pFieldContainer={...}) Line 139 C++ OSGSystemD.dll!osg::FieldContainerPtrBase::deleteContainers() Line 87 C++
    OSGSystemD.dll!osg::FieldContainerPtrBase::subRef()  Line 133    C++
OSGSystemD.dll!osg::subRefCP(const osg::FieldContainerPtrBase & objectP={...}) Line 66 C++ OSGSystemD.dll!osg::ClearSlot::operator()(osg::FCPtr<osg::AttachmentPtr,osg::StateChunk> & slotPtr={...}) Line 69 + 0x9 C++
    OSGSystemD.dll!std::transform(...)  Line 385 + 0x11    C++
    OSGSystemD.dll!osg::State::clearChunks()  Line 433 + 0x3a    C++
    OSGSystemD.dll!osg::ChunkMaterial::rebuildState()  Line 305    C++
OSGSystemD.dll!osg::Material::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 161 + 0xd C++ OSGSystemD.dll!osg::ChunkMaterial::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 134 C++ OSGSystemD.dll!osg::FieldContainerPtr::changed(unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 552 + 0x2d C++ OSGSystemD.dll!osg::changedCP(const osg::FieldContainerPtr & objectP={...}, unsigned __int64 whichField=18446744073709551615, unsigned int origin=1) Line 118 C++ OSGSystemD.dll!osg::RemoteAspect::receiveSync(osg::Connection & connection={...}, bool applyToChangelist=false) Line 392 + 0x1c C++
    RemoteAspect.exe!client_idle()  Line 350 + 0x16    C++
    RemoteAspect.exe!display()  Line 375    C++
glut32.dll!01454ac9() glut32.dll!0145490f() RemoteAspect.exe!client_start(int argc=1, char * * argv=0x003d2a58) Line 340 + 0x8 C++ RemoteAspect.exe!main(int argc=1, char * * argv=0x003d2a58) Line 517 + 0xd C++
    RemoteAspect.exe!mainCRTStartup()  Line 400 + 0xe    C
kernel32.dll!7c816d4f()


-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.  How far can you shotput
a projector? How fast can you ride your desk chair down the office luge track?
If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users



-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Opensg-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to