unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#65324: "make check" hangs on NetBSD 9.3
@ 2023-08-15 22:02 Bruno Haible
  2023-09-01 20:23 ` Stefan Kangas
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-08-15 22:02 UTC (permalink / raw)
  To: 65324

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

Building Emacs (git sources from today) on NetBSD 9.3/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 eats 100% CPU time
   over several hours. Log file 'make-check.log' is attached.
   This process can be killed through Ctrl-C.

Bruno

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

checking for xcrun... no
checking for GNU Make... gmake
checking build system type... x86_64-unknown-netbsd9.3
checking host system type... x86_64-unknown-netbsd9.3
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for 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 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... no
checking for coff.h... no
checking for pty.h... no
checking for sys/resource.h... yes
checking for sys/utsname.h... yes
checking for pwd.h... yes
checking for util.h... yes
checking for sanitizer/lsan_interface.h... yes
checking for sanitizer/asan_interface.h... yes
checking for sanitizer/common_interface_defs.h... yes
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... yes
checking for linux/xattr.h... no
checking for stdio_ext.h... no
checking for sys/vfs.h... no
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... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking how to run the C preprocessor... 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 ar... ar
checking for ranlib... ranlib
checking for gcc option to enable large file support... none needed
checking for gcc option for timestamps after 2038... none needed
checking for g++... g++
checking whether the compiler supports GNU C++... yes
checking whether g++ accepts -g... yes
checking for g++ option to enable C++11 features... none needed
checking whether 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... /home/bruno/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... -lm
checking for struct passwd.pw_gecos... yes
checking for pkg-config... no
checking for ADDR_NO_RANDOMIZE... no
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... yes
checking for struct ifreq.ifr_flags... yes
checking for struct ifreq.ifr_hwaddr... no
checking for struct ifreq.ifr_netmask... no
checking for struct ifreq.ifr_broadaddr... yes
checking for struct ifreq.ifr_addr... yes
checking for struct ifreq.ifr_addr.sa_len... yes
checking whether gcc understands -MMD -MF... yes
checking for 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... no
checking for realpath... yes
checking for lstat... yes
checking for fchmodat... yes
checking for lchmod... yes
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... no
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... -lpthread
checking for thread support... no
checking for getaddrinfo_a in -lanl... no
checking for malloc_trim... no
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... no
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... no
checking for cfmakeraw... yes
checking for cfsetspeed... yes
checking for __executable_start... yes
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... yes
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... no
checking for posix_openpt... yes
checking for library containing tputs... -lterminfo
checking whether -lterminfo 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... yes
checking for usable SIGIO... yes
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... no
checking for alloca... yes
checking for a race-free mkdir -p... ../build-aux/install-sh -c -d
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... no
checking for struct utmpx.ut_pid... yes
checking for struct utmp.ut_pid... no
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... no
checking for struct utmpx.ut_session... yes
checking for struct utmp.ut_session... no
checking for struct utmpx.ut_exit... yes
checking for struct utmp.ut_exit... no
checking for struct utmpx.ut_exit.ut_exit... no
checking for struct utmpx.ut_exit.e_exit... yes
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... yes
checking for struct utmp.ut_exit.e_termination... no
checking whether sysinfo is declared... no
checking for sys/sysctl.h... yes
checking for sysctl... yes
checking whether lstat correctly handles trailing slash... yes
checking whether // is distinct from /... no
checking whether realpath works... yes
checking for faccessat... yes
checking for getcwd... yes
checking whether byte ordering is bigendian... no
checking if environ is properly declared... no
checking for complete errno.h... no
checking for EMULTIHOP value... yes
checking for ENOLINK value... yes
checking for EOVERFLOW value... yes
checking whether ctype.h defines __header_inline... no
checking for mode_t... yes
checking whether strmode is declared... yes
checking whether getline is declared... yes
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking for getopt.h... (cached) yes
checking for getopt_long_only... no
checking whether timespec_get is declared... yes
checking for timespec_get... yes
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... no
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... no
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... no
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>... yes
checking whether execvpe is declared... yes
checking whether clearerr_unlocked is declared... no
checking whether feof_unlocked is declared... no
checking whether ferror_unlocked is declared... no
checking whether fflush_unlocked is declared... no
checking whether fgets_unlocked is declared... no
checking whether fputc_unlocked is declared... no
checking whether fputs_unlocked is declared... no
checking whether fread_unlocked is declared... no
checking whether fwrite_unlocked is declared... no
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 static_assert... no
checking for __builtin_expect... yes
checking for byteswap.h... no
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) no
checking whether dup2 works... yes
checking for library containing backtrace_symbols_fd... -lexecinfo
checking for faccessat... (cached) yes
checking whether fchmodat works... yes
checking whether fcntl handles F_DUPFD correctly... yes
checking whether fcntl understands F_DUPFD_CLOEXEC... no
checking whether fdopendir is declared... yes
checking whether fdopendir works... yes
checking for flexible array member... yes
checking for __fpending... no
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... no
checking for statfs that truncates block counts... no
checking for futimens... yes
checking whether futimens works... no
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... no
checking for gettimeofday with POSIX signature... yes
checking whether the compiler supports the __inline keyword... yes
checking for gmp.h... no
checking for gmp/gmp.h... no
checking for memmem... yes
checking whether memmem works... yes
checking for mempcpy... no
checking for memrchr... yes
checking for explicit_memset... yes
checking for mkostemp... yes
checking for library containing nanosleep... none required
checking for working nanosleep... yes
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) yes
checking for sched_getaffinity_np... yes
checking for pstat_getdynamic... no
checking for sysmp... no
checking for sysctl... (cached) yes
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... 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... 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... yes
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... no
checking for variable-length arrays... yes
checking for rawmemchr... no
checking whether getdtablesize works... yes
checking for futimes... yes
checking for futimesat... no
checking for lutimes... yes
checking for futimens... (cached) yes
checking for utimensat... (cached) yes
checking whether open recognizes a trailing slash... yes
checking for __mktime_internal... no
checking for timer_getoverrun... yes
checking for 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-unknown-netbsd9.3'.

  Where should the build process find the source code?    ..
  What compiler should emacs be built with?               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?                         no
  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: 31939 bytes --]

[-- Attachment #4: make-check.log --]
[-- Type: text/x-log, Size: 8510 bytes --]

gmake -f Makefile check
gmake[1]: Entering directory '/home/bruno/emacs/build'
gmake actual-all || gmake advice-on-failure make-target=all exit-status=$?
gmake[2]: Entering directory '/home/bruno/emacs/build'
gmake -f Makefile actual-all
gmake[3]: Entering directory '/home/bruno/emacs/build'
gmake -C lib all
gmake[4]: Entering directory '/home/bruno/emacs/build/lib'
gmake[4]: Nothing to be done for 'all'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/lib'
gmake -C lib-src all
gmake[4]: Entering directory '/home/bruno/emacs/build/lib-src'
gmake[4]: Nothing to be done for 'all'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/lib-src'
gmake -C src BIN_DESTDIR=''/home/bruno/bin/'' \
	 ELN_DESTDIR='/home/bruno/lib/emacs/30.0.50/' all
gmake[4]: Entering directory '/home/bruno/emacs/build/src'
gmake -C ../admin/charsets all
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake -C ../admin/unidata charscript.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'charscript.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/unidata emoji-zwj.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'emoji-zwj.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/unidata all EMACS="../../src/bootstrap-emacs"
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/charsets cp51932.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'cp51932.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake -C ../admin/charsets eucjp-ms.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'eucjp-ms.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake[4]: Leaving directory '/home/bruno/emacs/build/src'
gmake -C lisp all
gmake[4]: Entering directory '/home/bruno/emacs/build/lisp'
gmake -C ../leim all EMACS="../src/emacs"
gmake[5]: Entering directory '/home/bruno/emacs/build/leim'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/leim'
gmake -C ../admin/grammars all EMACS="../../src/emacs"
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/grammars'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/grammars'
gmake[5]: Entering directory '/home/bruno/emacs/build/lisp'
gmake[5]: Nothing to be done for 'compile-targets'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/lisp'
'../src/emacs' -batch --no-site-file --no-site-lisp \
            -l ../../lisp/emacs-lisp/loaddefs-gen.elc \
    -f loaddefs-generate--emacs-batch ../../lisp ../../lisp/calc ../../lisp/calendar ../../lisp/cedet ../../lisp/cedet/ede ../../lisp/cedet/semantic ../../lisp/cedet/semantic/analyze ../../lisp/cedet/semantic/bovine ../../lisp/cedet/semantic/decorate ../../lisp/cedet/semantic/symref ../../lisp/cedet/semantic/wisent ../../lisp/cedet/srecode ../../lisp/emacs-lisp ../../lisp/emulation ../../lisp/erc ../../lisp/eshell ../../lisp/gnus ../../lisp/image ../../lisp/international ../../lisp/language ../../lisp/leim ../../lisp/leim/ja-dic ../../lisp/leim/quail ../../lisp/mail ../../lisp/mh-e ../../lisp/net ../../lisp/nxml ../../lisp/org ../../lisp/play ../../lisp/progmodes ../../lisp/textmodes ../../lisp/url ../../lisp/use-package ../../lisp/vc
  INFO     Scraping files for loaddefs... 
  INFO     Scraping files for loaddefs...done
  INFO     Scraping files for loaddefs... 
  INFO     Scraping files for loaddefs...done
gmake[5]: Entering directory '/home/bruno/emacs/build/lisp'
gmake[5]: Nothing to be done for 'compile-targets'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/lisp'
gmake -C ../leim generate-ja-dic EMACS="../src/emacs"
gmake[5]: Entering directory '/home/bruno/emacs/build/leim'
gmake[5]: Nothing to be done for 'generate-ja-dic'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/leim'
gmake compile-targets TARGETS="./leim/ja-dic/ja-dic.elc"
gmake[5]: Entering directory '/home/bruno/emacs/build/lisp'
gmake[5]: Nothing to be done for 'compile-targets'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/lisp'
gmake -C ../doc/misc org.texi modus-themes.texi
gmake[5]: Entering directory '/home/bruno/emacs/build/doc/misc'
gmake[5]: 'org.texi' is up to date.
gmake[5]: 'modus-themes.texi' is up to date.
gmake[5]: Leaving directory '/home/bruno/emacs/build/doc/misc'
gmake[4]: Leaving directory '/home/bruno/emacs/build/lisp'
gmake -C doc/lispref info
gmake[4]: Entering directory '/home/bruno/emacs/build/doc/lispref'
gmake[4]: Nothing to be done for 'info'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/doc/lispref'
gmake -C doc/lispintro info
gmake[4]: Entering directory '/home/bruno/emacs/build/doc/lispintro'
gmake[4]: Nothing to be done for 'info'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/doc/lispintro'
gmake -C doc/emacs info
gmake[4]: Entering directory '/home/bruno/emacs/build/doc/emacs'
gmake[4]: Nothing to be done for 'info'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/doc/emacs'
gmake -C doc/misc info
gmake[4]: Entering directory '/home/bruno/emacs/build/doc/misc'
gmake[4]: Nothing to be done for 'info'.
gmake[4]: Leaving directory '/home/bruno/emacs/build/doc/misc'
gmake -C src BIN_DESTDIR=''/home/bruno/bin/'' ELN_DESTDIR='/home/bruno/lib/emacs/30.0.50/'
gmake[4]: Entering directory '/home/bruno/emacs/build/src'
gmake -C ../admin/charsets all
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake -C ../admin/unidata charscript.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'charscript.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/unidata emoji-zwj.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'emoji-zwj.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/unidata all EMACS="../../src/bootstrap-emacs"
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/unidata'
gmake[5]: Nothing to be done for 'all'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/unidata'
gmake -C ../admin/charsets cp51932.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'cp51932.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake -C ../admin/charsets eucjp-ms.el
gmake[5]: Entering directory '/home/bruno/emacs/build/admin/charsets'
gmake[5]: Nothing to be done for 'eucjp-ms.el'.
gmake[5]: Leaving directory '/home/bruno/emacs/build/admin/charsets'
gmake[4]: Leaving directory '/home/bruno/emacs/build/src'
gmake[3]: Leaving directory '/home/bruno/emacs/build'
gmake[2]: Leaving directory '/home/bruno/emacs/build'
gmake sanity-check make-target=all
gmake[2]: Entering directory '/home/bruno/emacs/build'
gmake -f Makefile sanity-check
gmake[3]: Entering directory '/home/bruno/emacs/build'
gmake[3]: Leaving directory '/home/bruno/emacs/build'
gmake[2]: Leaving directory '/home/bruno/emacs/build'
gmake -C test check
gmake[2]: Entering directory '/home/bruno/emacs/build/test'
rm -f ./*.tmp
test ! -d ../../test/automated
gmake[3]: Entering directory '/home/bruno/emacs/build/test'
gmake[4]: Entering directory '/home/bruno/emacs/build/test'
LANG=C EMACS_TEST_DIRECTORY=/home/bruno/emacs/test   "../src/emacs"  --no-init-file --no-site-file --no-site-lisp -L ":../../test"  --batch -f batch-byte-compile ../../test/lisp/net/tramp-tests.el
../../build-aux/install-sh -c -d lisp/net/
HOME=/nonexistent LANG=C EMACS_TEST_DIRECTORY=/home/bruno/emacs/test   "../src/emacs"  --no-init-file --no-site-file --no-site-lisp -L ":../../test"  \
  -l ert  -l lisp/net/tramp-tests \
  --batch --eval '(ert-run-tests-batch-and-exit (quote (not (or (tag :expensive-test) (tag :unstable) (tag :nativecomp)))))' > lisp/net/tramp-tests.log 2>&1 || { STAT=$?; cat lisp/net/tramp-tests.log; exit $STAT; }

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

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-08-15 22:02 bug#65324: "make check" hangs on NetBSD 9.3 Bruno Haible
@ 2023-09-01 20:23 ` Stefan Kangas
  2023-09-02 11:24   ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Stefan Kangas @ 2023-09-01 20:23 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Michael Albinus

