public inbox for glibc-bugs@sourceware.org help / color / mirror / Atom feed
From: "carlos at redhat dot com" <sourceware-bugzilla@sourceware.org> To: glibc-bugs@sourceware.org Subject: [Bug nptl/12683] Race conditions in pthread cancellation Date: Sun, 12 Jan 2014 18:31:00 -0000 [thread overview] Message-ID: <bug-12683-131-1eONjrBMnG@http.sourceware.org/bugzilla/> (raw) In-Reply-To: <bug-12683-131@http.sourceware.org/bugzilla/> https://sourceware.org/bugzilla/show_bug.cgi?id=12683 --- Comment #13 from Carlos O'Donell <carlos at redhat dot com> --- (In reply to Rich Felker from comment #12) > Your proposed solution is a lot more complex and invasive than mine; it's > actually almost equivalent to the first-generation solution I used in musl > for the problem, which turned out to be a bad idea, and thus got scrapped. Experience is knowing what not to do :-) > Most importantly, aside from being complex and ugly, it does not actually > solve the worst problem, because this case is wrong: I like it when we can talk concretely about use cases. > "Cancellation delivered between syscall and clearing IN_SYSCALL: The > SIGCANCEL handler will immediately cancel the thread." > > In this case, unless the syscall failed with EINTR, you must not act on the > cancellation request. Doing so is non-conforming to the requirement that the > side effects upon cancellation match the side effects on EINTR (which is > just a fancy way of saying, approximately, that cancellation can only take > place if the syscall has already done its job, e.g. closing a fd, > transferring some bytes, etc.). I was not aware of this requirement. Is this written in POSIX or did this come about from discussion with the Austin group around the problems with close() being cancelled? Can you provide a reference to this? > In addition, I suspect your solution has further flaws like what happens > when you longjmp out of a signal handler that interrupted an AS-safe syscall > which is a cancellation point. These issues can be solved with more > complexity (extra work in longjmp), but the solution I've proposed is much > simpler and has no corner cases that are difficult to handle. Could you propose your design as a glibc wiki page so that we can look at it and critique it? I'd be happy to adopt your solution, but I Want to review it and put it through the same kind of use-cases as we discussed here. -- You are receiving this mail because: You are on the CC list for the bug.
next prev parent reply other threads:[~2014-01-12 18:31 UTC|newest] Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top 2011-04-18 22:28 [Bug nptl/12683] New: " bugdal at aerifal dot cx 2011-04-18 22:35 ` [Bug nptl/12683] " bugdal at aerifal dot cx 2011-09-21 18:30 ` bugdal at aerifal dot cx 2012-04-29 2:56 ` bugdal at aerifal dot cx 2012-04-29 2:57 ` bugdal at aerifal dot cx 2012-09-22 23:13 ` bugdal at aerifal dot cx 2013-08-16 15:32 ` carlos at redhat dot com 2013-08-16 15:34 ` carlos at redhat dot com 2013-08-16 15:34 ` carlos at redhat dot com 2013-08-16 16:22 ` bugdal at aerifal dot cx 2013-08-16 16:59 ` carlos at redhat dot com 2013-08-16 17:14 ` bugdal at aerifal dot cx 2013-08-16 18:09 ` carlos at redhat dot com 2014-01-10 20:25 ` carlos at redhat dot com 2014-01-10 21:31 ` carlos at redhat dot com 2014-01-10 22:37 ` bugdal at aerifal dot cx 2014-01-12 18:31 ` carlos at redhat dot com [this message] 2014-01-12 23:55 ` bugdal at aerifal dot cx 2014-01-13 1:52 ` carlos at redhat dot com 2014-01-13 4:37 ` bugdal at aerifal dot cx 2014-01-14 14:51 ` carlos at redhat dot com 2014-02-16 19:42 ` jackie.rosen at hushmail dot com 2014-05-28 19:47 ` schwab at sourceware dot org 2014-05-28 19:47 ` schwab at sourceware dot org 2014-06-27 13:35 ` fweimer at redhat dot com 2014-07-19 18:44 ` sstewartgallus00 at mylangara dot bc.ca 2014-07-19 18:54 ` bugdal at aerifal dot cx 2014-07-20 18:15 ` sstewartgallus00 at mylangara dot bc.ca 2014-07-20 18:41 ` bugdal at aerifal dot cx 2014-08-19 14:08 ` azanella at linux dot vnet.ibm.com 2014-08-28 15:02 ` carlos at redhat dot com 2015-01-15 13:20 ` dan at censornet dot com 2015-01-15 13:31 ` bugdal at aerifal dot cx 2015-01-15 14:01 ` dan at censornet dot com 2020-06-08 14:04 ` fweimer at redhat dot com
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=bug-12683-131-1eONjrBMnG@http.sourceware.org/bugzilla/ \ --to=sourceware-bugzilla@sourceware.org \ --cc=glibc-bugs@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).