Cygwin/X fails post Windows 10 version 1909

Galbraith, Randy regalbraith@cvshealth.com
Thu May 20 16:56:05 GMT 2021


On 19/05/2021 19:03, Galbraith, Randy via Cygwin wrote:
>> Hi Everyone.
>> 
>> Following a Windows 10 version 1909 update Cygwin/X fails to start. It ends with:
>> 
>> (--) 16 mouse buttons found
>> (--) Setting autorepeat to delay=500, rate=31
>> xinit: giving up
>> xinit: unable to connect to X server: Connection refused
>> xinit: server error
>> 
>> [1]+ Exit 1 startx -- :1 -multiwindow -clipboard
>> 
>> If I run XWin under gdb with xorg-server-debuginfo package installed I can see this stack trace:
>> 
>> Thread 1 "XWin" received signal ?, Unknown signal.
>> 0x00007ffa99383b19 in RaiseException ()
>> from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
>> (gdb) bt
>> #0 0x00007ffa99383b19 in RaiseException ()
>> from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
>> #1 0x00007ffa97662086 in ?? ()
>> from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
>> #2 0x00007ffa97661afd in ?? ()
>> from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
>> #3 0x00007ffa97661695 in ?? ()
>> from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
>> #4 0x000000010040df3e in winConfigKeyboard (pDevice=pDevice@entry=0x80027d720)
>> at ../hw/xwin/winconfig.c:274

>XWin is just calling GetKeyboardLayoutName() here, which Citrix appears to be hooking.

> https://gitlab.freedesktop.org/xorg/xserver/-/blob/master/hw/xwin/winconfig.c#L274

>> #5 0x0000000100410f36 in winKeybdProc (pDeviceInt=0x80027d720,
>> iState=<optimized out>>) at ../hw/xwin/winkeybd.c:99
>> #6 0x0000000100469bc7 in ActivateDevice (dev=dev@entry=0x80027d720,
>> sendevent=sendevent@entry=1 '\001') at ../dix/devices.c:576
>> #7 0x000000010046d8bd in InitAndStartDevices () at ../dix/devices.c:762
>> #8 0x0000000100479f8f in dix_main (argc=2, argv=0xffffcc50,
>> envp=<optimized out>>) at ../dix/main.c:251
>> #9 0x0000000180049efd in dll_crt0_1 ()
>> at /usr/src/debug/cygwin-3.2.0-1/winsup/cygwin/dcrt0.cc:1028
>> #10 0x0000000180047856 in _cygtls::call2 (this=0xffffce00,
>> func=0x180048d30 <dll_crt0_1(void*)>>, arg=0x0, buf=buf@entry=0xffffcdf0)
>> at /usr/src/debug/cygwin-3.2.0-1/winsup/cygwin/cygtls.cc:40
>> #11 0x0000000180047904 in _cygtls::call (func=<optimized out>>,
>> --Type <RET>> for more, q to quit, c to continue without paging--
>> arg=<optimized out>>)
>> at /usr/x86_64-pc-cygwin/sys-root/usr/include/w32api/psdk_inc/intrin-impl.h:790
>> #12 0x0000000000000000 in ?? ()
>> Backtrace stopped: previous frame inner to this frame (corrupt stack?)
>> (gdb)
>> 
>> The ICA reference reflects my Citrix connection to a virtual Windows 10 desktop. I am working in a corporate setting however I do have admin rights to this virtual machine. Based on "connection refused" my hypothesis was our Windows 1909 push may have blocked ports Xwin is using. If there are specific Windows Defender Firewall rules that are required I would be happy to put them in. The bit of firewall setup I've tried thus far has not helped. This backtrace though makes me think this may be a keyboard configuration issue.
>> 
>> Any advice and guidance on how to debug this problem will be greatly appreciated. Several on our development team rely on Cygwin/X and are rather unhappy to now be restricted to command line tools until we can get this resolved.

>This is a crash in Citrix, so I'm afraid the best (and possibly only) people who can debug this are Citrix...

> Just Googling the faulting DLL name did I find [1], which seems to indicate you can turn off this hooking with a registry key.

>[1] https://helgeklein.com/blog/2015/10/citrix-xenappxendesktop-api-hooking-explained

Jon, thank you so much for your response! For a brief moment yesterday X-Windows started. This occurred after I set:

Flag = 0 under:
HKLM\SOFTWARE\Citrix\CtxHook\AppInit_Dlls\Multiple Monitor Hook

I then removed:
xorg-server-cygwin-crashreporter
xorg-server-debuginfo

Rebooted and tried again. Alas, back to "Connection refused." I reinstalled those packages but the problem continues. I ran gdb to get a backtrace this morning and we're still seeing the same stack:

#0  0x00007ffa0af83b19 in RaiseException ()
   from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#1  0x00007ffa0a032086 in ?? ()
   from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
#2  0x00007ffa0a031afd in ?? ()
   from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
#3  0x00007ffa0a031695 in ?? ()
   from /cygdrive/c/Program Files/Citrix/ICAService/cxinjime64.dll
#4  0x000000010040df3e in winConfigKeyboard (pDevice=pDevice@entry=0x80027d720)
    at ../hw/xwin/winconfig.c:274

I asked one of our developers who has a company laptop (i.e. VPN access, not Citrix) to test his setup. It works. Thus the problem does seem to be Citrix related. I've now reached out to another developer who is running Cygwin 2.11.1. I believe his copy is running while he does use Citrix and Windows 10 1909.

That's all I have for now. The chase continues.

Kind regards,
-Randy Galbraith



More information about the Cygwin mailing list