[Bug 254995] pthread_cond_timedwait() returns EDEADLK

From: <bugzilla-noreply_at_freebsd.org>
Date: Thu, 07 Oct 2021 13:34:49 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=254995

--- Comment #9 from nkoch@demig.de ---
After inspecting the source of libthread, I see that the temporary workaround
(ignoring EDEADLK) cannot work.

The hexdump of the mutex after calling pthread_cond_timedwait() shows that it
is owned by the thread according to m_lock.m_owner. But it is not in the
threads mutex queue as it should be.

That would trigger mutex_assert_isowned() in dequeue_mutex() when calling
pthread_mutex_unlock().

So I think the mutex is in an inconsistent state.
I will try to reproduce the problem with some added debug logging in
libpthread.

-- 
You are receiving this mail because:
You are the assignee for the bug.