Bruno Haible <bruno@clisp.org> writes:

> Building Emacs (git sources from today) on NetBSD 9.3/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 eats 100% CPU time
>    over several hours. Log file 'make-check.log' is attached.
>    This process can be killed through Ctrl-C.

From the screenshot, this seems to be about Tramp.  Michael, could you
take a look at this?





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-01 20:23 ` Stefan Kangas
@ 2023-09-02 11:24   ` Michael Albinus
  2023-09-02 11:33     ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-02 11:24 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: 65324, Bruno Haible

Stefan Kangas <stefankangas@gmail.com> writes:

Hi,

> Bruno Haible <bruno@clisp.org> writes:
>
>> Building Emacs (git sources from today) on NetBSD 9.3/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 eats 100% CPU time
>>    over several hours. Log file 'make-check.log' is attached.
>>    This process can be killed through Ctrl-C.
>
> From the screenshot, this seems to be about Tramp.  Michael, could you
> take a look at this?

Yep. There should be a file test/lisp/net/tramp-tests.log which I would
like to see.

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 11:24   ` Michael Albinus
@ 2023-09-02 11:33     ` Bruno Haible
  2023-09-02 11:54       ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-02 11:33 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> There should be a file test/lisp/net/tramp-tests.log which I would
> like to see.

Here it is (attached).


