p.dalgaard at biostat.ku.dk
2007-Oct-29 19:15 UTC
[Rd] (PR#10379) Re: x11(....) kills R without DISPLAY
Hin-Tak Leung wrote:> Peter Dalgaard wrote: > <snipped> >> You need x11() with a valid display to trigger the bug: >> >> [pd at titmouse2 BUILD]$ ssh -Y 192.168.1.10 >> pd at 192.168.1.10's password: >> Last login: Sat Oct 27 02:40:16 2007 from 192.168.1.11 >> [pd at janus ~]$ echo $DISPLAY >> localhost:10.0 >> [pd at janus ~]$ DISPLAY=3D R -q >> > x11("localhost:10.0") >> Error: Couldn't find per display information >> [pd at janus ~]$ uname -a >> Linux janus 2.6.22.9-91.fc7 #1 SMP Thu Sep 27 20:47:39 EDT 2007=20 >> x86_64 x86_64 x86_64 GNU/Linux >> [pd at janus ~]$ cat /etc/issue >> Fedora release 7 (Moonshine) >> Kernel \r on an \m > > Agh, sorry. Yes, x11() (with or without $DISPLAY set) doesn't > die catatrophically, x11("validinfo") does. > > HTLThe culprit would seem to be this bit of devX11.c 1302 xtdpy =3D XtOpenDisplay(app_con, NULL, "r_x11",=20 "R_x11", 1303 NULL, 0, &zero, NULL); 1304 toplevel =3D XtAppCreateShell(NULL, "R_x11", The 2nd arg to XtOpenDisplay is listed as display_string, so passing a=20 NULL here seems like trouble when the default ways of finding the=20 display do not work. Looks like a fix is to insert p instead of NULL. (Tested rudimentarily.) --=20 O__ ---- Peter Dalgaard =D8ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
Christian Brechbühler
2007-Oct-30 02:22 UTC
[Rd] (PR#10379) Re: x11(....) kills R without DISPLAY
On 10/29/07, Prof Brian Ripley <ripley@stats.ox.ac.uk> wrote:> > The problem is that the XtOpenDisplay call did not specify the display. > Easily fixed .... >On 10/29/07, p.dalgaard@biostat.ku.dk <p.dalgaard@biostat.ku.dk> wrote:> > > The culprit would seem to be this bit of devX11.c > > 1302 xtdpy = XtOpenDisplay(app_con, NULL, "r_x11", > "R_x11", > 1303 NULL, 0, &zero, NULL); > 1304 toplevel = XtAppCreateShell(NULL, "R_x11", > > The 2nd arg to XtOpenDisplay is listed as display_string, so passing a > NULL here seems like trouble when the default ways of finding the > display do not work. > > Looks like a fix is to insert p instead of NULL. (Tested rudimentarily.)Prof. Ripley replaced that NULL with dsp -- p is normally the same. It's in svn (r43300 on he trunk, r43301 on R-2-6-branch). It built without a hitch, and the fix solves my problem. P. Dalgaard also pinpointed the problem. And confirmed Xt was involved :-) Apparently an XOpenDisplay on the specified display may be followed by an XtOpenDisplay, previously on the default display. Thanks to everyone who helped figure this out and fix the problem! /Christian Brechbuehler [[alternative HTML version deleted]]