[Pkg-tcltk-devel] Bug#818697: Bug#818697: libtcl8.6: Segv in Tcl_FinalizeNotifier()

Sergei Golovan sgolovan at nes.ru
Sun Mar 20 09:24:26 UTC 2016


Hi Hirofumi,

Thank you for the bug report!

On Sat, Mar 19, 2016 at 11:06 PM, OGAWA Hirofumi
<hirofumi at mail.parknet.co.jp> wrote:
>
> When closing wish, process die at
>
>         pthread_cond_wait(&notifierCV, &notifierMutex);
>
> if cpu is supporting HLE/RTM. (xend instruction doesn't allow to use without
> xbegin)
>
> Tcl_FinalizeNotifier() is using following combination
>
>         pthread_mutex_lock(&notifierInitMutex);
>         pthread_cond_wait(&notifierCV, &notifierMutex);
>         pthread_mutex_unlock(&notifierInitMutex);
>
> From history, this is clearly conversion mistake. notifierInitMutex should be
> notifierMutex (no Init).

I'm not sure that the correct way to fix this is to replace
notifierInitMutex by notifierMutex. The notifierInitMutex was
introduced recently, and I think it was intentional. So, maybe to fix
this we should go the other way: replace notifierMutex by
notifierInitMutex in pthread_cond_wait? Could you try and comment on
this as well? I don't have access to hardware with HLE/RTM extensions,
so can't test myself.

Cheers!
-- 
Sergei Golovan



More information about the Pkg-tcltk-devel mailing list