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/


--
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

Reply via email to