Hi Vincent,

This may be an issue with multiple computeBounds() running in a
parallel.  In the SVN version and 2.5.0/2.5.1 there is an call to
sceneData->getBound() that does the initialization of the bounding
volume while the code is still single threaded - something that should
have been done for the whole 2.x series, but alas it was missed until
the submission on the 12th May.

So could you try SVN or 2.5.1 and see how you get on.

Robert.

On Wed, Jun 4, 2008 at 10:15 AM, Vincent Bourdier
<[EMAIL PROTECTED]> wrote:
> Hi All,
>
> Running my application, I get a random crash I cannot identify.
> The error is : "vector<bool> iterator not dereferencable"
>
> Bu I've no vector<bool> in my code, So I gess it is in osg where the crash
> append.
> Maybe I make something wrong in my code, but I've no idea where or what the
> bug can be...
>
> The application uses a lot of OpenThreads, that modify the scenegraph, but
> they looks synchronized now...
>
> Any idea ?
>
> Thank you.
>
> Regards,
>    Vincent.
>
> Note :
>
>> Configuration : WinXP, osg 2.2 & 2.4
>
> Stack trace on crash :
>
>> >    msvcp80d.dll!std::_Debug_message(const wchar_t * message=0x103ed770,
>> > const wchar_t * file=0x1039b478, unsigned int line=1463)  Ligne 23    C++
>>
>> osg35-osgd.dll!std::_Vb_reference<std::vector<bool,std::allocator<bool> >
>> >::_Getptr()  Ligne 1463 + 0x17 octets    C++
>>
>> osg35-osgd.dll!std::_Vb_reference<std::vector<bool,std::allocator<bool> >
>> >::operator bool()  Ligne 1453 + 0x8 octets    C++
>>
>> osg35-osgd.dll!std::_Vb_const_iterator<std::vector<bool,std::allocator<bool>
>> > >::operator*()  Ligne 1523 + 0x24 octets    C++
>>      osg35-osgd.dll!std::vector<bool,std::allocator<bool>
>> >::operator[](unsigned int _Off=1)  Ligne 2010 + 0x41 octets    C++
>>      osg35-osgd.dll!osg::Switch::computeBound()  Ligne 198 + 0x12
>> octets    C++
>>      osg35-osgd.dll!osg::Node::getBound()  Ligne 268 + 0x13 octets    C++
>>      osg35-osgd.dll!osg::Group::computeBound()  Ligne 357 + 0x16 octets
>> C++
>>      osg35-osgd.dll!osg::Node::getBound()  Ligne 268 + 0x13 octets    C++
>>      osg35-osgd.dll!osg::Group::computeBound()  Ligne 357 + 0x16 octets
>> C++
>>      osg35-osgd.dll!osg::Node::getBound()  Ligne 268 + 0x13 octets    C++
>>      osg35-osgd.dll!osg::Node::isCullingActive()  Ligne 191 + 0x39
>> octets    C++
>>      osg35-osgd.dll!osg::CullStack::isCulled(const osg::Node &
>> node={...})  Ligne 109 + 0x8 octets    C++
>>      osg35-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group &
>> node={...})  Ligne 969 + 0x12 octets    C++
>>      osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne
>> 38 + 0x41 octets    C++
>>      osg35-osgd.dll!osg::Group::traverse(osg::NodeVisitor & nv={...})
>> Ligne 62 + 0x25 octets    C++
>>      osg35-osgd.dll!osg::NodeVisitor::traverse(osg::Node & node={...})
>> Ligne 181 + 0x1c octets    C++
>>
>> osg35-osgUtild.dll!osgUtil::CullVisitor::handle_cull_callbacks_and_traverse(osg::Node
>> & node={...})  Ligne 277 + 0xf octets    C++
>>      osg35-osgUtild.dll!osgUtil::CullVisitor::apply(osg::Group &
>> node={...})  Ligne 981    C++
>>      osg35-osgd.dll!osg::Group::accept(osg::NodeVisitor & nv={...})  Ligne
>> 38 + 0x41 octets    C++
>>      osg35-osgUtild.dll!osgUtil::SceneView::cullStage(const osg::Matrixd &
>> projection={...}, const osg::Matrixd & modelview={...}, osgUtil::CullVisitor
>> * cullVisitor=0x01fb46b8, osgUtil::StateGraph * rendergraph=0x01fb4220,
>> osgUtil::RenderStage * renderStage=0x01fb42b8)  Ligne 821 + 0x42 octets
>> C++
>>      osg35-osgUtild.dll!osgUtil::SceneView::cull()  Ligne 687 + 0x4e
>> octets    C++
>>      osg35-osgViewerd.dll!osgViewer::Renderer::cull()  Ligne 285 + 0xf
>> octets    C++
>>      osg35-osgViewerd.dll!osgViewer::ViewerBase::renderingTraversals()
>> Ligne 643 + 0x15 octets    C++
>>      osg35-osgViewerd.dll!osgViewer::ViewerBase::frame(double
>> simulationTime=1.7976931348623157e+308)  Ligne 583 + 0xf octets    C++
>>      3DEM.exe!EM_Modules::run()  Ligne 302    C++
>>      3DEM.exe!EM_Modules::init(HWND__ * hWnd=0x00000000)  Ligne 264 + 0xb
>> octets    C++
>>      3DEM.exe!main(int argc=1, char * * argv=0x01f32940)  Ligne 99 + 0xd
>> octets    C++
>>      3DEM.exe!__tmainCRTStartup()  Ligne 586 + 0x19 octets    C
>>      3DEM.exe!mainCRTStartup()  Ligne 403    C
>>      kernel32.dll!7c816fd7()
>>      [Les frames ci-dessous sont peut-être incorrects et/ou manquants,
>> aucun symbole chargé pour kernel32.dll]
>
>
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to