Bug#46859: hurd_thread_cancel trips assertion
Package: libc0.2
Version: N/A
Severity: critical
Note: I'm sending this report such that this bug will enter the Debian
BTS. The bug has been discussed before on bug-hurd and Roland will
(eventually) look into it. I don't think any immedeate action needs
to be taken by any other party. A summary of the discussion on
bug-hurd follows.
I caught the term server on /dev/console failing the following
assertion in hurd_thread_cancel() (hurd/thread-cancel.c:46):
assert (! __spin_lock_locked (&ss->critical_section_lock));
Since there is no guarantee that the target thread is not in a
critical section, there is obviously something wrong here.
Thomas suggested that there is no need to take the critical section
lock. I believe that taking the critical section lock is necessary to
prevent the target thread from entering a signal handler. Roland will
look into the problem.
Mark
Reply to: