all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#65325: "make check" hangs on Cygwin
@ 2023-08-15 22:08 Bruno Haible
  2023-08-16 11:54 ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Bruno Haible @ 2023-08-15 22:08 UTC (permalink / raw)
  To: 65325

[-- Attachment #1: Type: text/plain, Size: 409 bytes --]

Building Emacs (git sources from today) on Cygwin 2.9.0/x86_64:
1. I configured in a subdirectory (VPATH build) with options
     --disable-silent-rules --without-all --without-x
2. "make" succeeds.
3. "make check" leads to a process that is stuck, does not continue
   for several hours. It does not eat much CPU time, but nevertheless,
   something is blocked. Log file 'make-check.log' is attached.

Bruno

[-- Attachment #2: configure.log --]
[-- Type: text/x-log, Size: 24402 bytes --]

checking for xcrun... no
checking for GNU Make... make
checking build system type... x86_64-pc-cygwin
checking host system type... x86_64-pc-cygwin
checking for x86_64-pc-cygwin-gcc... x86_64-pc-cygwin-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.exe
checking for suffix of executables... .exe
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether x86_64-pc-cygwin-gcc accepts -g... yes
checking for x86_64-pc-cygwin-gcc option to enable C11 features... none needed
checking whether the compiler is clang... no
checking for compiler option needed when checking for declarations... none
checking whether x86_64-pc-cygwin-gcc and cc understand -c and -o together... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking for linux/fs.h... no
checking for malloc.h... yes
checking for sys/systeminfo.h... no
checking for sys/sysinfo.h... yes
checking for coff.h... no
checking for pty.h... yes
checking for sys/resource.h... yes
checking for sys/utsname.h... yes
checking for pwd.h... yes
checking for util.h... no
checking for sanitizer/lsan_interface.h... no
checking for sanitizer/asan_interface.h... no
checking for sanitizer/common_interface_defs.h... no
checking for sys/socket.h... yes
checking for sys/param.h... yes
checking for pthread.h... yes
checking for malloc/malloc.h... no
checking for sys/un.h... yes
checking for vfork.h... no
checking for utmp.h... yes
checking for utmpx.h... yes
checking for OS.h... no
checking for dirent.h... yes
checking for execinfo.h... no
checking for linux/xattr.h... no
checking for stdio_ext.h... yes
checking for sys/vfs.h... yes
checking for sys/fs_types.h... no
checking for getopt.h... yes
checking for sys/cdefs.h... yes
checking for sys/time.h... yes
checking for ieee754.h... no
checking for limits.h... yes
checking for sys/select.h... yes
checking for stdbool.h... yes
checking for stdckdint.h... no
checking for sys/random.h... yes
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking how to run the C preprocessor... x86_64-pc-cygwin-gcc -E
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for Minix Amsterdam compiler... no
checking for x86_64-pc-cygwin-ar... no
checking for ar... ar
checking for x86_64-pc-cygwin-ranlib... no
checking for ranlib... ranlib
checking for x86_64-pc-cygwin-gcc option to enable large file support... none needed
checking for x86_64-pc-cygwin-gcc option for timestamps after 2038... none needed
checking whether the compiler supports GNU C++... yes
checking whether x86_64-pc-cygwin-g++ accepts -g... yes
checking for x86_64-pc-cygwin-g++ option to enable C++11 features... none needed
checking whether x86_64-pc-cygwin-gcc accepts -g3 -O2... yes
checking whether the compiler is clang... no
checking whether C compiler handles -Werror -Wunknown-warning-option... no
checking for a BSD-compatible install... /usr/bin/install -c
checking command to symlink files in the same directory... ln -s
checking for install-info... /usr/bin/install-info
checking for gzip... /usr/bin/gzip
checking for 'find' args to delete a file... -delete
checking for brew... no
checking for -znocombreloc... not needed
checking whether addresses are sanitized... no
checking for math library... none required
checking for struct passwd.pw_gecos... yes
checking for x86_64-pc-cygwin-pkg-config... no
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for ADDR_NO_RANDOMIZE... no
checking if Linux sysinfo may be used... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking for net/if.h... yes
checking for ifaddrs.h... yes
checking for net/if_dl.h... no
checking for struct ifreq.ifr_flags... yes
checking for struct ifreq.ifr_hwaddr... yes
checking for struct ifreq.ifr_netmask... yes
checking for struct ifreq.ifr_broadaddr... yes
checking for struct ifreq.ifr_addr... yes
checking for struct ifreq.ifr_addr.sa_len... no
checking whether gcc understands -MMD -MF... yes
checking for x86_64-pc-cygwin-gcc options needed to detect all undeclared functions... none needed
checking for X... disabled
checking whether malloc is Doug Lea style... no
checking for sbrk... yes
checking for getpagesize... yes
checking for __lsan_ignore_object... no
checking for fork... yes
checking for vfork... yes
checking for fchmod... yes
checking for utmpname... yes
checking for utmpxname... yes
checking for canonicalize_file_name... yes
checking for realpath... yes
checking for lstat... yes
checking for fchmodat... yes
checking for lchmod... no
checking for fcntl... yes
checking for fdopendir... yes
checking for listxattr... yes
checking for fstatat... yes
checking for fsync... yes
checking for gettimeofday... yes
checking for memset_explicit... no
checking for memset_s... no
checking for pselect... yes
checking for pthread_sigmask... yes
checking for readlink... yes
checking for isblank... yes
checking for iswctype... yes
checking for strtoimax... yes
checking for symlink... yes
checking for localtime_r... yes
checking for getdtablesize... yes
checking for working mmap... yes
checking for main in -lXbsd... no
checking for pthread library... none needed
checking for thread support... no
checking for getaddrinfo_a in -lanl... no
checking for malloc_trim... yes
checking for maillock in -lmail... no
checking for maillock in -llockfile... no
checking for liblockfile.so... no
checking for maillock.h... no
checking for linux/seccomp.h... no
checking for linux/filter.h... no
checking for libseccomp >= 2.5.2... no
checking size of long... 8
checking for accept4... yes
checking for fchdir... yes
checking for gethostname... yes
checking for getrusage... yes
checking for get_current_dir_name... yes
checking for lrand48... yes
checking for random... yes
checking for rint... yes
checking for tcdrain... yes
checking for trunc... yes
checking for select... yes
checking for getpagesize... (cached) yes
checking for setlocale... yes
checking for newlocale... yes
checking for getrlimit... yes
checking for setrlimit... yes
checking for shutdown... yes
checking for pthread_sigmask... (cached) yes
checking for strsignal... yes
checking for setitimer... yes
checking for sendto... yes
checking for recvfrom... yes
checking for getsockname... yes
checking for getifaddrs... yes
checking for freeifaddrs... yes
checking for gai_strerror... yes
checking for sync... yes
checking for getpwent... yes
checking for endpwent... yes
checking for getgrent... yes
checking for endgrent... yes
checking for renameat2... yes
checking for cfmakeraw... yes
checking for cfsetspeed... yes
checking for __executable_start... no
checking for log2... yes
checking for pthread_setname_np... yes
checking for pthread_set_name_np... no
checking whether pthread_setname_np takes a single argument... no
checking whether pthread_setname_np takes three arguments... no
checking for aligned_alloc... yes
checking whether aligned_alloc is declared... yes
checking for posix_madvise... yes
checking for madvise... yes
checking for __builtin_frame_address... yes
checking for __builtin_unwind_init... yes
checking for _LARGEFILE_SOURCE value needed for large files... no
checking for grantpt... yes
checking for getpt... yes
checking for posix_openpt... yes
checking for library containing tputs... -ltinfo
checking whether -ltinfo library defines BC... yes
checking for timerfd interface... no
checking whether signals can be handled on alternate stack... yes
checking for valgrind/valgrind.h... no
checking for struct unipair.unicode... no
checking for pid_t... yes
checking for working fork... yes
checking for working vfork... (cached) yes
checking for snprintf... yes
checking for spawn.h... yes
checking for posix_spawn... yes
checking for posix_spawn_file_actions_addchdir... no
checking for posix_spawn_file_actions_addchdir_np... no
checking for posix_spawnattr_setflags... yes
checking whether POSIX_SPAWN_SETSID is declared... no
checking whether GLib is linked in... no
checking for nl_langinfo and CODESET... yes
checking for nl_langinfo and _NL_PAPER_WIDTH... no
checking for mbstate_t... yes
checking for _setjmp... yes
checking for sigsetjmp... yes
checking POSIX termios... yes
checking size of speed_t... 4
checking for usable FIONREAD... no
checking for struct alignment... yes
checking for C/C++ restrict keyword... __restrict__
checking for typeof syntax and keyword spelling... typeof
checking for statement expressions... yes
checking whether malloc (0) returns nonnull... yes
checking for working alloca.h... yes
checking for alloca... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking whether the preprocessor supports include_next... yes
checking whether source code line length is unlimited... yes
checking whether endutent is declared... yes
checking for struct utmpx.ut_user... yes
checking for struct utmp.ut_user... yes
checking for struct utmpx.ut_name... yes
checking for struct utmp.ut_name... yes
checking for struct utmpx.ut_type... yes
checking for struct utmp.ut_type... yes
checking for struct utmpx.ut_pid... yes
checking for struct utmp.ut_pid... yes
checking for struct utmp.ut_tv... no
checking for struct utmpx.ut_host... yes
checking for struct utmp.ut_host... yes
checking for struct utmpx.ut_id... yes
checking for struct utmp.ut_id... yes
checking for struct utmpx.ut_session... no
checking for struct utmp.ut_session... no
checking for struct utmpx.ut_exit... no
checking for struct utmp.ut_exit... no
checking for struct utmpx.ut_exit.ut_exit... no
checking for struct utmpx.ut_exit.e_exit... no
checking for struct utmp.ut_exit.e_exit... no
checking for struct utmpx.ut_exit.ut_termination... no
checking for struct utmpx.ut_exit.e_termination... no
checking for struct utmp.ut_exit.e_termination... no
checking whether sysinfo is declared... yes
checking for sys/sysctl.h... no
checking for sysctl... no
checking whether lstat correctly handles trailing slash... yes
checking whether // is distinct from /... yes
checking whether realpath works... no
checking for faccessat... yes
checking for getcwd... yes
checking whether byte ordering is bigendian... no
checking if environ is properly declared... yes
checking for complete errno.h... yes
checking whether ctype.h defines __header_inline... no
checking for mode_t... yes
checking whether strmode is declared... no
checking whether getline is declared... yes
checking for gawk... gawk
checking for getopt.h... (cached) yes
checking for getopt_long_only... yes
checking whether getopt is POSIX compatible... yes
checking for working GNU getopt function... yes
checking for working GNU getopt_long function... yes
checking whether timespec_get is declared... no
checking for timespec_get... no
checking for struct timeval... yes
checking for wide-enough struct timeval.tv_sec member... yes
checking whether limits.h has WORD_BIT, BOOL_WIDTH etc.... no
checking whether the compiler produces multi-arch binaries... no
checking whether stdint.h conforms to C99... yes
checking whether stdint.h works without ISO C predefines... yes
checking whether stdint.h has UINTMAX_WIDTH etc.... no
checking whether memmem is declared... yes
checking whether memrchr is declared... yes
checking whether <limits.h> defines MIN and MAX... no
checking whether <sys/param.h> defines MIN and MAX... yes
checking whether time_t is signed... yes
checking whether alarm is declared... yes
checking for working mktime... yes
checking whether struct tm is in sys/time.h or time.h... time.h
checking for struct tm.tm_zone... yes
checking for struct tm.tm_gmtoff... yes
checking whether <sys/select.h> is self-contained... yes
checking for inline... inline
checking for sigset_t... yes
checking for volatile sig_atomic_t... yes
checking for sighandler_t... yes
checking for wchar_t... yes
checking for good max_align_t... yes
checking whether NULL can be used in arbitrary expressions... yes
checking for unreachable... no
checking whether fcloseall is declared... yes
checking whether getw is declared... yes
checking whether putw is declared... yes
checking which flavor of printf attribute matches inttypes macros... system
checking whether strnlen is declared... yes
checking whether strtoimax is declared... yes
checking whether stat file-mode macros are broken... no
checking for nlink_t... yes
checking for struct timespec in <time.h>... yes
checking for TIME_UTC in <time.h>... no
checking whether execvpe is declared... yes
checking whether clearerr_unlocked is declared... yes
checking whether feof_unlocked is declared... yes
checking whether ferror_unlocked is declared... yes
checking whether fflush_unlocked is declared... yes
checking whether fgets_unlocked is declared... yes
checking whether fputc_unlocked is declared... yes
checking whether fputs_unlocked is declared... yes
checking whether fread_unlocked is declared... yes
checking whether fwrite_unlocked is declared... yes
checking whether getc_unlocked is declared... yes
checking whether getchar_unlocked is declared... yes
checking whether putc_unlocked is declared... yes
checking whether putchar_unlocked is declared... yes
checking type of array argument to getgroups... gid_t
checking whether getdelim is declared... yes
checking whether getdtablesize is declared... yes
checking whether malloc is ptrdiff_t safe... yes
checking whether malloc, realloc, calloc set errno on failure... yes
checking for O_CLOEXEC... yes
checking for promoted mode_t type... mode_t
checking whether the utimes function works... yes
checking for C compiler option to allow warnings... -Wno-error
checking for alignas and alignof... yes, <stdalign.h> macros
checking for alloca as a compiler built-in... yes
checking for static_assert... no
checking for __builtin_expect... yes
checking for byteswap.h... yes
checking for readlinkat... yes
checking for library containing clock_gettime... none required
checking for clock_getres... yes
checking for clock_gettime... yes
checking for clock_settime... yes
checking for copy_file_range... no
checking for d_type member in directory struct... yes
checking whether // is distinct from /... (cached) yes
checking whether dup2 works... yes
checking for faccessat... (cached) yes
checking whether fchmodat works... no
checking for readlinkat... (cached) yes
checking whether fcntl handles F_DUPFD correctly... no
checking whether fcntl understands F_DUPFD_CLOEXEC... yes
checking whether fdopendir is declared... yes
checking whether fdopendir works... yes
checking for flexible array member... yes
checking for __fpending... yes
checking whether __fpending is declared... yes
checking whether free is known to preserve errno... no
checking whether fstatat (..., 0) works... yes
checking for sys/mount.h... yes
checking for statvfs function (SVR4)... yes
checking whether to use statvfs64... no
checking for two-argument statfs with statfs.f_frsize member... no
checking for sys/fs/s5param.h... no
checking for sys/statfs.h... yes
checking for statfs that truncates block counts... no
checking for futimens... yes
checking whether futimens works... yes
checking for getline... yes
checking for working getline function... yes
checking for getloadavg... yes
checking for sys/loadavg.h... no
checking whether getloadavg is declared... yes
checking for getrandom... yes
checking whether getrandom is compatible with its GNU+BSD signature... yes
checking for gettimeofday with POSIX signature... yes
checking whether the compiler supports the __inline keyword... yes
checking for gmp.h... yes
checking for library containing __gmpz_roinit_n... -lgmp
checking for memmem... yes
checking whether memmem works... yes
checking for mempcpy... yes
checking for memrchr... yes
checking for explicit_memset... no
checking for mkostemp... yes
checking for library containing nanosleep... none required
checking for working nanosleep... no (mishandles large arguments)
checking for sys/pstat.h... no
checking for sys/sysmp.h... no
checking for sys/param.h... (cached) yes
checking for sys/sysctl.h... (cached) no
checking for sched_getaffinity_np... no
checking for pstat_getdynamic... no
checking for sysmp... no
checking for sysctl... (cached) no
checking for sched_getaffinity... no
checking for pipe2... yes
checking whether signature of pselect conforms to POSIX... yes
checking whether pselect detects invalid fds... yes
checking whether pthread_sigmask is a macro... no
checking whether pthread_sigmask works without -lpthread... yes
checking whether pthread_sigmask returns error numbers... yes
checking whether pthread_sigmask unblocks signals correctly... guessing yes
checking for xattr library with ATTR_ACTION_PERMISSIONS... no
configure: WARNING: libattr development library was not found or not usable.
configure: WARNING: GNU Emacs will be built without xattr support.
checking whether readlink signature is correct... yes
checking whether readlink handles trailing slash correctly... yes
checking whether readlink truncates results correctly... yes
checking for readlinkat... (cached) yes
checking whether readlinkat signature is correct... yes
checking for working re_compile_pattern... no
checking for libintl.h... yes
checking whether isblank is declared... yes
checking for sig2str... no
checking for sigdescr_np... no
checking for socklen_t... yes
checking for ssize_t... yes
checking for struct stat.st_atim.tv_nsec... yes
checking whether struct stat.st_atim is of type struct timespec... yes
checking for struct stat.st_birthtimespec.tv_nsec... no
checking for struct stat.st_birthtimensec... no
checking for struct stat.st_birthtim.tv_nsec... yes
checking for bool, true, false... no
checking for stpcpy... yes
checking for working strnlen... yes
checking whether strtoimax works... yes
checking whether symlink handles trailing slash correctly... yes
checking whether localtime_r is declared... yes
checking whether localtime_r is compatible with its POSIX signature... yes
checking whether localtime works even near extrema... yes
checking for timezone_t... no
checking for timegm... yes
checking whether timer_settime is declared... yes
checking for library containing timer_settime... none required
checking for timer_settime... yes
checking for utimensat... yes
checking whether utimensat works... yes
checking for variable-length arrays... yes
checking for rawmemchr... yes
checking whether getdtablesize works... no
checking for timer_getoverrun... no
checking for x86_64-pc-cygwin-gcc option to disable position independent executables... not needed
checking for __ctype_get_mb_cur_max... no
checking whether MB_CUR_MAX is defined to function that won't link... no

Configured for 'x86_64-pc-cygwin'.

  Where should the build process find the source code?    ..
  What compiler should emacs be built with?               x86_64-pc-cygwin-gcc -g3 -O2 -DHAVE_CONFIG_H
  Should Emacs use the GNU version of malloc?             no
    (The GNU allocators don't work with this system configuration.)
  Should Emacs use a relocating allocator for buffers?    no
  Should Emacs use mmap(2) for buffer allocation?         no
  What window system should Emacs use?                    none
  What toolkit should Emacs use?                          none
  Where do we find X Windows header files?                NONE
  Where do we find X Windows libraries?                   NONE
  Does Emacs use -lXaw3d?                                 no
  Is Emacs being built for Android?                       no 
  Does Emacs use the X Double Buffer Extension?           no
  Does Emacs use -lXpm?                                   no
  Does Emacs use -ljpeg?                                  no
  Does Emacs use -ltiff?                                  no
  Does Emacs use a gif library?                           no 
  Does Emacs use a png library?                           no 
  Does Emacs use -lrsvg-2?                                no
  Does Emacs use -lwebp?                                  no
  Does Emacs use -lsqlite3?                               no
  Does Emacs use cairo?                                   no
  Does Emacs use -llcms2?                                 no
  Does Emacs use imagemagick?                             no
  Does Emacs use native APIs for images?                  no
  Does Emacs support sound?                               no
  Does Emacs use -lgpm?                                   no
  Does Emacs use -ldbus?                                  no
  Does Emacs use -lgconf?                                 no
  Does Emacs use GSettings?                               no
  Does Emacs use a file notification library?             no
  Does Emacs use access control lists?                    no
  Does Emacs use -lselinux?                               no
  Does Emacs use -lgnutls?                                no
  Does Emacs use -lxml2?                                  no
  Does Emacs use -lfreetype?                              no
  Does Emacs use HarfBuzz?                                no
  Does Emacs use -lm17n-flt?                              no
  Does Emacs use -lotf?                                   no
  Does Emacs use -lxft?                                   no
  Does Emacs use -lsystemd?                               no
  Does Emacs use -ljansson?                               no
  Does Emacs use -ltree-sitter?                           no
  Does Emacs use the GMP library?                         yes
  Does Emacs directly use zlib?                           no
  Does Emacs have dynamic modules support?                no
  Does Emacs use toolkit scroll bars?                     no
  Does Emacs support Xwidgets?                            no
  Does Emacs have threading support in lisp?              no
  Does Emacs support the portable dumper?                 yes
  Does Emacs support legacy unexec dumping?               no
  Which dumping strategy does Emacs use?                  pdumper
  Does Emacs have native lisp compiler?                   no
  Does Emacs use version 2 of the X Input Extension?      no
  Does Emacs generate a smaller-size Japanese dictionary? no


configure: creating ./config.status
config.status: creating src/verbose.mk
config.status: creating src/emacs-module.h
config.status: creating Makefile
config.status: creating lib/gnulib.mk
config.status: creating ../doc/man/emacs.1
config.status: creating lib/Makefile
config.status: creating lib-src/Makefile
config.status: creating oldXMenu/Makefile
config.status: creating src/Makefile
config.status: creating lwlib/Makefile
config.status: creating nextstep/Makefile
config.status: creating nt/Makefile
config.status: creating doc/emacs/Makefile
config.status: creating doc/misc/Makefile
config.status: creating doc/lispintro/Makefile
config.status: creating doc/lispref/Makefile
config.status: creating lisp/Makefile
config.status: creating leim/Makefile
config.status: creating test/Makefile
config.status: creating test/manual/noverlay/Makefile
config.status: creating test/infra/Makefile
config.status: creating admin/charsets/Makefile
config.status: creating admin/unidata/Makefile
config.status: creating admin/grammars/Makefile
config.status: creating java/Makefile
config.status: creating cross/Makefile
config.status: creating java/AndroidManifest.xml
config.status: creating src/config.h
config.status: executing src/epaths.h commands
config.status: executing src/.gdbinit commands
config.status: executing doc/emacs/emacsver.texi commands
config.status: executing etc-refcards-emacsver.tex commands
configure: WARNING: This configuration installs a 'movemail' program
that does not retrieve POP3 email.  By default, Emacs 25 and earlier
installed a 'movemail' program that retrieved POP3 email via only
insecure channels, a practice that is no longer recommended but that
you can continue to support by using '../configure --with-pop'.
configure: You might want to install GNU Mailutils
<https://mailutils.org> and use '../configure --with-mailutils'.

[-- Attachment #3: make.log.gz --]
[-- Type: application/gzip, Size: 31204 bytes --]

[-- Attachment #4: make-check.log.gz --]
[-- Type: application/gzip, Size: 9249 bytes --]

[-- Attachment #5: cygwin-hang.png --]
[-- Type: image/png, Size: 78141 bytes --]

^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-15 22:08 bug#65325: "make check" hangs on Cygwin Bruno Haible
@ 2023-08-16 11:54 ` Eli Zaretskii
  2023-08-16 13:58   ` Bruno Haible
  2023-08-16 15:23   ` Ken Brown
  0 siblings, 2 replies; 12+ messages in thread
From: Eli Zaretskii @ 2023-08-16 11:54 UTC (permalink / raw)
  To: Bruno Haible, Ken Brown; +Cc: 65325

> From: Bruno Haible <bruno@clisp.org>
> Date: Wed, 16 Aug 2023 00:08:08 +0200
> 
> Building Emacs (git sources from today) on Cygwin 2.9.0/x86_64:
> 1. I configured in a subdirectory (VPATH build) with options
>      --disable-silent-rules --without-all --without-x
> 2. "make" succeeds.
> 3. "make check" leads to a process that is stuck, does not continue
>    for several hours. It does not eat much CPU time, but nevertheless,
>    something is blocked. Log file 'make-check.log' is attached.

Thanks.  Alas, the maintainer of Cygwin Emacs (CC'ed) has been silent
for quite some time, so I'm not sure when and how this could be
addressed.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-16 11:54 ` Eli Zaretskii
@ 2023-08-16 13:58   ` Bruno Haible
  2023-08-16 15:23   ` Ken Brown
  1 sibling, 0 replies; 12+ messages in thread
From: Bruno Haible @ 2023-08-16 13:58 UTC (permalink / raw)
  To: Ken Brown, Eli Zaretskii; +Cc: 65325

Eli Zaretskii wrote:
> I'm not sure when and how this could be addressed.

In case it helps, here are the gdb stack traces from the two hanging processes.


Stack traces in emacs.exe:

Attaching to program `/home/bruno/emacs/build-cygwin64/src/emacs', process 1000
[New Thread 1000.0xb58]
[New Thread 1000.0xe8c]
[New Thread 1000.0x1248]
[New Thread 1000.0x1594]
[New Thread 1000.0x84c]
[New Thread 1000.0x8e8]
[New Thread 1000.0xd98]
[New Thread 1000.0x16e4]
0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) info threads
  Id   Target Id         Frame
* 8    Thread 1000.0x16e4 0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  7    Thread 1000.0xd98 0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  6    Thread 1000.0x8e8 0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  5    Thread 1000.0x84c 0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  4    Thread 1000.0x1594 0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  3    Thread 1000.0x1248 0x00007ffbfbfad734 in ntdll!ZwFsControlFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  2    Thread 1000.0xe8c 0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  1    Thread 1000.0xb58 0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) thread 1
[Switching to thread 1 (Thread 1000.0xb58)]
#0  0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf99a1be0 in WaitForMultipleObjectsEx () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x00007ffbf99a1ade in WaitForMultipleObjects () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#3  0x0000000180045b39 in cygwait(void*, _LARGE_INTEGER*, unsigned int) () from /usr/bin/cygwin1.dll
#4  0x00000001800a0d8d in fhandler_pty_slave::read(void*, unsigned long&) () from /usr/bin/cygwin1.dll
#5  0x0000000180131472 in read () from /usr/bin/cygwin1.dll
#6  0x00000001801cbe23 in _read_r () from /usr/bin/cygwin1.dll
#7  0x000000018019185c in __sread () from /usr/bin/cygwin1.dll
#8  0x0000000180190787 in __srefill_r () from /usr/bin/cygwin1.dll
#9  0x0000000180190953 in __srget_r () from /usr/bin/cygwin1.dll
#10 0x00000001801197eb in _sigfe () from /usr/bin/cygwin1.dll
#11 0x00000001004af92d in __sgetc_r (__p=0x1801fc7b8 <reent_data+1336>, __ptr=0xffffd680) at /usr/include/stdio.h:671
#12 _getchar_unlocked () at /usr/include/stdio.h:747
#13 kbd_buffer_get_event (used_mouse_menu=<optimized out>, end_time=0xffffa8f0, kbp=<synthetic pointer>)
    at ../../src/keyboard.c:3978
#14 read_event_from_main_queue (used_mouse_menu=<optimized out>, local_getcjmp=<optimized out>,
    end_time=<optimized out>) at ../../src/keyboard.c:2309
#15 read_decoded_event_from_main_queue (used_mouse_menu=<optimized out>, prev_event=<optimized out>,
    local_getcjmp=<optimized out>, end_time=<optimized out>) at ../../src/keyboard.c:2372
#16 read_char (commandflag=<optimized out>, commandflag@entry=0, map=<optimized out>, map@entry=0x0,
    prev_event=<optimized out>, prev_event@entry=0x30, used_mouse_menu=<optimized out>, used_mouse_menu@entry=0x0,
    end_time=<optimized out>) at ../../src/keyboard.c:3003
#17 0x0000000100553ac2 in read_filtered_event (no_switch_frame=no_switch_frame@entry=false,
    ascii_required=ascii_required@entry=false, error_nonascii=error_nonascii@entry=false,
    input_method=input_method@entry=false, seconds=seconds@entry=0x6ffff4c8337) at ../../src/lread.c:849
#18 0x0000000100553ebd in Fread_event (prompt=0x0, inherit_input_method=0x0, seconds=0x6ffff4c8337)
    at ../../src/lread.c:999
#19 0x000000010056b52a in exec_byte_code (fun=<optimized out>, fun@entry=0x6ffff871455, args_template=<optimized out>,
    nargs=<optimized out>, nargs@entry=-5260204364768739327, args=<optimized out>, args@entry=0x6ffff040850)
    at ../../src/bytecode.c:815
#20 0x000000010052ac4e in fetch_and_exec_byte_code (args=0x6ffff040850, nargs=-5260204364768739327,
    args_template=<optimized out>, fun=0x6ffff871455) at ../../src/eval.c:3094
#21 funcall_lambda (fun=0x6ffff871455, nargs=-5260204364768739327, nargs@entry=1,
    arg_vector=arg_vector@entry=0x6ffff040850) at ../../src/eval.c:3166
#22 0x000000010052b2d8 in funcall_general (fun=<optimized out>, numargs=numargs@entry=1, args=args@entry=0x6ffff040850)
    at ../../src/eval.c:2970
#23 0x000000010052b49d in Ffuncall (nargs=nargs@entry=2, args=args@entry=0x6ffff040848) at ../../src/eval.c:3008
#24 0x000000010052b9d3 in Fapply (nargs=2, args=0x6ffff040848) at ../../src/eval.c:2636
#25 0x000000010056b52a in exec_byte_code (fun=<optimized out>, fun@entry=0x600296135, args_template=<optimized out>,
    nargs=<optimized out>, nargs@entry=-864691128455135230, args=<optimized out>, args@entry=0xffffacb8)
    at ../../src/bytecode.c:815
#26 0x000000010052ac4e in fetch_and_exec_byte_code (args=0xffffacb8, nargs=-864691128455135230,
    args_template=<optimized out>, fun=0x600296135) at ../../src/eval.c:3094
#27 funcall_lambda (fun=0x600296135, nargs=-864691128455135230, nargs@entry=2, arg_vector=arg_vector@entry=0xffffacb8)
    at ../../src/eval.c:3166
#28 0x000000010052b2d8 in funcall_general (fun=<optimized out>, numargs=numargs@entry=2, args=args@entry=0xffffacb8)
    at ../../src/eval.c:2970
#29 0x000000010052b49d in Ffuncall (nargs=nargs@entry=3, args=args@entry=0xffffacb0) at ../../src/eval.c:3008
#30 0x000000010052b860 in Fapply (nargs=nargs@entry=2, args=args@entry=0xffffad60) at ../../src/eval.c:2679
#31 0x000000010052ba8c in apply1 (fn=<optimized out>, arg=<optimized out>) at ../../src/eval.c:2895
#32 0x0000000100528bf5 in internal_condition_case_1 (bfun=bfun@entry=0x10056e710 <read_process_output_call>,
    arg=0x6ffff021183, handlers=handlers@entry=0x0, hfun=hfun@entry=0x10056e650 <read_process_output_error_handler>)
    at ../../src/eval.c:1510
#33 0x000000010056eae9 in read_and_dispose_of_process_output (coding=<optimized out>, nbytes=3341,
    chars=<optimized out>, p=0x100acaa8b <initial_argv+3>) at ../../src/process.c:6320
#34 read_process_output (proc=proc@entry=0x6002bac45, channel=channel@entry=7) at ../../src/process.c:6230
#35 0x00000001005774b2 in wait_reading_process_output (time_limit=time_limit@entry=0, nsecs=nsecs@entry=100000000,
    read_kbd=<optimized out>, read_kbd@entry=0, do_display=do_display@entry=false, wait_for_cell=<optimized out>,
    wait_for_cell@entry=0x0, wait_proc=<optimized out>, wait_proc@entry=0x0, just_wait_proc=<optimized out>,
    just_wait_proc@entry=0) at ../../src/process.c:5914
#36 0x0000000100402bdb in Fsleep_for (seconds=<optimized out>, milliseconds=<optimized out>) at ../../src/dispnew.c:6231
#37 0x000000010056b52a in exec_byte_code (fun=<optimized out>, fun@entry=0x60025a68d, args_template=<optimized out>,
    nargs=<optimized out>, nargs@entry=792633534417207297, args=<optimized out>, args@entry=0xffffc490)
    at ../../src/bytecode.c:815
#38 0x000000010052ac4e in fetch_and_exec_byte_code (args=0xffffc490, nargs=792633534417207297,
    args_template=<optimized out>, fun=0x60025a68d) at ../../src/eval.c:3094
#39 funcall_lambda (fun=0x60025a68d, fun@entry=0x100a457c8 <current_thread>, nargs=792633534417207297, nargs@entry=1,
    arg_vector=arg_vector@entry=0xffffc490) at ../../src/eval.c:3166
#40 0x000000010052f38e in apply_lambda (fun=0x100a457c8 <current_thread>, fun@entry=0x60025a68d, args=<optimized out>,
    count=..., count@entry=...) at ../../src/eval.c:3116
#41 0x000000010052a283 in eval_sub (form=form@entry=0x6ffff031833) at ../../src/eval.c:2601
#42 0x00000001005301f2 in Feval (form=0x6ffff031833, lexical=<optimized out>) at ../../src/eval.c:2375
#43 0x000000010056b52a in exec_byte_code (fun=<optimized out>, fun@entry=0x6ffff80387d, args_template=<optimized out>,
    nargs=<optimized out>, nargs@entry=-4971973988617027584, args=<optimized out>, args@entry=0xffffc720)
    at ../../src/bytecode.c:815
#44 0x000000010052ac4e in fetch_and_exec_byte_code (args=0xffffc720, nargs=-4971973988617027584,
    args_template=<optimized out>, fun=0x6ffff80387d) at ../../src/eval.c:3094
#45 funcall_lambda (fun=0x6ffff80387d, fun@entry=0x100a457c8 <current_thread>, nargs=-4971973988617027584,
    nargs@entry=0, arg_vector=arg_vector@entry=0xffffc720) at ../../src/eval.c:3166
#46 0x000000010052f38e in apply_lambda (fun=0x100a457c8 <current_thread>, fun@entry=0x6ffff80387d,
    args=<optimized out>, count=..., count@entry=...) at ../../src/eval.c:3116
#47 0x000000010052a283 in eval_sub (form=form@entry=0x6ffffc2d66b) at ../../src/eval.c:2601
#48 0x00000001005301f2 in Feval (form=0x6ffffc2d66b, lexical=<optimized out>) at ../../src/eval.c:2375
#49 0x0000000100528b5b in internal_condition_case (bfun=bfun@entry=0x1004a1da0 <top_level_2>,
    handlers=handlers@entry=0x90, hfun=hfun@entry=0x1004a80e0 <cmd_error>) at ../../src/eval.c:1486
#50 0x00000001004a482d in top_level_1 (ignore=<optimized out>) at ../../src/keyboard.c:1174
#51 0x0000000100528af9 in internal_catch (tag=tag@entry=0xdb00, func=func@entry=0x1004a47d0 <top_level_1>,
    arg=arg@entry=0x0) at ../../src/eval.c:1209
#52 0x00000001004a1cd8 in command_loop () at ../../src/keyboard.c:1134
#53 0x00000001004a7c36 in recursive_edit_1 () at ../../src/keyboard.c:744
#54 0x00000001004a7ff9 in Frecursive_edit () at ../../src/keyboard.c:827
#55 0x00000001005cf75b in main (argc=<optimized out>, argv=<optimized out>) at ../../src/emacs.c:2625
(gdb) thread 2
[Switching to thread 2 (Thread 1000.0xe8c)]
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf9985783 in ReadFile () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x000000018012037a in wait_sig(void*) () from /usr/bin/cygwin1.dll
#3  0x0000000180044893 in cygthread::callfunc(bool) () from /usr/bin/cygwin1.dll
#4  0x0000000180044e4a in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#5  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#6  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#7  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#8  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 3
[Switching to thread 3 (Thread 1000.0x1248)]
#0  0x00007ffbfbfad734 in ntdll!ZwFsControlFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad734 in ntdll!ZwFsControlFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf99c8166 in KERNELBASE!ConnectNamedPipe () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x00000001800a282e in fhandler_pty_master::pty_master_thread() () from /usr/bin/cygwin1.dll
#3  0x0000000180044893 in cygthread::callfunc(bool) () from /usr/bin/cygwin1.dll
#4  0x0000000180044e4a in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#5  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#6  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#7  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#8  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 4
[Switching to thread 4 (Thread 1000.0x1594)]
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf9985783 in ReadFile () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x00000001800a41f3 in fhandler_pty_master::pty_master_fwd_thread() () from /usr/bin/cygwin1.dll
#3  0x0000000180044893 in cygthread::callfunc(bool) () from /usr/bin/cygwin1.dll
#4  0x0000000180044e4a in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#5  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#6  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#7  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#8  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 5
[Switching to thread 5 (Thread 1000.0x84c)]
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf9985783 in ReadFile () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x00000001800ebb04 in proc_waiter(void*) () from /usr/bin/cygwin1.dll
#3  0x0000000180044893 in cygthread::callfunc(bool) () from /usr/bin/cygwin1.dll
#4  0x0000000180044e4a in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#5  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#6  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#7  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#8  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 6
[Switching to thread 6 (Thread 1000.0x8e8)]
#0  0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf99730ce in WaitForSingleObjectEx () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x0000000180044e81 in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#3  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#4  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#5  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#6  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 7
[Switching to thread 7 (Thread 1000.0xd98)]
#0  0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad094 in ntdll!ZwWaitForSingleObject () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf99730ce in WaitForSingleObjectEx () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x0000000180044e81 in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#3  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#4  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#5  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#6  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#7  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 8
[Switching to thread 8 (Thread 1000.0x16e4)]
#0  0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbfbfdcbee in ntdll!DbgUiRemoteBreakin () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#2  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#3  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#4  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)


Stack traces in emacsclient.exe:

Attaching to program `/home/bruno/emacs/build-cygwin64/lib-src/emacsclient', process 1524
[New Thread 1524.0x14fc]
[New Thread 1524.0xaa8]
[New Thread 1524.0x16e0]
0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) info threads
  Id   Target Id         Frame
* 3    Thread 1524.0x16e0 0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  2    Thread 1524.0xaa8 0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
  1    Thread 1524.0x14fc 0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects ()
   from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) thread 1
[Switching to thread 1 (Thread 1524.0x14fc)]
#0  0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfadb64 in ntdll!ZwWaitForMultipleObjects () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf99a1be0 in WaitForMultipleObjectsEx () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x0000000180093f5c in fhandler_socket::wait_for_events(long, unsigned int) [clone .part.51] ()
   from /usr/bin/cygwin1.dll
#3  0x0000000180094443 in fhandler_socket::recvfrom(void*, unsigned long, int, sockaddr*, int*) ()
   from /usr/bin/cygwin1.dll
#4  0x00000001800d0293 in cygwin_recv () from /usr/bin/cygwin1.dll
#5  0x00000001801197eb in _sigfe () from /usr/bin/cygwin1.dll
#6  0x00000001004034da in main (argc=4, argv=0xffffcc40) at ../../lib-src/emacsclient.c:2161
(gdb) thread 2
[Switching to thread 2 (Thread 1524.0xaa8)]
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfad0d4 in ntdll!ZwReadFile () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbf9985783 in ReadFile () from /cygdrive/c/WINDOWS/System32/KERNELBASE.dll
#2  0x000000018012037a in wait_sig(void*) () from /usr/bin/cygwin1.dll
#3  0x0000000180044893 in cygthread::callfunc(bool) () from /usr/bin/cygwin1.dll
#4  0x0000000180044e4a in cygthread::stub(void*) () from /usr/bin/cygwin1.dll
#5  0x0000000180045863 in _cygtls::call2(unsigned int (*)(void*, void*), void*, void*) () from /usr/bin/cygwin1.dll
#6  0x0000000180045914 in _cygtls::call(unsigned int (*)(void*, void*), void*) () from /usr/bin/cygwin1.dll
#7  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#8  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#9  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)
(gdb) thread 3
[Switching to thread 3 (Thread 1524.0x16e0)]
#0  0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
(gdb) where
#0  0x00007ffbfbfb0b41 in ntdll!DbgBreakPoint () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#1  0x00007ffbfbfdcbee in ntdll!DbgUiRemoteBreakin () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#2  0x00007ffbfa6a7614 in KERNEL32!BaseThreadInitThunk () from /cygdrive/c/WINDOWS/System32/KERNEL32.DLL
#3  0x00007ffbfbf626b1 in ntdll!RtlUserThreadStart () from /cygdrive/c/WINDOWS/SYSTEM32/ntdll.dll
#4  0x0000000000000000 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)








^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-16 11:54 ` Eli Zaretskii
  2023-08-16 13:58   ` Bruno Haible
@ 2023-08-16 15:23   ` Ken Brown
  2023-08-16 17:49     ` Ken Brown
  1 sibling, 1 reply; 12+ messages in thread
From: Ken Brown @ 2023-08-16 15:23 UTC (permalink / raw)
  To: Eli Zaretskii, Bruno Haible; +Cc: 65325

On 8/16/2023 7:54 AM, Eli Zaretskii wrote:
>> From: Bruno Haible <bruno@clisp.org>
>> Date: Wed, 16 Aug 2023 00:08:08 +0200
>>
>> Building Emacs (git sources from today) on Cygwin 2.9.0/x86_64:

This is a pretty old Cygwin release.

>> 1. I configured in a subdirectory (VPATH build) with options
>>       --disable-silent-rules --without-all --without-x
>> 2. "make" succeeds.
>> 3. "make check" leads to a process that is stuck, does not continue
>>     for several hours. It does not eat much CPU time, but nevertheless,
>>     something is blocked. Log file 'make-check.log' is attached.
> 
> Thanks.  Alas, the maintainer of Cygwin Emacs (CC'ed) has been silent
> for quite some time, so I'm not sure when and how this could be
> addressed.

I'll test this using the current Cygwin release.

Ken





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-16 15:23   ` Ken Brown
@ 2023-08-16 17:49     ` Ken Brown
  2023-08-18 22:02       ` Ken Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Ken Brown @ 2023-08-16 17:49 UTC (permalink / raw)
  To: Eli Zaretskii, Bruno Haible; +Cc: 65325

On 8/16/2023 11:23 AM, Ken Brown wrote:
> On 8/16/2023 7:54 AM, Eli Zaretskii wrote:
>>> From: Bruno Haible <bruno@clisp.org>
>>> Date: Wed, 16 Aug 2023 00:08:08 +0200
>>>
>>> Building Emacs (git sources from today) on Cygwin 2.9.0/x86_64:
> 
> This is a pretty old Cygwin release.
> 
>>> 1. I configured in a subdirectory (VPATH build) with options
>>>       --disable-silent-rules --without-all --without-x
>>> 2. "make" succeeds.
>>> 3. "make check" leads to a process that is stuck, does not continue
>>>     for several hours. It does not eat much CPU time, but nevertheless,
>>>     something is blocked. Log file 'make-check.log' is attached.
>>
>> Thanks.  Alas, the maintainer of Cygwin Emacs (CC'ed) has been silent
>> for quite some time, so I'm not sure when and how this could be
>> addressed.
> 
> I'll test this using the current Cygwin release.

I can reproduce the hang.  But I don't get the hang in the default build 
on my system (no configure options).  I'll have to play with the 
configure options and try to figure out what's going on.

Thanks for the report, Bruno.

Ken





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-16 17:49     ` Ken Brown
@ 2023-08-18 22:02       ` Ken Brown
  2023-08-19  6:15         ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Ken Brown @ 2023-08-18 22:02 UTC (permalink / raw)
  To: Eli Zaretskii, Bruno Haible; +Cc: 65325

On 8/16/2023 1:49 PM, Ken Brown wrote:
> On 8/16/2023 11:23 AM, Ken Brown wrote:
>> On 8/16/2023 7:54 AM, Eli Zaretskii wrote:
>>>> From: Bruno Haible <bruno@clisp.org>
>>>> Date: Wed, 16 Aug 2023 00:08:08 +0200
>>>>
>>>> Building Emacs (git sources from today) on Cygwin 2.9.0/x86_64:
>>
>> This is a pretty old Cygwin release.
>>
>>>> 1. I configured in a subdirectory (VPATH build) with options
>>>>       --disable-silent-rules --without-all --without-x
>>>> 2. "make" succeeds.
>>>> 3. "make check" leads to a process that is stuck, does not continue
>>>>     for several hours. It does not eat much CPU time, but nevertheless,
>>>>     something is blocked. Log file 'make-check.log' is attached.
>>>
>>> Thanks.  Alas, the maintainer of Cygwin Emacs (CC'ed) has been silent
>>> for quite some time, so I'm not sure when and how this could be
>>> addressed.
>>
>> I'll test this using the current Cygwin release.
> 
> I can reproduce the hang.  But I don't get the hang in the default build 
> on my system (no configure options).  I'll have to play with the 
> configure options and try to figure out what's going on.

OK, the hang in server-tests.el [and a similar hang in 
keyboard-tests.el] occurs when getchar is called at keyboard.c:3978. 
This call only occurs if dbus, file notification, and threads are all 
disabled, i.e., if the configure options without-dbus, 
without-file-notification, and without-threads are all specified or 
implied.  I don't understand the keyboard code well enough to know (a) 
why we reach that call to getchar in the context of the hanging tests 
and (b) why getchar is only called in the absence of dbus, file 
notification, and threads.

I can work around the problem by always avoiding that getchar call on 
Cygwin (i.e., by adding "&& !defined CYGWIN" at line 3972).  With that 
change, all tests pass on Cygwin with Bruno's configure options.  But I 
don't want to make that change without understanding what's going on. 
Can anyone help?

Ken






^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-18 22:02       ` Ken Brown
@ 2023-08-19  6:15         ` Eli Zaretskii
  2023-08-19 16:43           ` Ken Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2023-08-19  6:15 UTC (permalink / raw)
  To: Ken Brown; +Cc: 65325, bruno

> Date: Fri, 18 Aug 2023 18:02:46 -0400
> From: Ken Brown <kbrown@cornell.edu>
> Cc: 65325@debbugs.gnu.org
> 
> > I can reproduce the hang.  But I don't get the hang in the default build 
> > on my system (no configure options).  I'll have to play with the 
> > configure options and try to figure out what's going on.
> 
> OK, the hang in server-tests.el [and a similar hang in 
> keyboard-tests.el] occurs when getchar is called at keyboard.c:3978. 
> This call only occurs if dbus, file notification, and threads are all 
> disabled, i.e., if the configure options without-dbus, 
> without-file-notification, and without-threads are all specified or 
> implied.  I don't understand the keyboard code well enough to know (a) 
> why we reach that call to getchar in the context of the hanging tests 
> and (b) why getchar is only called in the absence of dbus, file 
> notification, and threads.

Because we have no other way to read input in such a build.  The code
we have there obviously cannot handle anything but character input
from stdin, so it is a small wonder that it hangs in an ERT test.

I think this is a red herring: we should skip these tests if none of
those 3 features is available.  (We could also rewrite the tests to
support such a build, but I have very little sympathy for people who
build Emacs --without-all and still want to run all the test suite
successfully, and thus I don't think this would be a worthwhile
investment of our energy and resources.)

> I can work around the problem by always avoiding that getchar call on 
> Cygwin (i.e., by adding "&& !defined CYGWIN" at line 3972).  With that 
> change, all tests pass on Cygwin with Bruno's configure options.  But I 
> don't want to make that change without understanding what's going on. 
> Can anyone help?

I don't think it's a Cygwin-only failure.  But if it is, it is also OK
to skip these tests only on Cygwin, in addition to testing the absence
of those 3 features.

Thanks.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-19  6:15         ` Eli Zaretskii
@ 2023-08-19 16:43           ` Ken Brown
  2023-08-19 17:02             ` Bruno Haible
  0 siblings, 1 reply; 12+ messages in thread
From: Ken Brown @ 2023-08-19 16:43 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65325, bruno

On 8/19/2023 2:15 AM, Eli Zaretskii wrote:
>> Date: Fri, 18 Aug 2023 18:02:46 -0400
>> From: Ken Brown <kbrown@cornell.edu>
>> Cc: 65325@debbugs.gnu.org
>>
>>> I can reproduce the hang.  But I don't get the hang in the default build
>>> on my system (no configure options).  I'll have to play with the
>>> configure options and try to figure out what's going on.
>>
>> OK, the hang in server-tests.el [and a similar hang in
>> keyboard-tests.el] occurs when getchar is called at keyboard.c:3978.
>> This call only occurs if dbus, file notification, and threads are all
>> disabled, i.e., if the configure options without-dbus,
>> without-file-notification, and without-threads are all specified or
>> implied.  I don't understand the keyboard code well enough to know (a)
>> why we reach that call to getchar in the context of the hanging tests
>> and (b) why getchar is only called in the absence of dbus, file
>> notification, and threads.
> 
> Because we have no other way to read input in such a build.  The code
> we have there obviously cannot handle anything but character input
> from stdin, so it is a small wonder that it hangs in an ERT test.
> 
> I think this is a red herring: we should skip these tests if none of
> those 3 features is available.  (We could also rewrite the tests to
> support such a build, but I have very little sympathy for people who
> build Emacs --without-all and still want to run all the test suite
> successfully, and thus I don't think this would be a worthwhile
> investment of our energy and resources.)
> 
>> I can work around the problem by always avoiding that getchar call on
>> Cygwin (i.e., by adding "&& !defined CYGWIN" at line 3972).  With that
>> change, all tests pass on Cygwin with Bruno's configure options.  But I
>> don't want to make that change without understanding what's going on.
>> Can anyone help?
> 
> I don't think it's a Cygwin-only failure.  But if it is, it is also OK
> to skip these tests only on Cygwin, in addition to testing the absence
> of those 3 features.

Sounds good to me.  So the first step is find out if this failure is 
Cygwin-only.  Bruno, have you tested a build --without-all on other 
platforms?

Ken





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-19 16:43           ` Ken Brown
@ 2023-08-19 17:02             ` Bruno Haible
  2023-08-19 18:25               ` Ken Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Bruno Haible @ 2023-08-19 17:02 UTC (permalink / raw)
  To: Eli Zaretskii, Ken Brown; +Cc: 65325

Ken Brown wrote:
> So the first step is find out if this failure is 
> Cygwin-only.  Bruno, have you tested a build --without-all on other 
> platforms?

Yes, I've tested a current Emacs git on several other platforms, with
--without-all --without-x. Cygwin is the only one where 'server-tests' hung.

Bruno








^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-19 17:02             ` Bruno Haible
@ 2023-08-19 18:25               ` Ken Brown
  2023-08-19 19:54                 ` Eli Zaretskii
  0 siblings, 1 reply; 12+ messages in thread
From: Ken Brown @ 2023-08-19 18:25 UTC (permalink / raw)
  To: Bruno Haible, Eli Zaretskii; +Cc: 65325

[-- Attachment #1: Type: text/plain, Size: 395 bytes --]

On 8/19/2023 1:02 PM, Bruno Haible wrote:
> Ken Brown wrote:
>> So the first step is find out if this failure is
>> Cygwin-only.  Bruno, have you tested a build --without-all on other
>> platforms?
> 
> Yes, I've tested a current Emacs git on several other platforms, with
> --without-all --without-x. Cygwin is the only one where 'server-tests' hung.

OK, thanks.  Eli, how's the attached?

Ken

[-- Attachment #2: 0001-Skip-hanging-tests-on-Cygwin-bug-65325.patch --]
[-- Type: text/plain, Size: 2550 bytes --]

From f58d01e01e095b18a9c64c0bab3acd79fd4ba96f Mon Sep 17 00:00:00 2001
From: Ken Brown <kbrown@cornell.edu>
Date: Sat, 19 Aug 2023 14:18:57 -0400
Subject: [PATCH] Skip hanging tests on Cygwin (bug#65325)

* test/lisp/server-tests.el (server-tests/can-create-frames-p):
Define to be nil on Cygwin unless Emacs has at least one of the
features gfilenotify, dbus, or threads.  This causes three tests
to be skipped.

* test/src/keyboard-tests.el (keyboard-unread-command-events):
Skip on Cygwin unless Emacs has at least one of the features
gfilenotify, dbus, or threads.
---
 test/lisp/server-tests.el  | 12 +++++++++---
 test/src/keyboard-tests.el |  5 +++++
 2 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/test/lisp/server-tests.el b/test/lisp/server-tests.el
index ffafa74925f1..de1aa80c272d 100644
--- a/test/lisp/server-tests.el
+++ b/test/lisp/server-tests.el
@@ -25,12 +25,18 @@
 
 (defconst server-tests/can-create-frames-p
   (and (not (memq system-type '(windows-nt ms-dos)))
-       (not (member (getenv "TERM") '("dumb" "" nil))))
+       (not (member (getenv "TERM") '("dumb" "" nil)))
+       (or (not (eq system-type 'cygwin))
+           (featurep 'gfilenotify)
+           (featurep 'dbus)
+           (featurep 'threads)))
   "Non-nil if we can create a new frame in the tests.
 Some tests below need to create new frames for the emacsclient.
 However, this doesn't work on all platforms.  In particular,
-MS-Windows fails to create frames from a batch Emacs session.  In
-cases like that, we just skip the test.")
+MS-Windows fails to create frames from a batch Emacs session.
+The same is true on Cygwin unless Emacs has at least one of the
+features gfilenotify, dbus, or threads (bug#65325).  In cases
+like that, we just skip the test.")
 
 (defconst server-tests/max-wait-time 5
   "The maximum time to wait in `server-tests/wait-until', in seconds.")
diff --git a/test/src/keyboard-tests.el b/test/src/keyboard-tests.el
index 3393c1d90188..bbb9c19e2e73 100644
--- a/test/src/keyboard-tests.el
+++ b/test/src/keyboard-tests.el
@@ -23,6 +23,11 @@
 
 (ert-deftest keyboard-unread-command-events ()
   "Test `unread-command-events'."
+  ;; Avoid hang on Cygwin; see bug#65325.
+  (skip-unless (or (not (eq system-type 'cygwin))
+                   (featurep 'gfilenotify)
+                   (featurep 'dbus)
+                   (featurep 'threads)))
   (let ((unread-command-events nil))
     (should (equal (progn (push ?\C-a unread-command-events)
                           (read-event nil nil 1))
-- 
2.39.0


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-19 18:25               ` Ken Brown
@ 2023-08-19 19:54                 ` Eli Zaretskii
  2023-08-19 20:58                   ` Ken Brown
  0 siblings, 1 reply; 12+ messages in thread
From: Eli Zaretskii @ 2023-08-19 19:54 UTC (permalink / raw)
  To: Ken Brown; +Cc: 65325, bruno

> Date: Sat, 19 Aug 2023 14:25:33 -0400
> Cc: 65325@debbugs.gnu.org
> From: Ken Brown <kbrown@cornell.edu>
> 
> > Yes, I've tested a current Emacs git on several other platforms, with
> > --without-all --without-x. Cygwin is the only one where 'server-tests' hung.
> 
> OK, thanks.  Eli, how's the attached?

Fine by me, thanks.





^ permalink raw reply	[flat|nested] 12+ messages in thread

* bug#65325: "make check" hangs on Cygwin
  2023-08-19 19:54                 ` Eli Zaretskii
@ 2023-08-19 20:58                   ` Ken Brown
  0 siblings, 0 replies; 12+ messages in thread
From: Ken Brown @ 2023-08-19 20:58 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: 65325-done, bruno

On 8/19/2023 3:54 PM, Eli Zaretskii wrote:
>> Date: Sat, 19 Aug 2023 14:25:33 -0400
>> Cc: 65325@debbugs.gnu.org
>> From: Ken Brown <kbrown@cornell.edu>
>> OK, thanks.  Eli, how's the attached?
> 
> Fine by me, thanks.

Done.  Closing.





^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2023-08-19 20:58 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-15 22:08 bug#65325: "make check" hangs on Cygwin Bruno Haible
2023-08-16 11:54 ` Eli Zaretskii
2023-08-16 13:58   ` Bruno Haible
2023-08-16 15:23   ` Ken Brown
2023-08-16 17:49     ` Ken Brown
2023-08-18 22:02       ` Ken Brown
2023-08-19  6:15         ` Eli Zaretskii
2023-08-19 16:43           ` Ken Brown
2023-08-19 17:02             ` Bruno Haible
2023-08-19 18:25               ` Ken Brown
2023-08-19 19:54                 ` Eli Zaretskii
2023-08-19 20:58                   ` Ken Brown

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.