Community
Participate
Working Groups
Bugzilla – Bug 273950
eclipse menu and panels are unresponsive for ~2 seconds with remote X
Last modified: 2009-04-28 15:36:49 EDT
Build ID: 3.4.1 Steps To Reproduce: 1. from a system with any X11 server (boxA) log into a system with X11 client libraries supplied by Xorg 6.x (boxB) 2. from boxB, run `DISPLAY=boxA:0 eclipse` 3. try using the eclipse GUI (menus and panels) from boxA and notice the ~2 seconds latency for access even on a gigabit network More information: 4. from boxB, send `kill -QUIT <pid>` to the java process to see the threaddump during the time it hangs 5. notice that the "main" thread is always stuck at one of two 2 JNI calls when the gui hangs: either (i) org.eclipse.swt.internal.gtk.OS._gtk_widget_set_tooltip_text(Native Method) or (ii) org.eclipse.swt.internal.gtk.OS._gdk_window_get_origin(Native Method) The ~2 second hanging behavior ONLY seems to occur with X11 client library Xorg 6.x *and* when DISPLAY != localhost. It does NOT occur with X11 client library Xorg 5.x *or* when DISPLAY=localhost. It does NOT matter what the X11 *server* library version is. I've tried Xorg 5.x, Xorg 6.x, Ming, Cygwin/X. The problem seems completely related to the version of the X11 *client* library used inside SWT's gtk JNI call.
Fyi, wherever I say "Xorg 6.x" I'm referring to the suite of libraries from xorg 1.6.x (which is what Ubuntu 9.04 ships with). Wherever I say "Xorg 5.x" I'm referring to the suite of libraries from xorg 1.5.x (which is what Ubuntu 8.10 ships with).
For further illustration, one concrete example that gives the ~2 second latency is have boxA=Windows Vista with Cygwin/X, and boxB=Ubuntu 9.04. I've tried a matrix of machines, involving 4 X11 libraries on each side (16 configurations in total).
Does the problem only happen for Eclipse? Do other GTK apps work fine ?
gtk-demo works fine with DISPLAY != localhost, as well as across all permutations of X11 client and server libraries. I've also not had any issues with other gtk apps (gtk-chtheme, gaim, etc).