[ 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