On Mon, Aug 05, 2013 at 04:34:17PM +0000, Robert Osfield wrote:
> HI David,
> 
> I have my brain focused on some big topics today without much scope
> with thinking other complicated areas so won't dive into this one
> right now.
> 
> I recall a discussion about thread safety of Notify from last year
> with a user who was heavily using notification in a multi-threaded
> environement and found issues like yourself, I don't know if they are
> the same though,I don't recall the details.  He may of submitted
> changes or proposed some, but if they had been straight forward and
> without a performance compromise I would have merged them.  It might
> be searching the archives on osg-users and osg-submissions to look at
> the discussions, it might help.  I did merge some changes w.r.t
> threading though:

Date: Nov 28 06:08:02 2011
From: George Bekos <bekos...@live.com>
Subject: [osg-users] Custom osg::NotifyHandler problems and multi-threading

It sounded like the same issue, no changes were posted on the thread.
It sounded to me to show an example that reproduced it on Linux which
is what I posted.  For now we'll just make sure are logging levels are
set low so we don't have much chance of hitting it.

> r13094 | robert | 2012-06-22 16:21:08 +0000 (Fri, 22 Jun 2012) | 2 lines
> 
> Restructed the way that the global notify variables are initialized to
> avoid problems with multi-threaded initialization of these variables.
> 
> This is at start up though.  As for the assumptions that cerr and cout
> are thread safe, normally I'd stick with this assumption, but I'm not
> sure it's always the case across all compilers etc.
> 
> Robert.
> 
> On 5 August 2013 16:10, David Fries <da...@fries.net> wrote:
> > Hi Robert,
> >
> > I tested against the svn 3.2 and trunk branches today on Linux and get
> > the same results with the test program I posted.
> >
> > ./ThreadedNotify 48 10000000 2 2
> > Segmentation fault
> > ./ThreadedNotify 48 10000000 2 2
> > *** glibc detected *** ./ThreadedNotify: free(): invalid pointer: 
> > 0x0000000000d81500 ***
> > Segmentation fault
> > ./ThreadedNotify 48 10000000 2 2
> > *** glibc detected *** ./ThreadedNotify: double free or corruption (!prev): 
> > 0x000000000189b500 ***
> > Segmentation fault
> >
> > On Sun, Aug 04, 2013 at 11:48:56AM +0000, Robert Osfield wrote:
> >> Hi David,
> >>
> >> There were various changes to osg::Notify during the 3.1.x dev cycle.
> >> Could you try out OSG-3.2 and see how you get on.
> >>
> >> Robert.
> >>
> >> On 2 August 2013 22:54, David Fries <da...@fries.net> wrote:
> >> > I spent a few days tracking down a crash I was having generally when a
> >> > terrapage terrain was paging.  This is using OSG 3.1, when I finally
> >> > caught the corruption I found that both the DatabasePager thread and
> >> > the Draw thread were calling OSG_NOTIFY.
> >> >
> >> > I wrote up a test that does little more than start up a bunch of
> >> > threads and print messages and found it too crashes.  I am testing on
> >> > both Linux x86-64 gcc 4.7.2, and Windows 7 Visual Studio 10 and both
> >> > crash, though it crashes much quicker on Windows.
> >> >
> >> > It will crash pretty quickly with the default (no arguments) on Windows.
> >> >
> >> > The following arguments are working for me to crash on Linux on a 12
> >> > core (24 with hyperthreading), x86-64 system.
> >> > ./ThreadedNotify 48 10000000 2 2
> >> >
> >> > It has been pointed out that cout/cerr are thread safe, so it should
> >> > be possible to make osg::notify thread safe as well.  In this program
> >> > it helps when I reduce the notification level, at least with the low
> >> > number of messages being printed it seems to be unlikely.
> >> >
> >> > --
> >> > David Fries <da...@fries.net>    PGP pub CB1EE8F0
> >> > http://fries.net/~david/
> >> >
> >> > _______________________________________________
> >> > 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
> >
> > --
> > David Fries <da...@fries.net>    PGP pub CB1EE8F0
> > http://fries.net/~david/
> > _______________________________________________
> > 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

-- 
David Fries <da...@fries.net>    PGP pub CB1EE8F0
http://fries.net/~david/
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to