[-- Attachment #2: tramp-tests.log --]
[-- Type: text/x-log, Size: 4854 bytes --]

Running 58 tests (2023-08-15 16:24:44+0200, selector `(not (or (tag :expensive-test) (tag :unstable) (tag :nativecomp)))')
Remote directory: `/mock::/tmp/'
   passed   1/58  tramp-test00-availability (0.546990 sec)
   passed   2/58  tramp-test01-file-name-syntax (0.035883 sec)
   passed   3/58  tramp-test02-file-name-dissect (0.011432 sec)
   passed   4/58  tramp-test03-file-name-defaults (0.007526 sec)
   passed   5/58  tramp-test03-file-name-host-rules (0.018104 sec)
   passed   6/58  tramp-test03-file-name-method-rules (0.336916 sec)
   passed   7/58  tramp-test04-substitute-in-file-name (0.001785 sec)
   passed   8/58  tramp-test05-expand-file-name (0.000466 sec)
   passed   9/58  tramp-test05-expand-file-name-relative (0.568107 sec)
   passed  10/58  tramp-test05-expand-file-name-top (0.252632 sec)
   passed  11/58  tramp-test06-directory-file-name (0.177744 sec)
   passed  12/58  tramp-test07-abbreviate-file-name (0.653796 sec)
   passed  13/58  tramp-test07-file-exists-p (0.412703 sec)
   passed  14/58  tramp-test08-file-local-copy (0.217375 sec)
   passed  15/58  tramp-test09-insert-file-contents (0.478404 sec)
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testEkGNI2
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testEkGNI2
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testEkGNI2
   passed  16/58  tramp-test10-write-region (1.219089 sec)
   passed  17/58  tramp-test10-write-region-file-precious-flag (0.333646 sec)
  skipped  18/58  tramp-test10-write-region-other-file-name-handler (0.003528 sec)
   passed  19/58  tramp-test11-copy-file (1.022185 sec)
   passed  20/58  tramp-test12-rename-file (0.870062 sec)
   passed  21/58  tramp-test13-make-directory (0.389147 sec)
   passed  22/58  tramp-test14-delete-directory (0.439508 sec)
   passed  23/58  tramp-test15-copy-directory (0.712157 sec)
   passed  24/58  tramp-test16-directory-files (0.287824 sec)
   passed  25/58  tramp-test16-file-expand-wildcards (0.218225 sec)
   passed  26/58  tramp-test17-dired-with-wildcards (0.493739 sec)
   passed  27/58  tramp-test17-insert-directory (0.466290 sec)
   passed  28/58  tramp-test17-insert-directory-one-file (0.434077 sec)
   passed  29/58  tramp-test18-file-attributes (1.715119 sec)
   passed  30/58  tramp-test19-directory-files-and-attributes (0.425644 sec)
   passed  31/58  tramp-test20-file-modes (0.434416 sec)
Test tramp-test21-file-links backtrace:
  signal(ert-test-failed (((should (string-equal (file-truename dir1) 
  ert-fail(((should (string-equal (file-truename dir1) (expand-file-na
  #f(compiled-function () #<bytecode 0x1962a00bc3a20f11>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test21-file-links :documentatio
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) (
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
  command-line()
  normal-top-level()
Test tramp-test21-file-links condition:
    (ert-test-failed
     ((should (string-equal (file-truename dir1) (expand-file-name dir1)))
      :form
      (string-equal
       #("/mock:netbsd93.bruno.haible.de:/tmp/" 6 30 (tramp-default t))
       #("/mock:netbsd93.bruno.haible.de:/tmp" 6 30 (tramp-default t)))
      :value nil :explanation
      (arrays-of-different-length 36 35
				  #("/mock:netbsd93.bruno.haible.de:/tmp/"
				    6 30 (tramp-default t))
				  #("/mock:netbsd93.bruno.haible.de:/tmp"
				    6 30 (tramp-default t))
				  first-mismatch-at 35)))
   FAILED  32/58  tramp-test21-file-links (0.833248 sec) at ../../test/lisp/net/tramp-tests.el:4112
   passed  33/58  tramp-test22-file-times (0.455977 sec)
   passed  34/58  tramp-test23-visited-file-modtime (0.259808 sec)
  skipped  35/58  tramp-test24-file-acl (0.004392 sec)
  skipped  36/58  tramp-test25-file-selinux (0.907309 sec)
   passed  37/58  tramp-test26-file-name-completion (0.716355 sec)
   passed  38/58  tramp-test26-interactive-file-name-completion (2.028312 sec)
   passed  39/58  tramp-test27-load (0.452010 sec)
   passed  40/58  tramp-test33-environment-variables-and-port-numbers (0.624586 sec)
   passed  41/58  tramp-test35-exec-path (0.520086 sec)
   passed  42/58  tramp-test35-remote-path (3.582669 sec)
   passed  43/58  tramp-test37-make-auto-save-file-name (0.217686 sec)
   passed  44/58  tramp-test38-find-backup-file-name (0.671460 sec)
   passed  45/58  tramp-test39-detect-external-change (1.776851 sec)
   passed  46/58  tramp-test39-make-lock-file-name (3.107568 sec)
   passed  47/58  tramp-test40-make-nearby-temp-file (0.445061 sec)

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 11:33     ` Bruno Haible
@ 2023-09-02 11:54       ` Michael Albinus
  2023-09-02 12:16         ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-02 11:54 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

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

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

> Here it is (attached).

Thanks.

>    FAILED  32/58  tramp-test21-file-links (0.833248 sec) at ../../test/lisp/net/tramp-tests.el:4112

Hmm, something else to investigate. Let's do it later.

>    passed  47/58  tramp-test40-make-nearby-temp-file (0.445061 sec)

The last passed test, so the problem happens in
tramp-test41-special-characters. Could you pls apply the appended patch,
and rerun? And I'll need the new tramp-tests.log file.

Btw, we skip the test already for macOS. Perhaps there is a similar
problem with NetBSD?

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 948 bytes --]

diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 50687dfe993..66ab42dafe0 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -7413,6 +7413,7 @@ tramp-test41-special-characters
   (skip-unless (not (tramp--test-rclone-p)))
   (skip-unless (not (or (eq system-type 'darwin) (tramp--test-macos-p))))

+  (tramp--test-instrument-test-case 10
   ;; Newlines, slashes and backslashes in file names are not
   ;; supported.  So we don't test.  And we don't test the tab
   ;; character on Windows or Cygwin, because the backslash is
@@ -7468,7 +7469,7 @@ tramp-test41-special-characters
     ;; Simplify test in order to speed up.
     (apply #'tramp--test-check-files
 	   (if (tramp--test-expensive-test-p)
-	       files (list (string-join files ""))))))
+	       files (list (string-join files "")))))))

 (tramp--test-deftest-with-stat tramp-test41-special-characters)


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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 11:54       ` Michael Albinus
@ 2023-09-02 12:16         ` Bruno Haible
  2023-09-02 14:08           ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-02 12:16 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> >    passed  47/58  tramp-test40-make-nearby-temp-file (0.445061 sec)
> 
> The last passed test, so the problem happens in
> tramp-test41-special-characters. Could you pls apply the appended patch,
> and rerun? And I'll need the new tramp-tests.log file.

Attached. It contains no new information. Should I try to stop some
processes and get stack traces using gdb? Or is this useless?

> Btw, we skip the test already for macOS. Perhaps there is a similar
> problem with NetBSD?

macOS is usually closer to FreeBSD than to NetBSD.
But how would I check that it's the same problem on NetBSD as on macOS?

Bruno

[-- Attachment #2: tramp-tests.log --]
[-- Type: text/x-log, Size: 4853 bytes --]

Running 58 tests (2023-09-02 13:58:38+0200, selector `(not (or (tag :expensive-test) (tag :unstable) (tag :nativecomp)))')
Remote directory: `/mock::/tmp/'
   passed   1/58  tramp-test00-availability (0.108944 sec)
   passed   2/58  tramp-test01-file-name-syntax (0.018410 sec)
   passed   3/58  tramp-test02-file-name-dissect (0.009282 sec)
   passed   4/58  tramp-test03-file-name-defaults (0.015043 sec)
   passed   5/58  tramp-test03-file-name-host-rules (0.015339 sec)
   passed   6/58  tramp-test03-file-name-method-rules (0.409891 sec)
   passed   7/58  tramp-test04-substitute-in-file-name (0.001356 sec)
   passed   8/58  tramp-test05-expand-file-name (0.000414 sec)
   passed   9/58  tramp-test05-expand-file-name-relative (0.411750 sec)
   passed  10/58  tramp-test05-expand-file-name-top (0.113761 sec)
   passed  11/58  tramp-test06-directory-file-name (0.463473 sec)
   passed  12/58  tramp-test07-abbreviate-file-name (0.745364 sec)
   passed  13/58  tramp-test07-file-exists-p (0.656689 sec)
   passed  14/58  tramp-test08-file-local-copy (0.330868 sec)
   passed  15/58  tramp-test09-insert-file-contents (0.442114 sec)
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testx1UgW2
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testx1UgW2
Wrote /mock:netbsd93.bruno.haible.de:/tmp/tramp-testx1UgW2
   passed  16/58  tramp-test10-write-region (1.135516 sec)
   passed  17/58  tramp-test10-write-region-file-precious-flag (0.312753 sec)
  skipped  18/58  tramp-test10-write-region-other-file-name-handler (0.003004 sec)
   passed  19/58  tramp-test11-copy-file (0.835732 sec)
   passed  20/58  tramp-test12-rename-file (0.573297 sec)
   passed  21/58  tramp-test13-make-directory (0.400480 sec)
   passed  22/58  tramp-test14-delete-directory (0.429925 sec)
   passed  23/58  tramp-test15-copy-directory (0.885794 sec)
   passed  24/58  tramp-test16-directory-files (0.325113 sec)
   passed  25/58  tramp-test16-file-expand-wildcards (0.418669 sec)
   passed  26/58  tramp-test17-dired-with-wildcards (0.334584 sec)
   passed  27/58  tramp-test17-insert-directory (0.661166 sec)
   passed  28/58  tramp-test17-insert-directory-one-file (0.511011 sec)
   passed  29/58  tramp-test18-file-attributes (1.600086 sec)
   passed  30/58  tramp-test19-directory-files-and-attributes (0.209252 sec)
   passed  31/58  tramp-test20-file-modes (0.406433 sec)
Test tramp-test21-file-links backtrace:
  signal(ert-test-failed (((should (string-equal (file-truename dir1) 
  ert-fail(((should (string-equal (file-truename dir1) (expand-file-na
  #f(compiled-function () #<bytecode 0x87ad0a7169acf2b>)()
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test21-file-links :documentatio
  ert-run-or-rerun-test(#s(ert--stats :selector ... :tests ... :test-m
  ert-run-tests((not (or (tag :expensive-test) (tag :unstable) (tag :n
  ert-run-tests-batch((not (or (tag :expensive-test) (tag :unstable) (
  ert-run-tests-batch-and-exit((not (or (tag :expensive-test) (tag :un
  eval((ert-run-tests-batch-and-exit '(not (or (tag :expensive-test) (
  command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
  command-line()
  normal-top-level()
Test tramp-test21-file-links condition:
    (ert-test-failed
     ((should (string-equal (file-truename dir1) (expand-file-name dir1)))
      :form
      (string-equal
       #("/mock:netbsd93.bruno.haible.de:/tmp/" 6 30 (tramp-default t))
       #("/mock:netbsd93.bruno.haible.de:/tmp" 6 30 (tramp-default t)))
      :value nil :explanation
      (arrays-of-different-length 36 35
				  #("/mock:netbsd93.bruno.haible.de:/tmp/"
				    6 30 (tramp-default t))
				  #("/mock:netbsd93.bruno.haible.de:/tmp"
				    6 30 (tramp-default t))
				  first-mismatch-at 35)))
   FAILED  32/58  tramp-test21-file-links (0.688655 sec) at ../../test/lisp/net/tramp-tests.el:4112
   passed  33/58  tramp-test22-file-times (0.491942 sec)
   passed  34/58  tramp-test23-visited-file-modtime (0.302241 sec)
  skipped  35/58  tramp-test24-file-acl (0.003178 sec)
  skipped  36/58  tramp-test25-file-selinux (0.636638 sec)
   passed  37/58  tramp-test26-file-name-completion (0.430077 sec)
   passed  38/58  tramp-test26-interactive-file-name-completion (2.013919 sec)
   passed  39/58  tramp-test27-load (0.604501 sec)
   passed  40/58  tramp-test33-environment-variables-and-port-numbers (0.539177 sec)
   passed  41/58  tramp-test35-exec-path (0.760462 sec)
   passed  42/58  tramp-test35-remote-path (3.764885 sec)
   passed  43/58  tramp-test37-make-auto-save-file-name (0.258334 sec)
   passed  44/58  tramp-test38-find-backup-file-name (0.736636 sec)
   passed  45/58  tramp-test39-detect-external-change (1.698374 sec)
   passed  46/58  tramp-test39-make-lock-file-name (2.461700 sec)
   passed  47/58  tramp-test40-make-nearby-temp-file (0.801766 sec)

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 12:16         ` Bruno Haible
@ 2023-09-02 14:08           ` Michael Albinus
  2023-09-02 15:25             ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-02 14:08 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

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

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

>> The last passed test, so the problem happens in
>> tramp-test41-special-characters. Could you pls apply the appended patch,
>> and rerun? And I'll need the new tramp-tests.log file.
>
> Attached. It contains no new information. Should I try to stop some
> processes and get stack traces using gdb? Or is this useless?

gdb won't help. I've extended the patch (appended), so it writes traces
to your tmp directory in parallel. Could you pls try?

There should be a file /tmp/*debug tramp mock netbsd93.bruno.haible.de*
which might tell us the story.

>> Btw, we skip the test already for macOS. Perhaps there is a similar
>> problem with NetBSD?
>
> macOS is usually closer to FreeBSD than to NetBSD.
> But how would I check that it's the same problem on NetBSD as on macOS?

No idea. I cannot test macOS or NetBSD myself.

> Bruno

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 981 bytes --]

diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 50687dfe993..de343596969 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -7413,6 +7413,8 @@ tramp-test41-special-characters
   (skip-unless (not (tramp--test-rclone-p)))
   (skip-unless (not (or (eq system-type 'darwin) (tramp--test-macos-p))))

+  (tramp--test-instrument-test-case 10
+  (setq tramp-debug-to-file t)
   ;; Newlines, slashes and backslashes in file names are not
   ;; supported.  So we don't test.  And we don't test the tab
   ;; character on Windows or Cygwin, because the backslash is
@@ -7468,7 +7470,7 @@ tramp-test41-special-characters
     ;; Simplify test in order to speed up.
     (apply #'tramp--test-check-files
 	   (if (tramp--test-expensive-test-p)
-	       files (list (string-join files ""))))))
+	       files (list (string-join files "")))))))

 (tramp--test-deftest-with-stat tramp-test41-special-characters)


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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 14:08           ` Michael Albinus
@ 2023-09-02 15:25             ` Bruno Haible
  2023-09-02 16:30               ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-02 15:25 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> gdb won't help. I've extended the patch (appended), so it writes traces
> to your tmp directory in parallel. Could you pls try?
> 
> There should be a file /tmp/*debug tramp mock netbsd93.bruno.haible.de*
> which might tell us the story.

Find attached the resulting log files. They don't have the file names that
you expected, but anyway.


[-- Attachment #2: netbsd93-tramp-logs.tar.gz --]
[-- Type: application/x-compressed-tar, Size: 2251 bytes --]

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 15:25             ` Bruno Haible
@ 2023-09-02 16:30               ` Michael Albinus
  2023-09-02 17:55                 ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-02 16:30 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

>> There should be a file /tmp/*debug tramp mock netbsd93.bruno.haible.de*
>> which might tell us the story.
>
> Find attached the resulting log files. They don't have the file names that
> you expected, but anyway.

These are the test files in "/tmp/tramp-testMWoYrx/". Not important.

I'm speaking about the debug file in /tmp (or wherever your temprary
directory is). A file name which starts with a star, and ends with a
star, as said above.

Or do you happen to own a directory "~/.cache/emacs"? Then it might be
located there.

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 16:30               ` Michael Albinus
@ 2023-09-02 17:55                 ` Bruno Haible
  2023-09-04  9:52                   ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-02 17:55 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

Michael Albinus wrote:
> >> There should be a file /tmp/*debug tramp mock netbsd93.bruno.haible.de*
> >> which might tell us the story.
> ...
> I'm speaking about the debug file in /tmp (or wherever your temprary
> directory is). A file name which starts with a star, and ends with a
> star, as said above.

There is no file with such a name anywhere on this machine's disk.

Bruno








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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-02 17:55                 ` Bruno Haible
@ 2023-09-04  9:52                   ` Michael Albinus
  2023-09-04 10:19                     ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-04  9:52 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

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

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

>> I'm speaking about the debug file in /tmp (or wherever your temprary
>> directory is). A file name which starts with a star, and ends with a
>> star, as said above.
>
> There is no file with such a name anywhere on this machine's disk.

Hmm, so the problem is deeper than expected. I've modified the patch to
add traces from the very beginning of the test case, see appended. Could
you pls try?

And just to make it sure: you're running Emacs 30?

> Bruno

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 947 bytes --]

diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 50687dfe993..35b26304bd5 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -7407,6 +7407,8 @@ tramp--test-check-files
 ;; These tests are inspired by Bug#17238.
 (ert-deftest tramp-test41-special-characters ()
   "Check special characters in file names."
+  (tramp--test-instrument-test-case 10
+  (setq tramp-debug-to-file t)
   (skip-unless (tramp--test-enabled))
   (skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 245s
   (skip-unless (not (tramp--test-rsync-p)))
@@ -7468,7 +7470,7 @@ tramp-test41-special-characters
     ;; Simplify test in order to speed up.
     (apply #'tramp--test-check-files
 	   (if (tramp--test-expensive-test-p)
-	       files (list (string-join files ""))))))
+	       files (list (string-join files "")))))))

 (tramp--test-deftest-with-stat tramp-test41-special-characters)


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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-04  9:52                   ` Michael Albinus
@ 2023-09-04 10:19                     ` Bruno Haible
  2023-09-04 10:28                       ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-04 10:19 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> And just to make it sure: you're running Emacs 30?

I'm running Emacs from git on 2023-08-15; it identifies itself as
"GNU Emacs 30.0.50".

> >> I'm speaking about the debug file in /tmp (or wherever your temprary
> >> directory is). A file name which starts with a star, and ends with a
> >> star, as said above.
> >
> > There is no file with such a name anywhere on this machine's disk.
> 
> Hmm, so the problem is deeper than expected. I've modified the patch to
> add traces from the very beginning of the test case, see appended. Could
> you pls try?

Still no file with such a name on the disk. But some new logs in /tmp
(attached).


[-- Attachment #2: netbsd93-tramp-logs.tar.gz --]
[-- Type: application/x-compressed-tar, Size: 716 bytes --]

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-04 10:19                     ` Bruno Haible
@ 2023-09-04 10:28                       ` Michael Albinus
  2023-09-04 10:39                         ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-04 10:28 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

>> >> I'm speaking about the debug file in /tmp (or wherever your temprary
>> >> directory is). A file name which starts with a star, and ends with a
>> >> star, as said above.
>> >
>> > There is no file with such a name anywhere on this machine's disk.
>>
>> Hmm, so the problem is deeper than expected. I've modified the patch to
>> add traces from the very beginning of the test case, see appended. Could
>> you pls try?
>
> Still no file with such a name on the disk. But some new logs in /tmp
> (attached).

Thanks. However, more important is whether there's some output from the
make call. In order to reduce test time, what happens if you call

--8<---------------cut here---------------start------------->8---
# make -C test tramp-tests SELECTOR=tramp-test41-special-characters
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-04 10:28                       ` Michael Albinus
@ 2023-09-04 10:39                         ` Bruno Haible
  2023-09-05 17:56                           ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-04 10:39 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

Michael Albinus wrote:
> In order to reduce test time, what happens if you call
> 
> --8<---------------cut here---------------start------------->8---
> # make -C test tramp-tests SELECTOR=tramp-test41-special-characters
> --8<---------------cut here---------------end--------------->8---

Run as a normal user (not root):

$ gmake -C test tramp-tests SELECTOR=tramp-test41-special-characters
gmake: Entering directory '/home/bruno/emacs/build/test'
gmake[1]: Entering directory '/home/bruno/emacs/build/test'
../../build-aux/install-sh -c -d lisp/net/
HOME=/nonexistent LANG=C EMACS_TEST_DIRECTORY=/home/bruno/emacs/test   "../src/emacs"  --no-init-file --no-site-file --no-site-lisp -L ":../../test"  \
  -l ert  -l lisp/net/tramp-tests.el \
  --batch --eval '(ert-run-tests-batch-and-exit (quote tramp-test41-special-characters))' 
Running 1 tests (2023-09-04 12:36:53+0200, selector `tramp-test41-special-characters')
Test tramp-test41-special-characters backtrace:
  (tramp-test-instrument-test-case 10 (setq tramp-debug-to-file t) (le
  (closure (tramp-use-connection-share tramp-inline-compress-start-siz
  ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
  ert-run-test(#s(ert-test :name tramp-test41-special-characters :docu
  ert-run-or-rerun-test(#s(ert--stats :selector tramp-test41-special-c
  ert-run-tests(tramp-test41-special-characters #f(compiled-function (
  ert-run-tests-batch(tramp-test41-special-characters)
  ert-run-tests-batch-and-exit(tramp-test41-special-characters)
  eval((ert-run-tests-batch-and-exit 'tramp-test41-special-characters)
  command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
  command-line()
  normal-top-level()
Test tramp-test41-special-characters condition:
    (void-function tramp-test-instrument-test-case)
   FAILED  1/1  tramp-test41-special-characters (0.000283 sec) at ../../test/lisp/net/tramp-tests.el:7408

Ran 1 tests, 0 results as expected, 1 unexpected (2023-09-04 12:36:53+0200, 0.048956 sec)

1 unexpected results:
   FAILED  tramp-test41-special-characters

gmake[1]: *** [Makefile:181: lisp/net/tramp-tests.log] Error 1
gmake[1]: Leaving directory '/home/bruno/emacs/build/test'
gmake: *** [Makefile:247: lisp/net/tramp-tests] Error 2
gmake: Leaving directory '/home/bruno/emacs/build/test'








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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-04 10:39                         ` Bruno Haible
@ 2023-09-05 17:56                           ` Michael Albinus
  2023-09-11 12:26                             ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-05 17:56 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

>> --8<---------------cut here---------------start------------->8---
>> # make -C test tramp-tests SELECTOR=tramp-test41-special-characters
>> --8<---------------cut here---------------end--------------->8---
>
> Run as a normal user (not root):
>
> $ gmake -C test tramp-tests SELECTOR=tramp-test41-special-characters
> gmake: Entering directory '/home/bruno/emacs/build/test'
> gmake[1]: Entering directory '/home/bruno/emacs/build/test'
> ../../build-aux/install-sh -c -d lisp/net/
> HOME=/nonexistent LANG=C EMACS_TEST_DIRECTORY=/home/bruno/emacs/test   "../src/emacs"  --no-init-file --no-site-file --no-site-lisp -L ":../../test"  \
>   -l ert  -l lisp/net/tramp-tests.el \
>   --batch --eval '(ert-run-tests-batch-and-exit (quote tramp-test41-special-characters))'
> Running 1 tests (2023-09-04 12:36:53+0200, selector `tramp-test41-special-characters')
> Test tramp-test41-special-characters backtrace:
>   (tramp-test-instrument-test-case 10 (setq tramp-debug-to-file t) (le
>   (closure (tramp-use-connection-share tramp-inline-compress-start-siz
>   ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
>   ert-run-test(#s(ert-test :name tramp-test41-special-characters :docu
>   ert-run-or-rerun-test(#s(ert--stats :selector tramp-test41-special-c
>   ert-run-tests(tramp-test41-special-characters #f(compiled-function (
>   ert-run-tests-batch(tramp-test41-special-characters)
>   ert-run-tests-batch-and-exit(tramp-test41-special-characters)
>   eval((ert-run-tests-batch-and-exit 'tramp-test41-special-characters)
>   command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
>   command-line()
>   normal-top-level()
> Test tramp-test41-special-characters condition:
>     (void-function tramp-test-instrument-test-case)
>    FAILED  1/1  tramp-test41-special-characters (0.000283 sec) at ../../test/lisp/net/tramp-tests.el:7408

I don't understand anything. My patch has added a call to
tramp--test-instrument-test-case (two hyphens). What goes wrong?

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-05 17:56                           ` Michael Albinus
@ 2023-09-11 12:26                             ` Michael Albinus
  2023-09-12 14:31                               ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-11 12:26 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Bruno,
>
>>> --8<---------------cut here---------------start------------->8---
>>> # make -C test tramp-tests SELECTOR=tramp-test41-special-characters
>>> --8<---------------cut here---------------end--------------->8---
>>
>> Run as a normal user (not root):
>>
>> $ gmake -C test tramp-tests SELECTOR=tramp-test41-special-characters
>> gmake: Entering directory '/home/bruno/emacs/build/test'
>> gmake[1]: Entering directory '/home/bruno/emacs/build/test'
>> ../../build-aux/install-sh -c -d lisp/net/
>> HOME=/nonexistent LANG=C EMACS_TEST_DIRECTORY=/home/bruno/emacs/test   "../src/emacs"  --no-init-file --no-site-file --no-site-lisp -L ":../../test"  \
>>   -l ert  -l lisp/net/tramp-tests.el \
>>   --batch --eval '(ert-run-tests-batch-and-exit (quote tramp-test41-special-characters))'
>> Running 1 tests (2023-09-04 12:36:53+0200, selector `tramp-test41-special-characters')
>> Test tramp-test41-special-characters backtrace:
>>   (tramp-test-instrument-test-case 10 (setq tramp-debug-to-file t) (le
>>   (closure (tramp-use-connection-share tramp-inline-compress-start-siz
>>   ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
>>   ert-run-test(#s(ert-test :name tramp-test41-special-characters :docu
>>   ert-run-or-rerun-test(#s(ert--stats :selector tramp-test41-special-c
>>   ert-run-tests(tramp-test41-special-characters #f(compiled-function (
>>   ert-run-tests-batch(tramp-test41-special-characters)
>>   ert-run-tests-batch-and-exit(tramp-test41-special-characters)
>>   eval((ert-run-tests-batch-and-exit 'tramp-test41-special-characters)
>>   command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
>>   command-line()
>>   normal-top-level()
>> Test tramp-test41-special-characters condition:
>>     (void-function tramp-test-instrument-test-case)
>>    FAILED  1/1  tramp-test41-special-characters (0.000283 sec) at ../../test/lisp/net/tramp-tests.el:7408
>
> I don't understand anything. My patch has added a call to
> tramp--test-instrument-test-case (two hyphens). What goes wrong?

Any News here? Have you tried to rerun the test with the proper function
tramp--test-instrument-test-case?

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-11 12:26                             ` Michael Albinus
@ 2023-09-12 14:31                               ` Bruno Haible
  2023-09-12 20:12                                 ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-12 14:31 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> >> Test tramp-test41-special-characters backtrace:
> >>   (tramp-test-instrument-test-case 10 (setq tramp-debug-to-file t) (le
> >>   (closure (tramp-use-connection-share tramp-inline-compress-start-siz
> >>   ert--run-test-internal(#s(ert--test-execution-info :test #s(ert-test
> >>   ert-run-test(#s(ert-test :name tramp-test41-special-characters :docu
> >>   ert-run-or-rerun-test(#s(ert--stats :selector tramp-test41-special-c
> >>   ert-run-tests(tramp-test41-special-characters #f(compiled-function (
> >>   ert-run-tests-batch(tramp-test41-special-characters)
> >>   ert-run-tests-batch-and-exit(tramp-test41-special-characters)
> >>   eval((ert-run-tests-batch-and-exit 'tramp-test41-special-characters)
> >>   command-line-1(("-L" ":../../test" "-l" "ert" "-l" "lisp/net/tramp-t
> >>   command-line()
> >>   normal-top-level()
> >> Test tramp-test41-special-characters condition:
> >>     (void-function tramp-test-instrument-test-case)
> >>    FAILED  1/1  tramp-test41-special-characters (0.000283 sec) at ../../test/lisp/net/tramp-tests.el:7408
> >
> > I don't understand anything. My patch has added a call to
> > tramp--test-instrument-test-case (two hyphens). What goes wrong?

When you wrote this, I thought you were out of debugging ideas.

> Any News here? Have you tried to rerun the test with the proper function
> tramp--test-instrument-test-case?

Ah, you meant, I made a mistake while applying your patch? Indeed, I had
not noticed the change from tramp-test-instrument-test-case to
tramp--test-instrument-test-case. Now I fixed that. Find attached the two
output files. I truncated the file '*debug tramp mock netbsd93.bruno.haible.de*'
to 10000 lines, since it starts to repeat itself (modulo time stamps) after
line 6499.

Bruno

[-- Attachment #2: netbsd93-tramp-logs.tar.gz --]
[-- Type: application/x-compressed-tar, Size: 57945 bytes --]

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-12 14:31                               ` Bruno Haible
@ 2023-09-12 20:12                                 ` Michael Albinus
  2023-09-12 23:03                                   ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-12 20:12 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

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

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

> Ah, you meant, I made a mistake while applying your patch? Indeed, I had
> not noticed the change from tramp-test-instrument-test-case to
> tramp--test-instrument-test-case. Now I fixed that. Find attached the two
> output files. I truncated the file '*debug tramp mock netbsd93.bruno.haible.de*'
> to 10000 lines, since it starts to repeat itself (modulo time stamps) after
> line 6499.

Thanks, this has told us the story, indeed. The last command Tramp has
sent is

--8<---------------cut here---------------start------------->8---
16:04:12.381001 tramp-send-command (6) # /bin/ls -ild -w /tmp/tramp-testXwo544/foo/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}; /bin/ls -lnd -w /tmp/tramp-testXwo544/foo/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}
--8<---------------cut here---------------end--------------->8---

Yes, one line. This is too long for your shell. I have modified
tramp-sh.el (see appended), could you pls give it a test?

> Bruno

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 5324 bytes --]

diff --git a/lisp/tramp-sh.el b/lisp/tramp-sh.el
index 05cd2778..7b289053 100644
--- a/lisp/tramp-sh.el
+++ b/lisp/tramp-sh.el
@@ -1295,43 +1295,93 @@ Operations not mentioned here will be handled by the normal Emacs functions.")

 (defun tramp-do-file-attributes-with-ls (vec localname)
   "Implement `file-attributes' for Tramp files using the ls(1) command."
-  (let (symlinkp dirp
+  (let ((optimized (tramp-compat-length< localname 255))
+	symlinkp dirp
 	res-inode res-filemodes res-numlinks
 	res-uid-string res-gid-string res-uid-integer res-gid-integer
 	res-size res-symlink-target res-context)
     (tramp-message vec 5 "file attributes with ls: %s" localname)
-    ;; We cannot send both commands combined, it could exceed NAME_MAX
-    ;; or PATH_MAX.  Happened on macOS, for example.
-    (when (tramp-send-command-and-check
-           vec
-           (format "cd %s && (%s %s || %s -h %s)"
-		   (tramp-shell-quote-argument
-		    (tramp-run-real-handler
-		     #'file-name-directory (list localname)))
-		   (tramp-get-file-exists-command vec)
-		   (if (string-empty-p (file-name-nondirectory localname))
-		       "."
-                     (tramp-shell-quote-argument
-		      (file-name-nondirectory localname)))
-                   (tramp-get-test-command vec)
-		   (if (string-empty-p (file-name-nondirectory localname))
-		       "."
-                     (tramp-shell-quote-argument
-		      (file-name-nondirectory localname)))))
-      (tramp-send-command
-       vec
-       (format "%s -ild %s %s; %s -lnd%s %s %s"
-               (tramp-get-ls-command vec)
-               ;; On systems which have no quoting style, file names
-               ;; with special characters could fail.
-               (tramp-sh--quoting-style-options vec)
-               (tramp-shell-quote-argument localname)
-               (tramp-get-ls-command vec)
-	       (if (tramp-remote-selinux-p vec) "Z" "")
-               ;; On systems which have no quoting style, file names
-               ;; with special characters could fail.
-               (tramp-sh--quoting-style-options vec)
-               (tramp-shell-quote-argument localname)))
+    ;; We cannot send both commands combined, it could exceed
+    ;; NAME_MAX, LINE_MAX or PATH_MAX.  Happened on macOS or NetBSD,
+    ;; for example.  As a heuristic, we check whether the file name is
+    ;; less than 255.  See Bug#65324.
+    (when (if optimized
+	      (tramp-send-command-and-check
+	       vec
+	       (format "cd %s && (%s %s || %s -h %s)"
+		       (tramp-shell-quote-argument
+			(tramp-run-real-handler
+			 #'file-name-directory (list localname)))
+		       (tramp-get-file-exists-command vec)
+		       (if (string-empty-p (file-name-nondirectory localname))
+			   "."
+			 (tramp-shell-quote-argument
+			  (file-name-nondirectory localname)))
+		       (tramp-get-test-command vec)
+		       (if (string-empty-p (file-name-nondirectory localname))
+			   "."
+			 (tramp-shell-quote-argument
+			  (file-name-nondirectory localname)))))
+
+	    ;; Send single commands.
+	    (or (tramp-send-command-and-check
+		 vec
+		 (format "cd %s && %s %s"
+			 (tramp-shell-quote-argument
+			  (tramp-run-real-handler
+			   #'file-name-directory (list localname)))
+			 (tramp-get-file-exists-command vec)
+			 (if (string-empty-p (file-name-nondirectory localname))
+			     "."
+			   (tramp-shell-quote-argument
+			    (file-name-nondirectory localname)))))
+		(tramp-send-command-and-check
+		 vec
+		 (format "%s -h %s"
+			 (tramp-get-test-command vec)
+			 (if (string-empty-p (file-name-nondirectory localname))
+			     "."
+			   (tramp-shell-quote-argument
+			    (file-name-nondirectory localname)))))))
+
+      (if optimized
+	  (tramp-send-command
+	   vec
+	   (format "%s -ild %s %s; %s -lnd%s %s %s"
+		   (tramp-get-ls-command vec)
+		   ;; On systems which have no quoting style, file
+		   ;; names with special characters could fail.
+		   (tramp-sh--quoting-style-options vec)
+		   (tramp-shell-quote-argument localname)
+		   (tramp-get-ls-command vec)
+		   (if (tramp-remote-selinux-p vec) "Z" "")
+		   ;; On systems which have no quoting style, file
+		   ;; names with special characters could fail.
+		   (tramp-sh--quoting-style-options vec)
+		   (tramp-shell-quote-argument localname)))
+
+	;; Send single commands.
+	(with-current-buffer (tramp-get-buffer vec)
+	  (tramp-send-command
+	   vec
+	   (format "%s -ild %s %s"
+		   (tramp-get-ls-command vec)
+		   ;; On systems which have no quoting style, file
+		   ;; names with special characters could fail.
+		   (tramp-sh--quoting-style-options vec)
+		   (tramp-shell-quote-argument localname)))
+	  (narrow-to-region (point-max) (point-max))
+	  (tramp-send-command
+	   vec
+	   (format "%s -lnd%s %s %s"
+		   (tramp-get-ls-command vec)
+		   (if (tramp-remote-selinux-p vec) "Z" "")
+		   ;; On systems which have no quoting style, file
+		   ;; names with special characters could fail.
+		   (tramp-sh--quoting-style-options vec)
+		   (tramp-shell-quote-argument localname)))
+	  (widen)))
+
       ;; Parse `ls -l' output ...
       (with-current-buffer (tramp-get-buffer vec)
         (when (> (buffer-size) 0)

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-12 20:12                                 ` Michael Albinus
@ 2023-09-12 23:03                                   ` Bruno Haible
  2023-09-13 14:34                                     ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-12 23:03 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> I have modified
> tramp-sh.el (see appended), could you pls give it a test?

I've applied the patch to lisp/net/tramp-sh.el (since there
is no lisp/tramp-sh.el in this version of emacs).

'patch' also gives a diagnostic:

$ patch tramp-sh.el < ~/emacs.patch
patching file tramp-sh.el
patch unexpectedly ends in middle of line
Hunk #1 succeeded at 1292 with fuzz 1 (offset -3 lines).

But anyway. With this change, the "gmake check" run goes further along:
The debug log repeats itself starting around line 7783.
Find it attached (again, truncated to 10000 lines).

Bruno


[-- Attachment #2: netbsd93-tramp-logs.tar.gz --]
[-- Type: application/x-compressed-tar, Size: 59921 bytes --]

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-12 23:03                                   ` Bruno Haible
@ 2023-09-13 14:34                                     ` Michael Albinus
  2023-09-13 19:17                                       ` Bruno Haible
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-13 14:34 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

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

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

> I've applied the patch to lisp/net/tramp-sh.el (since there
> is no lisp/tramp-sh.el in this version of emacs).

Yep, I did the work in the Tramp repository, which has a slightly
different directory structure.

> But anyway. With this change, the "gmake check" run goes further along:

Good. After the night, I didn't like the patch anymore, it was too
complicate. So I have rewitten it, and pushed it to Emacs master.

> The debug log repeats itself starting around line 7783.
> Find it attached (again, truncated to 10000 lines).

Hmm, the debug traces tell us:

--8<---------------cut here---------------start------------->8---
00:54:42.448637 tramp-send-command (6) # cd /tmp/tramp-test1ig90x/foo/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}/ && \ln -sf /tmp/tramp-test1ig90x/foo/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}/\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\} ./\	foo\ bar\ baz\	\@foo\@bar\@baz\@\$foo\$bar\$\$baz\$-foo-bar-baz-\%foo\%bar\%baz\%\&foo\&bar\&baz\&\?foo\?bar\?baz\?\*foo\+bar\*baz\+\'foo\"bar\'baz\"\#foo\~bar\#baz\~\!foo\|bar\!baz\|\:foo\;bar\:baz\;\<foo\>bar\<baz\>\(foo\)bar\(baz\)\[foo\]bar\[baz\]\{foo\}bar\{baz\}foo 2>/dev/null; echo tramp_exit_status $?
--8<---------------cut here---------------end--------------->8---

Again, one line. Here I cannot fix too much, the files are such long in
the testsuite. And NetBSD has restricted ressources, for example it
reports PIPE_BUF being 512, where other systems report 4096 ...

So I exclude this special "ln -sf" call for NetBSD, such longuish file
names shouldn't happen in the wild (I hope). See the reworked patch for
tramp-tests.el.

> Bruno

Best regards, Michael.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-patch, Size: 2095 bytes --]

diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index 50687dfe993..6390c04c91e 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -7096,6 +7096,12 @@ tramp--test-mock-p
   (string-equal
    "mock" (file-remote-p ert-remote-temporary-file-directory 'method)))

+(defun tramp--test-netbsd-p ()
+  "Check, whether the remote host runs NetBSD."
+  ;; We must refill the cache.  `file-truename' does it.
+  (file-truename ert-remote-temporary-file-directory)
+  (ignore-errors (tramp-check-remote-uname tramp-test-vec "NetBSD")))
+
 (defun tramp--test-openbsd-p ()
   "Check, whether the remote host runs OpenBSD."
   ;; We must refill the cache.  `file-truename' does it.
@@ -7333,9 +7339,11 @@ tramp--test-check-files

 		;; Check symlink in `directory-files-and-attributes'.
 		;; It does not work in the "smb" case, only relative
-		;; symlinks to existing files are shown there.
+		;; symlinks to existing files are shown there.  On
+		;; NetBSD, there are problems with loooong file names,
+		;; see Bug#65324.
 		(tramp--test-ignore-make-symbolic-link-error
-		  (unless (tramp--test-smb-p)
+		  (unless (or (tramp--test-netbsd-p) (tramp--test-smb-p))
 		    (make-symbolic-link file2 file3)
 		    (should (file-symlink-p file3))
 		    (should
@@ -7407,6 +7415,8 @@ tramp--test-check-files
 ;; These tests are inspired by Bug#17238.
 (ert-deftest tramp-test41-special-characters ()
   "Check special characters in file names."
+  (tramp--test-instrument-test-case 10
+  (setq tramp-debug-to-file t)
   (skip-unless (tramp--test-enabled))
   (skip-unless (not (getenv "EMACS_HYDRA_CI"))) ; SLOW ~ 245s
   (skip-unless (not (tramp--test-rsync-p)))
@@ -7468,7 +7478,7 @@ tramp-test41-special-characters
     ;; Simplify test in order to speed up.
     (apply #'tramp--test-check-files
 	   (if (tramp--test-expensive-test-p)
-	       files (list (string-join files ""))))))
+	       files (list (string-join files "")))))))

 (tramp--test-deftest-with-stat tramp-test41-special-characters)


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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-13 14:34                                     ` Michael Albinus
@ 2023-09-13 19:17                                       ` Bruno Haible
  2023-09-14 12:51                                         ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Bruno Haible @ 2023-09-13 19:17 UTC (permalink / raw)
  To: Michael Albinus; +Cc: 65324, Stefan Kangas

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

Michael Albinus wrote:
> So I have rewitten it, and pushed it to Emacs master.
> ...
> So I exclude this special "ln -sf" call for NetBSD, such longuish file
> names shouldn't happen in the wild (I hope). See the reworked patch for
> tramp-tests.el.

With these two new files, the tramp part of "gmake check" terminates.
Find attached the log files.

> And NetBSD has restricted ressources, for example it
> reports PIPE_BUF being 512, where other systems report 4096 ...

If your code and tests depend on the value of PIPE_BUF, that explains it.
Whereas the maximum command line length (according to the libtool configure
test) is:
  checking the maximum length of command line arguments... 196608

The PIPE_BUF in POSIX [1] can be as low as 512 [2]. Here are the values
on various platforms:
  - 512 on macOS, FreeBSD, NetBSD, OpenBSD, MirBSD, native Windows.
  - 4 KiB on Linux, OSF/1, Cygwin, Haiku.
  - 5 KiB on Solaris.
  - 8 KiB on HP-UX, Plan9.
  - 10 KiB on IRIX.
  - 32 KiB on AIX, Minix.

[1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html
[2] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html

> such longuish file names shouldn't happen in the wild (I hope).

But the problem is:
  - It's not only NetBSD. It's all *BSDs that have a PIPE_BUF value of 512.
  - tramp seems not only to fail in this case, but to go into an endless loop,
    which is much much worse.

Btw, I know that passing long commands through pipes is hard to implement.
A frequent mistake - that leads to endlessly hanging processes - is to leave
a file descriptor open in both the parent and the child process, when it
should only be open in one of the two.

Bruno

[-- Attachment #2: netbsd93-tramp-logs.tar.gz --]
[-- Type: application/x-compressed-tar, Size: 101853 bytes --]

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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-13 19:17                                       ` Bruno Haible
@ 2023-09-14 12:51                                         ` Michael Albinus
  2023-09-22 18:06                                           ` Michael Albinus
  0 siblings, 1 reply; 23+ messages in thread
From: Michael Albinus @ 2023-09-14 12:51 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324, Stefan Kangas

Bruno Haible <bruno@clisp.org> writes:

Hi Bruno,

> With these two new files, the tramp part of "gmake check" terminates.
> Find attached the log files.

Thanks. I've pushed the fix to Emacs master.

>> And NetBSD has restricted ressources, for example it
>> reports PIPE_BUF being 512, where other systems report 4096 ...
>
> If your code and tests depend on the value of PIPE_BUF, that explains it.

No, this special case doesn't depend on PIPE_BUF I believe. I've used
PIPE_BUF as an example to compare NetBSD with Linux, because I have seen
it in the traces, and because it it shows the more limited ressources on
NetBSD.

> Whereas the maximum command line length (according to the libtool configure
> test) is:
>   checking the maximum length of command line arguments... 196608
>
> The PIPE_BUF in POSIX [1] can be as low as 512 [2]. Here are the values
> on various platforms:
>   - 512 on macOS, FreeBSD, NetBSD, OpenBSD, MirBSD, native Windows.
>   - 4 KiB on Linux, OSF/1, Cygwin, Haiku.
>   - 5 KiB on Solaris.
>   - 8 KiB on HP-UX, Plan9.
>   - 10 KiB on IRIX.
>   - 32 KiB on AIX, Minix.
>
> [1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/write.html
> [2] https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html

Thanks to the explanation, much appreciated!

>> such longuish file names shouldn't happen in the wild (I hope).
>
> But the problem is:
>   - It's not only NetBSD. It's all *BSDs that have a PIPE_BUF value of 512.

I have an OpenBSD VM as test system, and it didn't show this error. And
I didn't get a similar bug report yet from other users, for example
users with macOS.

But as said, I don't believe it is a PIPE_BUF problem.

>   - tramp seems not only to fail in this case, but to go into an endless loop,
>     which is much much worse.

Yes. Tramp waits for a response from remote, which didn't arrive. One
could thing about a timeout, but since Tramp sends arbitrary commands
over arbitrary slow lines to arbitrary slow machines, I don't know of a
proper value of such a timeout.

Well, I believe we have nailed it for *this* bug report. OK for you if I
close it?

> Bruno

Best regards, Michael.





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

* bug#65324: "make check" hangs on NetBSD 9.3
  2023-09-14 12:51                                         ` Michael Albinus
@ 2023-09-22 18:06                                           ` Michael Albinus
  0 siblings, 0 replies; 23+ messages in thread
From: Michael Albinus @ 2023-09-22 18:06 UTC (permalink / raw)
  To: Bruno Haible; +Cc: 65324-done, Stefan Kangas

Version: 29.1

Michael Albinus <michael.albinus@gmx.de> writes:

Hi Bruno,

> Well, I believe we have nailed it for *this* bug report. OK for you if I
> close it?

Well, no further comment, so I'm closing the bug.

>> Bruno

Best regards, Michael.





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

end of thread, other threads:[~2023-09-22 18:06 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-15 22:02 bug#65324: "make check" hangs on NetBSD 9.3 Bruno Haible
2023-09-01 20:23 ` Stefan Kangas
2023-09-02 11:24   ` Michael Albinus
2023-09-02 11:33     ` Bruno Haible
2023-09-02 11:54       ` Michael Albinus
2023-09-02 12:16         ` Bruno Haible
2023-09-02 14:08           ` Michael Albinus
2023-09-02 15:25             ` Bruno Haible
2023-09-02 16:30               ` Michael Albinus
2023-09-02 17:55                 ` Bruno Haible
2023-09-04  9:52                   ` Michael Albinus
2023-09-04 10:19                     ` Bruno Haible
2023-09-04 10:28                       ` Michael Albinus
2023-09-04 10:39                         ` Bruno Haible
2023-09-05 17:56                           ` Michael Albinus
2023-09-11 12:26                             ` Michael Albinus
2023-09-12 14:31                               ` Bruno Haible
2023-09-12 20:12                                 ` Michael Albinus
2023-09-12 23:03                                   ` Bruno Haible
2023-09-13 14:34                                     ` Michael Albinus
2023-09-13 19:17                                       ` Bruno Haible
2023-09-14 12:51                                         ` Michael Albinus
2023-09-22 18:06                                           ` Michael Albinus

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).