[ playerstage-Bugs-3039076 ] Subscribing to some drivers causes FLTK/OpenGL badness

"SourceForge.net" <[email protected]>
Newsgroups gmane.science.robotics.playerstage
Message-ID <[email protected]>
Bugs item #3039076, was opened at 2010-08-03 23:11
Message generated for change (Tracker Item Submitted) made by nobody
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=433164&aid=3039076&group_id=42445

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: stage
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Nobody/Anonymous (nobody)
Assigned to: Richard Vaughan (rtv)
Summary: Subscribing to some drivers causes FLTK/OpenGL badness

Initial Comment:
The problem is that in a Stage simulation subscribing to specific
drivers (Wavefront and ND specifically) causes a whole lot of pain,
either X errors, lockups or segfaults.  The exact symptoms vary between
systems so I'll go through the permutations one at a time.

I first saw the problem on Ubuntu 10.04 with the fglrx graphics driver
where subscribing to a Wavefront device (which was in turn wired to the
Stage position2d driver) caused a Segfault.  Using gdb I captured a
backtrace of this Segfault and saw that the call chain ended up inside
the fglrx binary (full backtrace attached as
bt-10.04-fglrx-sigsegv.log).  That backtrace showed the line which
caused the offending call in to the graphics driver was canvas.cc::787,
I commented that line out and instead of a segfault the program locked
solid.  The backtrace of the lockup is attached as
bt-10.04-fglrx-lockup.log, it can be seen to be a mutex deadlock.  I
therefore blamed the fglrx driver and installed 10.04 in a VirtualBox VM
which of course uses a different, non-accelerated, driver.

In that VM it no longer segfaulted but Stage froze solid (with the
canvas in mid-render) and the screen was bombarded with errors from
within X.  Once again using GDB I got a backtrace of the site of these
errors, attached as bt-10.04-vb.log with a sample of the player/stage
output attached as output-10.04-vb.log.  Commenting out canvas.cc::787
as above lead to the same deadlock but of course coming from a different
graphics driver.

Wondering why there were so few reports of this and noting that all the
reports I could see were on Ubuntu 10.04 I installed Ubuntu 9.04 in the
VM instead.  This largely worked, the failing Wavefront driver came good
when connected straight to the Stage position2d device.  When it was
connected through 'nd' though the problem came back intermittently.  50%
of the time the program would run fine and the other 50% of the time it
would throw the same kinds of X errors as on 10.04.  This output and a
backtrace of the source of the output are attached as output-9.04-vb.log
and bt-9.04-vb.log respectively.  Worth noting here is that if those
errors aren't thrown immediately upon subscription they never will be,
it either works or not.  To me this indicates some kind of race.

It seems odd to me that this only happens if I've got the Wavefront or
ND devices subscribed to, I don't know in what way they're supposed to
be changing the display but what ever this method is could be the source
of the problem.

----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=433164&aid=3039076&group_id=42445

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.