Am 18.04.2017 um 00:16 schrieb Yann Ylavic:
d) Hang during APR make check on Solaris 10 (testprocmutex)
-----------------------------------------------------------

pthread_mutex_timedlock() hangs when the current thread already has locked
the mutex.
...
Assuming the Solaris code is similar to:

https://github.com/OpenIndiana/illumos-gate/blame/master/usr/src/lib/libc/port/threads/synch.c

maybe my Solaris 10 does not have the following code change in it:

https://github.com/OpenIndiana/illumos-gate/commit/f52756fb59521fc0f684db03ee24da2a1d12a52a

"6738798 pthread_mutex_timedlock can block forever when using priority
inherit mutexes"

When running the same testall binary on Solaris 11, I do not get these
hangs.

Unfortunately I was not (yet) able to find out, whether there's a patch for
Bug 6738798 available on Solaris 10, or whether we would break Solaris 10.

Maybe we need to "#define APR_USE_PROC_PTHREAD_MUTEX_COND 0" for
Solaris 10, and fall back to the generic implementation (spinning
sleep)...

Oracle changed the bug id from 6738798 to 15502514. The bug isn't rated high and the fix never got released for Solaris 10, so all Solaris 10 systems should be buggy.

The fix was included in Solaris 11, probably from the beginning, so those systems should be OK.

So we either need to allow to disable the feature, or find a fix for it (which IMHO is hard, because the hang happens before we can detect that we will hang) or we disable the mutex_timedlock feature automatically for Solaris 10. Based on the above status for Solaris 10, I am for automatic disabling on Solaris 10 during configure time.

Regards,

Rainer

Reply via email to