This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug nptl/4578] Assertion `...r_state == RT_CONSISTENT' failed!


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

Stephen Robinson <stephen.robinson at intel dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |stephen.robinson at intel dot com

--- Comment #7 from Stephen Robinson <stephen.robinson at intel dot com> ---
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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]