I've recently returned to this issue to see if time has resolved anything. I've 
updated Debian 9 to 9.2 and Cygwin to November 2017. Just to give an idea, 
Debian 8.7 X server reports version 1.16.4, Debian 9.2 reports 1.18.4 and 
cygwin 1.19.4. But time hasn't resolved anything, the problem is still 
identical to the original report.

However, I've recently discovered how to connect successfully via XDMCP from 
Debian 8 to Debian 9:

$X :0 -query dn2800mt2

This rules out any sort of general XDMCP problem with Debian 9. It now is 
fairly certain that the problem is limited to connecting to Debian 9 from the 
cygwin Xwin server via XDMCP.

Before I report this problem in cygwin channels, I'd like to make one 
additional observation that I find particularly interesting. I've poked around 
this problem quite a bit, enough to find the related logs on the client side, 
/var/log/lightdm/lightdm.log and /var/log/lightdm/(null)-greeter.log, and on 
the server side /var/log/xwin/XWin.0.log. I've increased the log verbosity as 
much as I can or as much as is likely possible. I've altered lightdm 
configuration to get rid of some logged background image related errors. At 
this point the Debian 9 lightdm logs are identical for an unsuccessful XDMCP 
connection from cygwin and a successful connection from a Debian 8 machine. 
Further, the cygwin XWin log doesn't show any (EE) errors at all. So as far as 
I can tell, there are no relevant errors in the logs on either side of the 
connection, yet the connection is totally useless, blank screen. Interestingly, 
the lightdm client seems to think everything is ok because a successful login 
can be accomplished by just blind typing. One would suspect some canvas 
configuration error is to blame but for the mouse pointer jumping from the 
middle of the screen to the upper left.

Just to put this in a separate paragraph, I find it particularly dispiriting 
that the logs contain no relevant errors yet the connection is totally useless. 
I also find it dispiriting that something as basic as XDMCP from cygwin can 
just cease to function and yet a reasonably capable person can't get to the 
bottom of it in finite time. In my opinion, open source can't mean that one has 
to understand the source in order to make vanilla deployments. Especially at 
the X windows level, there's just too much detail to expect very many people to 
assimilate it.

One more point of interest. I went so far as to sniff X11 packets on with wire 
with Wireshark. It turns out that a packet trace of a successful connection 
from cygwin to a Debian 8 machine is identical from one connection to the next. 
However, the same can't be said for the unsuccessful connection to a Debian 9 
machine. The packet order from one connection to the next is almost 
immediately, by say the 10th packet, different. Further, there are 10 or so X11 
TCP connections all seemingly vying for bandwidth in parallel. And as far as I 
can tell, there's no way to tell xlib to just use one TCP connection to aid in 
debugging.

I'm not going back to proprietary software, but in my mind Open Source software 
isn't as useful as it should be. This isn't the only fairly basic problem that 
I've encountered. And when I do encounter problems, things like forensic log 
information is more often than not useless. Ideas like following packets on the 
wire don't help due to underlying complexity that obscures relevant detail. And 
there's no thought given to simplified operational modes to aid debugging. Of 
course understanding and building from source is always theoretically possible, 
but who has the time to build and understand large fundamental subsystems like 
X11, the linux kernel, or pulseaudio, or ...

Reply via email to