bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ext2fs.static: thread-cancel.c:55: hurd_thread_cancel: Assertion '! __sp


From: Samuel Thibault
Subject: ext2fs.static: thread-cancel.c:55: hurd_thread_cancel: Assertion '! __spin_lock_locked (&ss->critical_section_lock)' failed
Date: Sat, 5 Aug 2006 02:27:35 +0200
User-agent: Mutt/1.5.9i-nntp

Hi,

I've met this bug again (it was reported almost 7 years ago in debian
bts as #46859 and periodically noticed again), and a quick look at the
code upsets me:

  assert (! __spin_lock_locked (&ss->critical_section_lock));
  __spin_lock (&ss->critical_section_lock);

Why should one check that a spinlock is free before taking it?? Here the
purpose is to cancel _another_ thread, so it _can_ happen that the lock
be taken any time...  The bug report says it was already discussed on
bug-hurd, but archives of that time aren't available...  Roland said he
would not touch it until a "massive overhaul"... which never happened.

There are several such strange assertions in hurd/hurdexec.c and
sysdeps/mach/hurd/{spawni.c,jmp-unwind.c}

Shouldn't at least these assertion just be dropped?

Samuel




reply via email to

[Prev in Thread] Current Thread [Next in Thread]