Comment 13 for bug 386199

Revision history for this message
Craig Ringer (ringerc) wrote :

Cloning my comment from the GNOME bug, since I've identified pretty much exactly what factor controls whether or not this issue happens:

----
If you enable your local X server to listen on TCP/IP (on most GNOME desktops, edit /etc/gdm/gdm.conf (may be /etc/X11/gdm/gdm.conf depending on distro/version) and change "DisallowTCP=true" to "DisallowTCP=false" then restart GDM, you can reproduce this running directly on your normal X server.

If you run with DISPLAY=:0.0 (assuming you're on DISPLAY 0) the compose window appears in about a second. If you run with DISPLAY=127.0.0.1:0.0 it takes 15 or more seconds to appear.

Here's an interesting example. I have two terminals, with prompts "T1$ " and "T2$ ". In T1 I'll launch Evolution, talking on a UNIX domain socket. On T2 I'll then time how long it takes to open a compose window by using the command "time evolution mailto:<email address hidden>". The remote invocation only terminates when the mail window has displayed, so we can time how long it takes to display quite accurately. Once I've timed that, I'll exit evolution on T1, reopen it with a TCP/IP connection, and repeat the test on T2. Observe the difference:

T1$ DISPLAY=:0.0 evolution
** (evolution:26183): DEBUG: EI: SHELL STARTUP
** (evolution:26183): DEBUG: EI: mail_read_notify
** (evolution:26183): DEBUG: MAIL SERVER: Count changed: 0
T2$ time evolution mailto:<email address hidden>
real 0m0.830s
user 0m0.160s
sys 0m0.030s
T1$ DISPLAY=127.0.0.1:0 evolution
** (evolution:26236): DEBUG: EI: SHELL STARTUP
** (evolution:26236): DEBUG: EI: mail_read_notify
** (evolution:26236): DEBUG: MAIL SERVER: Count changed: 0
T2$ time evolution mailto:<email address hidden>
real 0m16.742s
user 0m0.180s
sys 0m0.030s

0.8 seconds vs 16.7 seconds. The only difference is TCP/IP vs UNIX domain socket comms.