[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