Based on just reading the code, I wonder if a one thread is mucking up
hst_map_handle.mapped behind the back of nscd_get_mapping.

nscd_get_nl_timestamp doesn't bother to grab the hst_map_handle lock and
calls into nscd_get_mapping which could potentially change
hst_map_handle.mapped to NO_MAPPING.

If this occurs after another thread had passed the NO_MAPPING check in
nscd_get_map_ref, but hasn't yet hit the atomic_decrement_val in
nscd_get_mapping then it could cause the failure mode reported in this
report (and several others across various distros, upstream kde and
possibly elsewhere).

That would also explain why the patch in c#2 works as well as the lack
of reproducability.

Vladimir/Paulo: I don't have a way to reproduce the problem here, but I
could pass along a patch to y'all if you're interested in testing my
theory.

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/929219

Title:
  chromium-browser crashed with SIGSEGV in __nscd_get_mapping()

To manage notifications about this bug go to:
https://bugs.launchpad.net/eglibc/+bug/929219/+subscriptions

-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to