Page MenuHomeFreeBSD

libthr rtld locks: do not leak URWLOCK_READ_WAITERS into child
ClosedPublic

Authored by kib on May 20 2023, 8:28 AM.
Tags
None
Referenced Files
Unknown Object (File)
Sat, Apr 13, 3:16 AM
Unknown Object (File)
Mar 12 2024, 10:04 PM
Unknown Object (File)
Mar 12 2024, 10:04 PM
Unknown Object (File)
Mar 12 2024, 10:04 PM
Unknown Object (File)
Mar 9 2024, 2:39 AM
Unknown Object (File)
Mar 8 2024, 8:27 AM
Unknown Object (File)
Feb 24 2024, 12:42 AM
Unknown Object (File)
Feb 18 2024, 8:28 AM
Subscribers

Details

Summary
Since there is only the current thread in the child, no pending readers
exist.  Clear the bit, since it confuses future attempts to acquire
write ownership of the rtld locks, due to URWLOCK_PREFER_READERS flag.

PR:     271490

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

kib requested review of this revision.May 20 2023, 8:28 AM
kib added a reviewer: markj.

To be future-proof, clear all state about pending writers and readers.

It would be nice to turn the test case from PR 271490 into a regression test case, either in the base system or in stress2.

lib/libthr/thread/thr_rtld.c
161

Perhaps use __predict_false here.

This revision is now accepted and ready to land.May 22 2023, 1:32 PM