Date: Wed, 25 Feb 2015 14:22:40 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 198014] Signals can lead to an inconsistency in PI mutex ownership Message-ID: <bug-198014-8-4AI1Asf9pc@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-198014-8@https.bugs.freebsd.org/bugzilla/> References: <bug-198014-8@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=198014 --- Comment #10 from eric@vangyzen.net --- I considered this, but I'm indecisive. The current "userland messed the mutex" error path compounds the problem by leaving the umutex owned by the current thread, while libthr already disowned the pthread_mutex. I wonder if it should disown the umutex. This might allow the mutex owner fields to regain consistency. On the other hand, maybe we should let it stay inconsistent to make the failure more permanent; this might prevent the application from corrupting its state even further. Regardless, you're right that the empty case should be consistent with the non-empty case when another thread owns the umtx_pi, since I believe this is still an error. Note that the umtx_pi could legitimately be unowned in the empty case, such as immediately after umtx_pi_alloc. I'm testing an updated patch now. -- You are receiving this mail because: You are the assignee for the bug.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-198014-8-4AI1Asf9pc>