The rgl package currently crashes R when running under Xvfb (the "virtual frame buffer" server), at least on MacOSX. It makes sense that it shouldn't be able to work there (it needs interactivity), but I don't know how to detect the problems before they cause the crash. Currently the error happens the first time you try to open an rgl window; when rgl calls XCreateWindow R crashes with the error message X Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 1 (X_CreateWindow) Serial number of failed request: 28 Current serial number in output stream: 29 I've checked and as far as I can see all the parameters we're sending to XCreateWindow are valid, but I might have missed something: I don't know much about X11 programming. (The call is ::Window xwindow = XCreateWindow( xdisplay, RootWindow(xdisplay, DefaultScreen(xdisplay)), 0, 0, 256, 256, 0, xvisualinfo->depth, InputOutput, xvisualinfo->visual, valuemask, &attrib ); but without context that's probably not worth much to others.) Are there any experienced X11 programmers out there who can suggest what to do next? Duncan Murdoch
rgl normally works under Xvfb on Linux: we've been using that for the testing 'for ever'. However R should not 'crash' on an error in a package, and the X11 device has error handlers set up by XSetErrorHandler(R_X11Err); XSetIOErrorHandler(R_X11IOErr); I don't see anything comparable in rgl. The error seems to be in the attributes, so I would have a closer look at those. In particular, how are you running Xvfb?: you may need something like Xvfb :5 -screen 0 1280x1024x24 & setenv DISPLAY :5 to ensure that you have a reasonable visual and hence colormap. (On my system the default is 12 bit.) On Sun, 17 Jun 2007, Duncan Murdoch wrote:> The rgl package currently crashes R when running under Xvfb (the > "virtual frame buffer" server), at least on MacOSX. It makes sense that > it shouldn't be able to work there (it needs interactivity), but I don't > know how to detect the problems before they cause the crash. > > Currently the error happens the first time you try to open an rgl > window; when rgl calls XCreateWindow R crashes with the error message > > X Error of failed request: BadMatch (invalid parameter attributes) > Major opcode of failed request: 1 (X_CreateWindow) > Serial number of failed request: 28 > Current serial number in output stream: 29 > > I've checked and as far as I can see all the parameters we're sending to > XCreateWindow are valid, but I might have missed something: I don't > know much about X11 programming. (The call is > > ::Window xwindow = XCreateWindow( > xdisplay, RootWindow(xdisplay, DefaultScreen(xdisplay)), > 0, 0, 256, 256, 0, > xvisualinfo->depth, > InputOutput, > xvisualinfo->visual, > valuemask, > &attrib > ); > > but without context that's probably not worth much to others.) > > > Are there any experienced X11 programmers out there who can suggest what > to do next? > > Duncan Murdoch > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel >-- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595
Duncan Murdoch wrote:> The rgl package currently crashes R when running under Xvfb (the > "virtual frame buffer" server), at least on MacOSX. It makes sense that > it shouldn't be able to work there (it needs interactivity), but I don't > know how to detect the problems before they cause the crash. > > Currently the error happens the first time you try to open an rgl > window; when rgl calls XCreateWindow R crashes with the error message > > X Error of failed request: BadMatch (invalid parameter attributes) > Major opcode of failed request: 1 (X_CreateWindow) > Serial number of failed request: 28 > Current serial number in output stream: 29 > > I've checked and as far as I can see all the parameters we're sending to > XCreateWindow are valid, but I might have missed something: I don't > know much about X11 programming. (The call is > > ::Window xwindow = XCreateWindow( > xdisplay, RootWindow(xdisplay, DefaultScreen(xdisplay)), > 0, 0, 256, 256, 0, > xvisualinfo->depth, > InputOutput, > xvisualinfo->visual, > valuemask, > &attrib > ); > > but without context that's probably not worth much to others.) > > > Are there any experienced X11 programmers out there who can suggest what > to do next?I have now committed some changes to rgl to avoid the crash -- it converts the above error into an R error. I think to actually fix it, I'd need to debug the MacOSX Xvfb code to see exactly what it's complaining about. I don't know where to find that source, so this isn't likely to happen soon. Are there any X11/MacOSX programmers going to the UseR! meeting in August? I'd guess if I could sit down with someone who had experience with both of those we could track this down fairly quickly, but I don't think I'll be able to do it without that. Duncan Murdoch