[Bugs] [Bug 1432542] Glusterd crashes when restarted with many volumes

bugzilla at redhat.com bugzilla at redhat.com
Thu Mar 16 03:08:14 UTC 2017


https://bugzilla.redhat.com/show_bug.cgi?id=1432542



--- Comment #14 from Jeff Darcy <jdarcy at redhat.com> ---
OK, latest theory is that someone is calling synctask_set to set the task
pointer in thread-local storage (TLS), then the task exits but the task pointer
in TLS is still set to the now-freed task structure.  Subsequently, someone
else calls into synclock_lock, and mistakenly believes that we're in that
now-deleted task because that's what synctask_get told us.  So we put the bogus
task on the waitq, and everything goes downhill from there.  I'm not *exactly*
sure how we get to task exit before the next call to synctask_set, but there
are lots of paths through this code and the fact that it's jumping between
tasks and threads makes it even harder to follow.  What I do know is that
better hygiene around calling synctask_set - including synctask_set(NULL) -
whenever we call swapcontext seems to have helped.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
Unsubscribe from this bug https://bugzilla.redhat.com/token.cgi?t=gI0hKDLWeQ&a=cc_unsubscribe


More information about the Bugs mailing list