[PATCH][BZ #19329] Fix race between tls allocation at thread creation and dlopen
Szabolcs Nagy
szabolcs.nagy@arm.com
Mon Jan 11 16:42:00 GMT 2016
On 11/01/16 15:48, Ilya Palachev wrote:
> On 06.01.2016 21:33, Szabolcs Nagy wrote:
>> /* Keep track of the maximum generation number. This might
>> not be the generation counter. */
>> - assert (listp->slotinfo[cnt].gen <= GL(dl_tls_generation));
>> - maxgen = MAX (maxgen, listp->slotinfo[cnt].gen);
>> + maxgen = MAX (maxgen, gen);
>
> Thanks for the patch.
>
> But it seems quite strange that the failed assertion is simply deleted from the code.
> Is it still failing for your patch?
yes
> How can you prove that it is working if the assertion that was failing is now just deleted from the code?
i can only prove that the assertion is wrong by
analysing the code: the condition it verifies
cannot be enforced with the current design.
removing it is harmless since the slotinfo entries
are lazy initialized.
> If I just remove the assertion and do nothing else, the error will go away.
that's not enough: the dtv of the thread will be
in an inconsistent state and tls access in the
thread may crash.
> Can you stay the assertion at its place or otherwise explain why do you want to remove it?
>
> --
> Best regards,
> Ilya Palachev
>
More information about the Libc-alpha
mailing list