summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--open_issues/cannot_create__dev_null__interrupted_system_call.mdwn343
-rw-r--r--open_issues/libpthread_cancellation_points.mdwn78
2 files changed, 419 insertions, 2 deletions
diff --git a/open_issues/cannot_create__dev_null__interrupted_system_call.mdwn b/open_issues/cannot_create__dev_null__interrupted_system_call.mdwn
index b0f14a17..1051b3b9 100644
--- a/open_issues/cannot_create__dev_null__interrupted_system_call.mdwn
+++ b/open_issues/cannot_create__dev_null__interrupted_system_call.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2013, 2014 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2014, 2015 Free Software Foundation,
+Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -10,6 +11,10 @@ License|/fdl]]."]]"""]]
[[!tag open_issue_hurd]]
+/!\ [[I|tschwinge]] think this has been resolved?
+
+[[!toc levels=3]]
+
# IRC, freenode, #hurd, 2013-12-05
@@ -191,3 +196,339 @@ License|/fdl]]."]]"""]]
http://gnashdev.org:8010/builders/z-sid-hurd-i386/builds/30/steps/system_upgrade/logs/stdio
<gg0> especially during setup-translators -k
<braunr> yes
+
+
+## [[tschwinge]]'s notes, 2014-02-24
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Does happen, but log not useful.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Running fine 2066 times, then I terminated.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 9
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ + ln -s conf29005.file conf29005.dir
+ + test ! -f conf29005.exe
+ + rm -f conf29005 conf29005.exe conf29005.dir/conf29005.file conf29005.file
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+ + rmdir conf29005.dir
+ + mkdir -p .
+
+ $ cat -n < config.status | sed -n '294,+10 p'
+ 294 fi
+ 295 else
+ 296 as_ln_s='cp -p'
+ 297 fi
+ 298 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+ 299 rmdir conf$$.dir 2>/dev/null
+ 300
+ 301
+ 302 # as_fn_mkdir_p
+ 303 # -------------
+ 304 # Create "$as_dir" as a directory, including parents if necessary.
+
+But conf29005.dir now still exists, empty.
+
+ $ rmdir conf29005.dir 2> /dev/null
+ $ echo $?
+
+What this configure invocation is doing differently from the previous one is
+that it re-execs the configure script (due to, and with SHELL=[...]).
+
+/bin/sh currently is a symlink to bash.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/bash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Running fine 60 times, then I terminated.
+
+ $ sudo ln -sf dash /bin/sh
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Running fine 50 times, then I terminated.
+
+ + CONFIG_SHELL=/bin/bash as_have_required=yes
+ [...]
+ + exec /bin/bash ../W._C._Handy/configure --prefix=/home/thomas/tmp/binutils-gdb/tschwinge/W._C._Handy.build.install --enable-gold --with-sysroot=/ CC=gcc-4.8 CXX=g++-4.8 --disable-werror
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/bash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Running fine 85 times, then I terminated.
+
+No exec.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/sh\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 18
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+No exec. -> Assuming exec of /bin/*sh is not relevant.
+
+Back to normal:
+
+ $ sudo ln -sf bash /bin/sh
+
+Maybe it's a dash issue (or, an issue triggered by dash)?
+
+/usr/share/doc/dash/changelog.Debian.gz
+
+ dash (0.5.7-4) unstable; urgency=low
+
+ * Thx Michael Gilbert for NMU.
+ * 0006-JOBS-address-format-security-build-error.diff: new: address
+ format-security build error (patch from Simon Ruderich).
+ * debian/rules: make DEB_BUILD_OPTIONS=diet build working again.
+ * debian/diff/0007-EVAL-Report-I-O-error-on-stdout.diff: new: eval: report
+ I/O error on stdout (closes: #690473).
+
+ -- Gerrit Pape <pape@smarden.org> Wed, 08 Jan 2014 11:54:11 +0000
+
+ dash (0.5.7-3+nmu1) unstable; urgency=medium
+
+ * Non-maintainer upload.
+ * Enable build-hardening flags (closes: #662721).
+
+ -- Michael Gilbert <mgilbert@debian.org> Wed, 25 Dec 2013 13:46:03 -0500
+
+ dash (0.5.7-3) unstable; urgency=low
+ [...]
+ -- Gerrit Pape <pape@smarden.org> Thu, 01 Mar 2012 00:09:45 +0000
+
+From its name alone, »0007-EVAL-Report-I-O-error-on-stdout.diff: new: eval:
+report I/O error on stdout (closes: #690473)« sounds suspicious.
+
+ diff --git a/src/eval.c b/src/eval.c
+ index 7252463..863aa77 100644
+ --- a/src/eval.c
+ +++ b/src/eval.c
+ @@ -899,6 +899,8 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags)
+ else
+ status = (*cmd->builtin)(argc, argv);
+ flushall();
+ + if (outerr(out1))
+ + warnx("%s: I/O error", commandname);
+ status |= outerr(out1);
+ exitstatus = status;
+ cmddone:
+
+ ./output.h:extern struct output *out1;
+ ./output.h:#define outerr(f) (f)->flags
+
+That doesn't really look too suspicious, but let's try without this patch:
+
+ $ apt-get source dash
+ $ cd dash-0.5.7/
+ $ mv debian/diff/0007-Report-I-O-error-on-stdout.diff{,_}
+ $ dpkg-buildpackage -uc -b
+ $ sudo dpkg -i ../dash_0.5.7-4_hurd-i386.deb
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 2
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+So that dash change is not relevant.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 185
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+Wow, so it can take a little while...
+
+Before noticing this problem, I had been running dash 0.5.7-3+nmu1; re-get that
+from <http://snapshot.debian.org/binary/dash/>.
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && dash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 178
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/dash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+ [...]
+ 27
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 5
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 3
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 16
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 70
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 2
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+ [...]
+ 3
+ ./config.status: 299: ./config.status: cannot create /dev/null: Interrupted system call
+
+It appears that generally the issue appearch faster when running »bash
+configure SHELL=/bin/dash« as opposed to »dash configure SHELL=/bin/dash«.
+
+To re-confirm that dash needs to be involved:
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/bash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+The next morning:
+
+ bash: l: Computer bought the farm
+ rm: cannot remove `./*': Computer bought the farm
+ bash: l: Computer bought the farm
+ rm: cannot remove `./*': Computer bought the farm
+ [...]
+ $ fsysopts .
+ fsysopts: .: Computer bought the farm
+ $ cd
+ $ fsysopts .
+ /hurd/ext2fs --readonly --no-atime --no-inherit-dir-group /dev/hd2s2
+
+Console: [[ext2fs_libports_reference_counting_assertion.mdwn]]. Reboot.
+
+Again:
+
+ $ i=0; while ! grep Inter < l; do rm -vrf ./* && echo $((++i)) && bash -x ../W._C._Handy/configure --prefix="$PWD".install --enable-gold --with-sysroot=/ SHELL=/bin/bash\ -x CC=gcc-4.8 CXX=g++-4.8 --disable-werror > l 2>&1; done
+
+Running fine 18054 times, then I terminated.
+
+Then, [[message-id "87wqghouoc.fsf@schwinge.name" desc="coulomb died"]]...
+
+
+## [[tschwinge]]'s notes, 2014-04-09
+
+Now running in a QEMU/KVM virtual machine. The issue is much harder to
+reproduce.
+
+Reinstalling Debian's hurd package, it is observed fairly regularely, always
+when setting up the translators, but in different positions:
+
+ $ sudo apt-get --reinstall install hurd
+ Reading package lists... Done
+ Building dependency tree
+ Reading state information... Done
+ 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
+ Need to get 0 B/1377 kB of archives.
+ After this operation, 0 B of additional disk space will be used.
+ (Reading database ... 70001 files and directories currently installed.)
+ Preparing to unpack .../hurd_1%3a0.5.git20140326-1_hurd-i386.deb ...
+ Unpacking hurd (1:0.5.git20140326-1) over (1:0.5.git20140326-1) ...
+ Setting up hurd (1:0.5.git20140326-1) ...
+ Setting up translators: /hurd/exec /hurd/proxy-defpager /hurd/pflocal (+link) /hurd/pfinet (+link) (+link) /hurd/procfs -c /hurd/password crash-kill crash-suspend crash-dump-core crash.
+ Creating device nodes: fd fdX std vcs hdX hdXsY hdXs1Y sdX sdXsY/sbin/MAKEDEV: 75: /sbin/MAKEDEV: cannot create /dev/null: Interrupted system call
+ sdXs1Y cdX netdde ethX loopX ttyX ptyp ptyq lprX comX random urandom kbd mouse shm.
+ [...]
+ $ sudo apt-get --reinstall install hurd
+ Reading package lists... Done
+ Building dependency tree
+ Reading state information... Done
+ 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
+ Need to get 0 B/1377 kB of archives.
+ After this operation, 0 B of additional disk space will be used.
+ (Reading database ... 70001 files and directories currently installed.)
+ Preparing to unpack .../hurd_1%3a0.5.git20140326-1_hurd-i386.deb ...
+ Unpacking hurd (1:0.5.git20140326-1) over (1:0.5.git20140326-1) ...
+ Setting up hurd (1:0.5.git20140326-1) ...
+ Setting up translators: /hurd/exec /hurd/proxy-defpager /hurd/pflocal (+link) /hurd/pfinet (+link) (+link) /hurd/procfs -c /hurd/password crash-kill crash-suspend crash-dump-core crash.
+ Creating device nodes: fd fdX std vcs hdX hdXsY hdXs1Y sdX sdXsY sdXs1Y cdX netdde ethX loopX ttyX ptyp/sbin/MAKEDEV: 75: /sbin/MAKEDEV: cannot create /dev/null: Interrupted system call
+ ptyq lprX comX random urandom kbd mouse shm.
+ [...]
+ $ sudo apt-get --reinstall install hurd
+ Reading package lists... Done
+ Building dependency tree
+ Reading state information... Done
+ 0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 1 not upgraded.
+ Need to get 0 B/1377 kB of archives.
+ After this operation, 0 B of additional disk space will be used.
+ (Reading database ... 70001 files and directories currently installed.)
+ Preparing to unpack .../hurd_1%3a0.5.git20140326-1_hurd-i386.deb ...
+ Unpacking hurd (1:0.5.git20140326-1) over (1:0.5.git20140326-1) ...
+ Setting up hurd (1:0.5.git20140326-1) ...
+ Setting up translators: /hurd/exec /hurd/proxy-defpager /hurd/pflocal (+link) /hurd/pfinet (+link) (+link) /hurd/procfs -c /hurd/password crash-kill crash-suspend crash-dump-core crash.
+ Creating device nodes: fd fdX std vcs hdX hdXsY/sbin/MAKEDEV: 75: /sbin/MAKEDEV: cannot create /dev/null: Interrupted system call
+ hdXs1Y/sbin/MAKEDEV: 75: /sbin/MAKEDEV: cannot create /dev/null: Interrupted system call
+ sdX sdXsY sdXs1Y cdX netdde ethX loopX ttyX ptyp ptyq lprX comX random urandom kbd mouse shm.
+
+It can also reproduced when manually running `setup-translators` -- but not as
+easily:
+
+ $ i=0 && rm -f l && while ! grep Inter < l; do echo $((++i)) && sudo /usr/lib/hurd/setup-translators -K > l 2>&1; done
+ [...]
+ 112
+ Creating device nodes: fd fdX std vcs hdX hdXsY hdXs1Y/sbin/MAKEDEV: 75: /sbin/MAKEDEV: cannot create /dev/null: Interrupted system call
+
+That's with:
+
+ $ readlink /bin/sh
+ dash
+
+Switch to bash:
+
+ $ sudo dpkg-reconfigure dash
+ [No.]
+ $ readlink /bin/sh
+ bash
+
+ $ i=0 && rm -f l && while ! grep Inter < l; do echo $((++i)) && sudo /usr/lib/hurd/setup-translators -K > l 2>&1; done
+ [...]
+
+Still not happened after 16800 iterations, half a day later.
+
+So it really is related to dash, in some way. Not necessarily a bug in dash,
+but something that dash is doing differently (and triggers a bug somewhere
+else).
+
+The next question is what was changed in (presumably) early 2013-12 that
+this behavior is now exhibited.
+
+
+### `ps -AF hurd-long`
+
+By the way, after having run `setup-translators` for half a day, we got:
+
+ $ ps -AF hurd-long
+ PID UID PPID PGrp Sess TH Vmem RSS %CPU User System Args
+ 1 0 1 1 1 3 146M 908K 0.0 0:00.22 0:00.23 init [2]
+ 2 - 1 1 1 1 146M 216K 0.0 0:00.01 0:00.01 /hurd/init root=device:hd0s1
+ 3 - 1 1 1 8 1.64G 48.3M 0.6 0:00.00 6:42.01 root=device:hd0s1
+ 4 - 2 1 1 14 135M 1.12M 12.3 15:43.29 73min /hurd/proc
+ 5 - 2 1 1 11 432M 31.9M 27.5 31:22.42 2hrs ext2fs --readonly --multiboot-command-line=root=device:hd0s1 --host-priv-port=1 --device-master-port=2 --exec-server-task=3 -T typed device:hd0s1
+ 6 - 5 1 1 4 136M 1000K 5.8 5:04.45 36:49.29 /hurd/exec
+ 7 - 2 1 1 4 136M 648K 1.8 0:46.65 7:22.07 /hurd/auth
+ 8 0 5 1 1 5 136M 772K 0.0 0:00.04 0:00.36 /hurd/term /dev/console device console
+ 10 0 5 1 1 17 139M 1.2M 0.3 1:13.67 6:00.96 /hurd/pflocal
+ 12 0 1 12 12 6 140M 12.9M 0.0 0:00.00 0:00.09 /hurd/mach-defpager
+ 21 0 5 1 1 3 136M 1.01M 0.0 0:00.61 0:01.39 /hurd/procfs -c
+ 39 0 5 1 1 2 135M 604K 0.0 0:00.00 0:00.03 /hurd/proxy-defpager
+ 94 0 1 15 15 6 139M 1.22M 0.4 0:03.25 0:11.16 /hurd/tmpfs --nosuid --noexec --size=10% --mode=755 tmpfs
+ 115 0 1 15 15 3 139M 948K 0.0 0:00.00 0:00.00 /hurd/tmpfs --noexec --nosuid --size=5242880 --mode=1777 tmpfs
+ 202 0 1 15 15 3 139M 944K 0.0 0:00.27 0:00.81 /hurd/tmpfs --nosuid --noexec --size=314560k --mode=1777 tmpfs
+ 226 0 5 1 1 2 135M 780K 0.0 0:00.00 0:00.00 /hurd/storeio hd1
+ 234 0 5 1 1 2 135M 768K 0.0 0:00.01 0:00.02 /hurd/storeio hd0s1
+ 235 0 5 1 1 2 136M 832K 0.0 0:00.00 0:00.01 /hurd/storeio hd2
+ 237 - 21 1 1 2 134M 788K 0.0 0:00.00 0:00.01 /hurd/mtab /
+ 480 0 1 15 15 9 401M 2.86M 0.0 0:27.17 1:41.08 /hurd/ext2fs /dev/hd2
+ [...]
+ 1005 1000 1000 1005 1005 2 147M 2.15M 0.0 0:00.00 0:00.02 /bin/bash
+ 1016 0 5 1 1 5 414M 407M 1.3 3:43.68 12:20.81 /hurd/term /dev/ptyp2 pty-master /dev/ttyp2
+ 1019 1000 1000 1019 1019 2 147M 2.49M 0.3 0:04.30 0:19.64 /bin/bash
+ 1165 0 5 1 1 2 134M 928K 0.0 0:02.42 0:16.48 /hurd/magic --directory fd
+ 1183 0 5 1 1 2 134M 872K 0.0 0:02.03 0:06.30 /hurd/magic tty
+ 1188 - 5 1 1 4 136M 1M 2.6 2:33.19 16:58.50 /hurd/null
+ 1208 0 5 1 1 4 136M 3.07M 0.0 0:00.67 0:03.07 /hurd/term /dev/ptyp3 pty-master /dev/ttyp3
+ [...]
diff --git a/open_issues/libpthread_cancellation_points.mdwn b/open_issues/libpthread_cancellation_points.mdwn
index 48f1acf5..09127e0c 100644
--- a/open_issues/libpthread_cancellation_points.mdwn
+++ b/open_issues/libpthread_cancellation_points.mdwn
@@ -1,4 +1,4 @@
-[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2013, 2015 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -137,3 +137,79 @@ the mig msg call either.
### IRC, freenode, #hurd, 2013-04-16
<braunr> youpi: yes, we said some time ago that it was lacking
+
+
+# `userspace-rcu`
+
+With `2.13-39+hurd.3.rbraun.1` (that is, `2.13-39+hurd.3` plus
+`hurd-i386/0001-Mask-options-implemented-by-the-userspace-side-of-ma.patch.`)
+installed.
+
+During `make check` of the `userspace-rcu` package.
+
+ [...]
+ ./test_urcu_gc 4 4 10 -d 0 -b 4096
+ [hangs]
+
+ (gdb) thread apply all bt
+
+ Thread 5 (Thread 14933.5):
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ #1 0x01068074 in __mach_msg (msg=0x27fff2c, option=3, send_size=24, rcv_size=32, rcv_name=120, timeout=0, notify=0) at msg.c:115
+ #2 0x011ed35c in __thread_suspend (target_thread=115) at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/RPC_thread_suspend.c:84
+ #3 0x01045016 in __pthread_thread_halt (thread=0x80744a8) at ../libpthread/sysdeps/mach/pt-thread-halt.c:43
+ #4 0x01041365 in __pthread_exit (status=0x2) at ./pthread/pt-exit.c:118
+ #5 0x01040e78 in entry_point (start_routine=0x80494b0 <thr_writer>, arg=0x3) at ./pthread/pt-create.c:50
+ #6 0x00000000 in ?? ()
+
+ Thread 4 (Thread 14933.4):
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ #1 0x01068074 in __mach_msg (msg=0x25fff2c, option=3, send_size=24, rcv_size=32, rcv_name=119, timeout=0, notify=0) at msg.c:115
+ #2 0x011ed35c in __thread_suspend (target_thread=113) at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/RPC_thread_suspend.c:84
+ #3 0x01045016 in __pthread_thread_halt (thread=0x8073aa8) at ../libpthread/sysdeps/mach/pt-thread-halt.c:43
+ #4 0x01041365 in __pthread_exit (status=0x2) at ./pthread/pt-exit.c:118
+ #5 0x01040e78 in entry_point (start_routine=0x80494b0 <thr_writer>, arg=0x2) at ./pthread/pt-create.c:50
+ #6 0x00000000 in ?? ()
+
+ Thread 3 (Thread 14933.3):
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ #1 0x01068074 in __mach_msg (msg=0x23ffe34, option=1282, send_size=0, rcv_size=40, rcv_name=122, timeout=10, notify=0) at msg.c:115
+ #2 0x0106ece3 in _hurd_select (nfds=0, pollfds=0x0, readfds=0x0, writefds=0x0, exceptfds=0x0, timeout=0x23ffefc, sigmask=0x0) at hurdselect.c:382
+ #3 0x0115875b in __poll (fds=fds@entry=0x0, nfds=nfds@entry=0, timeout=timeout@entry=10) at ../sysdeps/mach/hurd/poll.c:48
+ #4 0x0804a1bc in urcu_adaptative_busy_wait (wait=0x23fff48) at ../urcu-wait.h:164
+ #5 synchronize_rcu_mb () at ../urcu.c:329
+ #6 0x0804946c in rcu_gc_clear_queue (wtidx=wtidx@entry=1) at test_urcu_gc.c:241
+ #7 0x080495e6 in rcu_gc_reclaim (old=<optimized out>, wtidx=1) at test_urcu_gc.c:264
+ #8 thr_writer (data=0x1) at test_urcu_gc.c:295
+ #9 0x01040e70 in entry_point (start_routine=0x80494b0 <thr_writer>, arg=0x1) at ./pthread/pt-create.c:50
+ #10 0x00000000 in ?? ()
+
+ Thread 2 (Thread 14933.2):
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ #1 0x01068074 in __mach_msg (msg=0x17fdf30, option=3, send_size=32, rcv_size=4096, rcv_name=95, timeout=0, notify=0) at msg.c:115
+ #2 0x01068799 in __mach_msg_server_timeout (demux=0x1079150 <msgport_server>, max_size=4096, rcv_name=95, option=0, timeout=0) at msgserver.c:151
+ #3 0x0106886b in __mach_msg_server (demux=0x1079150 <msgport_server>, max_size=4096, rcv_name=95) at msgserver.c:196
+ #4 0x0107911f in _hurd_msgport_receive () at msgportdemux.c:68
+ #5 0x01040e70 in entry_point (start_routine=0x10790b0 <_hurd_msgport_receive>, arg=0x0) at ./pthread/pt-create.c:50
+ #6 0x00000000 in ?? ()
+
+ Thread 1 (Thread 14933.1):
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ #1 0x01068074 in __mach_msg (msg=0x15ff93c, option=2, send_size=0, rcv_size=24, rcv_name=94, timeout=0, notify=0) at msg.c:115
+ #2 0x010451a2 in __pthread_block (thread=0x805e600) at ../libpthread/sysdeps/mach/pt-block.c:35
+ #3 0x010443a8 in __pthread_cond_timedwait_internal (cond=0x80730dc, mutex=0x80730bc, abstime=0x0) at ./pthread/../sysdeps/generic/pt-cond-timedwait.c:130
+ #4 0x01043fcc in __pthread_cond_wait (cond=0x80730dc, mutex=0x80730bc) at ./pthread/../sysdeps/generic/pt-cond-wait.c:36
+ #5 0x010414ef in pthread_join (thread=8, status=status@entry=0x15ffa6c) at ./pthread/pt-join.c:46
+ #6 0x08048f9b in main (argc=8, argv=0x15ffb08) at test_urcu_gc.c:466
+ (gdb) thread 3
+ [Switching to thread 3 (Thread 14933.3)]
+ #0 0x0106785c in mach_msg_trap () at /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S:2
+ 2 /home/rbraun/devel/debian/packages/eglibc/eglibc-2.13/build-tree/hurd-i386-libc/mach/mach_msg_trap.S: Datei oder Verzeichnis nicht gefunden.
+ (gdb) call pthread_self()
+ $1 = 8
+
+That is, Thread 1 is waiting for Thread 3 (8) to join, which is stuck in
+`poll`.
+
+Is this really the [[libpthread_cancellation_points]] issue -- there doesn't
+seem to be any thread cancellation involved?