Client system : Windows 2000 service pack 4 with all updates as of 2006.08.14 Linux server is SuSE Linux Pro 10.0 (fully patched) Basic symptoms after logging in over XDCMP as any normal user: everything fine until I press a key, then longish (about a second) pauses on both mouse and key input. No CPU usage spikes on either server or client machine, so it appears that something is waiting for an event (that it shouldn't be) and timing out. No problems with the previous release 6.8.2 version of Cygwin/X. Colin Harrison <colin dot harrison at virgin dot net> reported that this patch fixed the delays, but stopped key repeat working: --- ./programs/Xserver/os/save_xdmcp.c 2006-07-30 11:56:30.000000000 +0100 +++ ./programs/Xserver/os/xdmcp.c 2006-07-30 13:49:09.000000000 +0100 @@ -721,7 +721,7 @@ keepaliveDormancy = defaultKeepaliveDormancy; } if (XFD_ANYSET(&AllClients) && state == XDM_RUN_SESSION) - timeOutTime = GetTimeInMillis() + keepaliveDormancy * 1000; + timeOutTime = 1; } else if (timeOutTime && (int) (GetTimeInMillis() - timeOutTime) >= 0) {
I now use a different patch in Xming (needs refining for X.Org use and the keyrepeat problem is not an issue). I haven't a really solid explanation as to why it works, but it works well! --- ./programs/Xserver/os/save_xdmcp.c 2006-07-30 18:18:48.000000000 +0100 +++ ./programs/Xserver/os/xdmcp.c 2006-07-30 18:41:24.000000000 +0100 @@ -720,10 +720,12 @@ else if (state == XDM_RUN_SESSION) keepaliveDormancy = defaultKeepaliveDormancy; } - if (XFD_ANYSET(&AllClients) && state == XDM_RUN_SESSION) + if (0) + /*if (XFD_ANYSET(&AllClients) && state == XDM_RUN_SESSION)*/ timeOutTime = GetTimeInMillis() + keepaliveDormancy * 1000; } - else if (timeOutTime && (int) (GetTimeInMillis() - timeOutTime) >= 0) + else if (0) + /*else if (timeOutTime && (int) (GetTimeInMillis() - timeOutTime) >= 0)*/ { if (state == XDM_RUN_SESSION) {
More background:- There can be annoying keyboard latency in XDMCP mode with heavyweight display managers, like KDM (this bug appeared in Cygwin/X 6.8.99.901 and was always in Xming). When Cygwin/X 'caught' the bug I knew a fix in Xming was feasible so traced it to part of the XMDCP state machine. The bug can be user sensitive, coming and going as different accounts are accessed. I've looked in detail at the code versions but have been unable, so far, to trace where it came from.
I wonder if this isn't yet another symptom of a problem I described here ... http://lists.freedesktop.org/archives/xorg/2006-August/017697.html my favorite description also follows from this link ... http://lists.debian.org/debian-x/2002/02/msg00033.html xdmcp.c is broken ... just not sure I can definately say how or why yet ...
This one has too high a Priority and Severity. It only affects Windows OS's. No one currently maintains for Cygwin/X, so a fix cannot be tried and tested there. I maintain for Xming and my patch works for it, but it is very empirical, and so not for general consumption. I just want to sit on this and wait and see if other DDX's have trouble with xdmcp too.
Sorry about the phenomenal bug spam, guys. Adding xorg-team@ to the QA contact so bugs don't get lost in future.
Is this bug still relevant?
Last time I didn't apply the patch from this Bugzilla to Xming I got this fault reported again. Hopefully XDMCP will go away soon..it's unsafe, old and not very IPv6 friendly!
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xorg/xserver/issues/196.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.