public inbox for libc-help@sourceware.org
 help / color / mirror / Atom feed
* Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
@ 2020-10-09 20:26 Jonny Grant
  2020-10-13  9:22 ` Szabolcs Nagy
  0 siblings, 1 reply; 4+ messages in thread
From: Jonny Grant @ 2020-10-09 20:26 UTC (permalink / raw)
  To: libc-help

Hello
I added comment #23 here
https://sourceware.org/bugzilla/show_bug.cgi?id=19329

On my computer any C program compiled with assert(0) dumps a core file, but this glibc issue assert does not dump a core file. Is there an issue with this assert macro in glibc? The message output on the terminal is different from the standard macro.

This is what glibc was showing when I launched Chrome.


Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
Command exited with non-zero status 127



This is my test program

$ ./a
a: a.c:6: main: Assertion `0' failed.
Aborted (core dumped)


$ cat a.c
// gcc -Wall -o a a.c
#include <assert.h>

int main()
{
    assert(0);
}

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
  2020-10-09 20:26 Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed! Jonny Grant
@ 2020-10-13  9:22 ` Szabolcs Nagy
  2020-10-13  9:24   ` Florian Weimer
  0 siblings, 1 reply; 4+ messages in thread
From: Szabolcs Nagy @ 2020-10-13  9:22 UTC (permalink / raw)
  To: Jonny Grant; +Cc: libc-help, nd

The 10/09/2020 21:26, Jonny Grant wrote:
> Hello
> I added comment #23 here
> https://sourceware.org/bugzilla/show_bug.cgi?id=19329
> 
> On my computer any C program compiled with assert(0) dumps a core file, but this glibc issue assert does not dump a core file. Is there an issue with this assert macro in glibc? The message output on the terminal is different from the standard macro.
> 
> This is what glibc was showing when I launched Chrome.
> 
> 
> Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
> Command exited with non-zero status 127

yes the dynamic linker (ld*.so) has a different
assert implementation than libc.so:

https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-minimal.c;h=b37abfaff919383a1f1217f94798c65a0a70f398;hb=HEAD#l280

it calls _dl_fatal_printf which uses _exit(127)
and that will not dump core.

it might make sense to make ld.so asserts dump
core, please open a bug report about it.


> 
> 
> 
> This is my test program
> 
> $ ./a
> a: a.c:6: main: Assertion `0' failed.
> Aborted (core dumped)
> 
> 
> $ cat a.c
> // gcc -Wall -o a a.c
> #include <assert.h>
> 
> int main()
> {
>     assert(0);
> }

-- 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
  2020-10-13  9:22 ` Szabolcs Nagy
@ 2020-10-13  9:24   ` Florian Weimer
  2020-10-13 10:11     ` Jonny Grant
  0 siblings, 1 reply; 4+ messages in thread
From: Florian Weimer @ 2020-10-13  9:24 UTC (permalink / raw)
  To: Szabolcs Nagy via Libc-help; +Cc: Jonny Grant, Szabolcs Nagy, nd

* Szabolcs Nagy via Libc-help:

> The 10/09/2020 21:26, Jonny Grant wrote:
>> Hello
>> I added comment #23 here
>> https://sourceware.org/bugzilla/show_bug.cgi?id=19329
>> 
>> On my computer any C program compiled with assert(0) dumps a core file, but this glibc issue assert does not dump a core file. Is there an issue with this assert macro in glibc? The message output on the terminal is different from the standard macro.
>> 
>> This is what glibc was showing when I launched Chrome.
>> 
>> 
>> Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
>> Command exited with non-zero status 127
>
> yes the dynamic linker (ld*.so) has a different
> assert implementation than libc.so:
>
> https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-minimal.c;h=b37abfaff919383a1f1217f94798c65a0a70f398;hb=HEAD#l280
>
> it calls _dl_fatal_printf which uses _exit(127)
> and that will not dump core.
>
> it might make sense to make ld.so asserts dump
> core, please open a bug report about it.

Right, and we have a framework to implement this in a fairly
straightforward manner (except nothing about abort is really
straightforward, see the other thread).

Thanks,
Florian
-- 
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
  2020-10-13  9:24   ` Florian Weimer
@ 2020-10-13 10:11     ` Jonny Grant
  0 siblings, 0 replies; 4+ messages in thread
From: Jonny Grant @ 2020-10-13 10:11 UTC (permalink / raw)
  To: Florian Weimer, Szabolcs Nagy via Libc-help; +Cc: Szabolcs Nagy, nd



On 13/10/2020 10:24, Florian Weimer wrote:
> * Szabolcs Nagy via Libc-help:
> 
>> The 10/09/2020 21:26, Jonny Grant wrote:
>>> Hello
>>> I added comment #23 here
>>> https://sourceware.org/bugzilla/show_bug.cgi?id=19329
>>>
>>> On my computer any C program compiled with assert(0) dumps a core file, but this glibc issue assert does not dump a core file. Is there an issue with this assert macro in glibc? The message output on the terminal is different from the standard macro.
>>>
>>> This is what glibc was showing when I launched Chrome.
>>>
>>>
>>> Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed!
>>> Command exited with non-zero status 127
>>
>> yes the dynamic linker (ld*.so) has a different
>> assert implementation than libc.so:
>>
>> https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/dl-minimal.c;h=b37abfaff919383a1f1217f94798c65a0a70f398;hb=HEAD#l280
>>
>> it calls _dl_fatal_printf which uses _exit(127)
>> and that will not dump core.
>>
>> it might make sense to make ld.so asserts dump
>> core, please open a bug report about it.
> 
> Right, and we have a framework to implement this in a fairly
> straightforward manner (except nothing about abort is really
> straightforward, see the other thread).

Hi Florian, Szabolcs

Thank you, I've raised this request as a bug report.

https://sourceware.org/bugzilla/show_bug.cgi?id=26728

Jonny


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-10-13 10:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-09 20:26 Inconsistency detected by ld.so: ../elf/dl-tls.c: 481: _dl_allocate_tls_init: Assertion `listp->slotinfo[cnt].gen <= GL(dl_tls_generation)' failed! Jonny Grant
2020-10-13  9:22 ` Szabolcs Nagy
2020-10-13  9:24   ` Florian Weimer
2020-10-13 10:11     ` Jonny Grant

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).