diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-18 00:58:35 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2015-02-18 00:58:35 +0100 |
commit | 49a086299e047b18280457b654790ef4a2e5abfa (patch) | |
tree | c2b29e0734d560ce4f58c6945390650b5cac8a1b /open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn | |
parent | e2b3602ea241cd0f6bc3db88bf055bee459028b6 (diff) |
Revert "rename open_issues.mdwn to service_solahart_jakarta_selatan__082122541663.mdwn"
This reverts commit 95878586ec7611791f4001a4ee17abf943fae3c1.
Diffstat (limited to 'open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn')
-rw-r--r-- | open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn b/open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn new file mode 100644 index 00000000..f40e0455 --- /dev/null +++ b/open_issues/thread-cancel_c_55_hurd_thread_cancel_assertion___spin_lock_locked_ss_critical_section_lock.mdwn @@ -0,0 +1,54 @@ +[[!meta copyright="Copyright © 2010, 2013 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 +document under the terms of the GNU Free Documentation License, Version 1.2 or +any later version published by the Free Software Foundation; with no Invariant +Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license +is included in the section entitled [[GNU Free Documentation +License|/fdl]]."]]"""]] + +[[!meta title="ext2fs.static: thread-cancel.c:55: hurd_thread_cancel: Assertion '! __spin_lock_locked (&ss->critical_section_lock)'"]] + +[[!tag open_issue_hurd]] + +[[!debbug 46859]], [[!debbug 195360]] + +IRC, unknown channel, unknown date: + + <youpi> azeem, marcus: ext2fs.static: thread-cancel.c:55: + hurd_thread_cancel: Assertion '! __spin_lock_locked + (&ss->critical_section_lock)' failed + <youpi> I actually don't understand this assertion + <youpi> it's just before __spin_lock (&ss->critical_section_lock); + <youpi> why should one check that a lock is free before taking it ? + <youpi> just the same in hurdexec.c + <youpi> (no, ss is not our own sigstate, so it's not safe to assume no + other path can take it) + <youpi> there's another one in sysdeps/mach/hurd/spawni.c + <youpi> and jmp-unwind.c + <antrik> youpi: why do you think it's nonsense?... the fact that we take + the lock (so we can't be interrupted) doesn't mean we are willing to wait + for others to release the lock... maybe the code path should never be + reached while others have a lock, or something + <youpi> then it's useless to take the lock + <youpi> "we take the lock (so we can't be interrupted)": no, it's not _our_ + lock here, it's the lock of the thread we want to cancel + <antrik> what exactly is cancelling a thread?... (sorry, I don't really + have experience with thread programming) + <youpi> ~= killing it + <antrik> well, we take the lock so nobody can mess with the thread while we + are cancelling it, no?... + <youpi> yes + <youpi> that is fine + <youpi> but checking that the lock is free before taking it doesn't make + sense + <youpi> why nobody should be able to take the lock ? + <youpi> and if nobody is, why do we take it ? (since nobody would be able + to take it) + <antrik> well, maybe after taking the lock, we do some action that might + result in others trying to take it... + <youpi> nope: look at the code :) + <youpi> or maybe the cancel_hook, but I really doubt it + +See discussion about *`critical_section_lock`* on [[glibc]]. |