On 11/8/2021 8:12 AM, Henry S. Thompson via Cygwin wrote:
Running on Windows-10 21H1

With Cygwin 3.3.0 and 3.3.1 I get a hang every time I try to launch XEmacs:

#0  0x00007ffdf31cd474 in ntdll!ZwQueryTimer ()
    from /c/Windows/SYSTEM32/ntdll.dll
#1  0x00000001800479fa in cygwait (object=<optimized out>, timeout=0xffff09a0,
     timeout@entry=0x0, mask=mask@entry=5)
     at 
/usr/x86_64-pc-cygwin/sys-root/usr/include/w32api/psdk_inc/intrin-impl.h:838
#2  0x000000018008f716 in cygwait (mask=<optimized out>,
     howlong=<optimized out>, h=<optimized out>)
     at /usr/src/debug/cygwin-3.3.1-1/winsup/cygwin/cygwait.h:45
#3  cygwait (howlong=<optimized out>, h=<optimized out>)
     at /usr/src/debug/cygwin-3.3.1-1/winsup/cygwin/cygwait.h:51
#4  fhandler_pipe::raw_read (this=0x18034fe80, ptr=0xffff0bc0,
     len=@0xffff0b40: 128)
     at /usr/src/debug/cygwin-3.3.1-1/winsup/cygwin/fhandler_pipe.cc:296
#5  0x0000000180069244 in fhandler_base::read (this=0x18034fe80,
     in_ptr=0xffff0bc0, len=@0xffff0b40: 128)
     at /usr/src/debug/cygwin-3.3.1-1/winsup/cygwin/fhandler.cc:819
#6  0x000000018013ffcc in read (fd=3, ptr=0xffff0bc0, len=<optimized out>)
     at /usr/src/debug/cygwin-3.3.1-1/winsup/cygwin/dtable.h:64
#7  0x000000018018e88b in _sigfe () at sigfe.s:35
#8  0x000000010066a11d in retry_read_1 (fildes=3, buf=0xffff0bc0, nbyte=128,
     allow_quit=0) at sysdep.c:2425
#9  0x000000010066a171 in retry_read (fildes=3, buf=0xffff0bc0, nbyte=128)
     at sysdep.c:2437
#10 0x0000000100494d86 in drain_signal_event_pipe () at event-unixoid.c:159
#11 0x000000010056d1dc in mswindows_need_event (badly_p=1) at event-msw.c:1432

This is an old executable, has worked since 2015 (!), but recompiling
didn't help.  Reverting to 3.2 lets it run again.

This backtrace doesn't match the source of Cygwin's XEmacs package (which exists on 32-bit Cygwin only), so I assume you built this yourself, using a different version of XEmacs. Cygwin's XEmacs doesn't hang for me.

Please provide build instructions for the version you compiled. Your backtrace shows that fhandler_pipe::raw_read is blocked waiting for a mutex, but I can't tell why without seeing the XEmacs source. My guess, just from looking at the function names, is that XEmacs is mixing POSIX reads with Win32 reads, messing up the mutex handling.

Ken

--
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