* 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).