Summary: | Assertion `...r_state == RT_CONSISTENT' failed! | ||
---|---|---|---|
Product: | glibc | Reporter: | Larry Stewart <larry.stewart> |
Component: | nptl | Assignee: | Not yet assigned to anyone <unassigned> |
Status: | NEW --- | ||
Severity: | normal | CC: | gautamshruti66, glibc-bugs, stephen.robinson |
Priority: | P2 | Flags: | fweimer:
security-
|
Version: | 2.3.5 | ||
Target Milestone: | --- | ||
Host: | mips64-linux-gnu | Target: | |
Build: | Last reconfirmed: | ||
Attachments: |
test case
proposed patch reliable test case updated patch for glibc-2.22 |
Description
Larry Stewart
2007-05-31 18:58:41 UTC
Created attachment 1873 [details]
test case
Created attachment 1874 [details]
proposed patch
Actually it isn't a duplicate of 3429. The assertion failure message is the same, but it occurs on a different line of the source file, and we applied the patch for 3429 without fixing our bug. Sorry I didn't make a more complete report. Does this bug still exists? Does this bug still exists? I came across this assertion, which I was running my C program via an application running on heroku. I have run into this bug in glibc-2.16.0 and can also confirm that it is still present in glibc-2.22. The assertion was removed Jan 21st 2015 in changeset ccdb048, but the underlying bug is still present. The bug occurs because there is no protection to ensure that the loader's internal structures are not being modified when a fork occurs and the child process receives a snapshot of those structures. I have created a new test case that reliably reproduces the bug as long as there are at least two CPUs available so that the threads can run in parallel. The existing patch from Larry Stewart fixes this issue for me, though I've also updated it to acquire the new dl_load_write_lock. While investigating this issue I also discovered a deadlock due to dl_load_write_lock not being reinitialised for the child process during fork. I will open a new bug for this. Created attachment 8804 [details]
reliable test case
Created attachment 8805 [details]
updated patch for glibc-2.22
I've opened bug 19282 for the related issue of dl_load_write_lock not being reinitialised during fork |