Hello! In the GCC testsuite, `expect` had gone bonkers:
$ ps --all --format=hurd-long -w PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args [...] 3567 1000 10295 3567 3567 2 137M 856K 98.2 5hrs 28 hours expect -- /usr/share/dejagnu/runtest.exp --tool gcc [...] GDB on 3567: (gdb) info threads 2 Thread 3567.2 0x011aaf4c in mach_msg_trap () at /build/buildd-eglibc_2.11.2-7-hurd-i386-6JVoJz/eglibc-2.11.2/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2 * 1 Thread 3567.1 0x011aaf9c in swtch_pri () at /build/buildd-eglibc_2.11.2-7-hurd-i386-6JVoJz/eglibc-2.11.2/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 (gdb) bt #0 0x011aaf9c in swtch_pri () at /build/buildd-eglibc_2.11.2-7-hurd-i386-6JVoJz/eglibc-2.11.2/build-tree/hurd-i386-libc/mach/swtch_pri.S:2 #1 0x011ac824 in __spin_lock_solid (lock=0x131e8e0) at spin-solid.c:27 #2 0x011aca1d in __mutex_lock_solid (lock=0x131e8e0) at mutex-solid.c:31 #3 0x0122dd0b in __mutex_lock (oldmem=0x8076458, bytes=94) at ../mach/lock-intern.h:89 #4 __libc_realloc (oldmem=0x8076458, bytes=94) at malloc.c:3814 #5 0x0121de62 in _IO_vasprintf (result_ptr=0x15f40c0, format=0x13098a8 "%s%s%s:%u: %s%sUnexpected error: %s.\n", args=0x15f3c9c "") at vasprintf.c:86 #6 0x01206d1b in ___asprintf (string_ptr=0x15f40c0, format=0x13098a8 "%s%s%s:%u: %s%sUnexpected error: %s.\n") at asprintf.c:37 #7 0x011e2fc8 in __assert_perror_fail (errnum=19, file=0x1305a98 "../sysdeps/mach/hurd/fork.c", line=466, function=0x1305acf "__fork") at assert-perr.c:62 #8 0x012586c8 in __fork () at ../sysdeps/mach/hurd/fork.c:466 #9 0x011f92e9 in do_system (line=0x15f42dc "/bin/stty sane > /dev/ttypa") at ../sysdeps/posix/system.c:119 #10 0x0105bea6 in ?? () from /usr/lib/libexpect.so.5.44.1.15 #11 0x0105bf6d in ?? () from /usr/lib/libexpect.so.5.44.1.15 #12 0x0105c229 in exp_getptyslave () from /usr/lib/libexpect.so.5.44.1.15 #13 0x0103e4b2 in ?? () from /usr/lib/libexpect.so.5.44.1.15 #14 0x01087d79 in ?? () from /usr/lib/libtcl8.5.so.0 #15 0x01088beb in ?? () from /usr/lib/libtcl8.5.so.0 #16 0x0108826a in Tcl_EvalEx () from /usr/lib/libtcl8.5.so.0 #17 0x0108985f in TclEvalObjEx () from /usr/lib/libtcl8.5.so.0 [...] `fork` failed here: 458 /* We have one extra user reference created at the beginning of this 459 function, accounted for by mach_port_names (and which will thus be 460 accounted for in the child below). This extra right gets consumed 461 in the child by the store into _hurd_sigthread in the child fork. */ 462 if (thread_refs > 1 && 463 (err = __mach_port_mod_refs (newtask, ss->thread, 464 MACH_PORT_RIGHT_SEND, 465 thread_refs))) 466 LOSE; This is in the parent, before signal thread setup, registering with the proc server, and starting the new process. The error is 19, `EKERN_UREFS_OVERFLOW`. (This is likely also the reason why the error path did not execute successfully.) Any ideas? The full details can be found at <http://www.bddebian.com:8888/~hurd-web/open_issues/fork_mach_port_mod_refs_ekern_urefs_owerflow/>. I still have this sitting in GDB, so if you want further data, just ask. Regards, Thomas
pgpuD7A9icwKt.pgp
Description: PGP signature