[Bugs] [Bug 1302199] Scrubber crash (list corruption)
bugzilla at redhat.com
bugzilla at redhat.com
Thu Jan 28 13:29:11 UTC 2016
https://bugzilla.redhat.com/show_bug.cgi?id=1302199
--- Comment #3 from Vijay Bellur <vbellur at redhat.com> ---
COMMIT: http://review.gluster.org/13307 committed in release-3.7 by Venky
Shankar (vshankar at redhat.com)
------
commit f5ff11159544aa16b44965a0ce4500e9c615895d
Author: Venky Shankar <vshankar at redhat.com>
Date: Wed Jan 27 17:04:18 2016 +0530
features / bitrot: Prevent spurious pthread_cond_wait() wakeup
Backport of http://review.gluster.org/13302
pthread_cond_wait() is prone to spurious wakeups and it's utmost
necessarry to check a boolean predicate for thread continuation.
See man(3) pthread_cond_wait() for details.
The following is done in bitrot scrubber:
if (list_empty (&fsscrub->scrublist))
pthread_cond_wait (&fsscrub->cond, &fsscrub->mutex);
followed by:
list_first_entry (&fsscrub->scrublist, ...)
A spurious wakeup from pthread_cond_wait() with the absence of
list_empty() check causes list_first_entry() to return garbage.
BUG: 1302199
Change-Id: I60151eabb8af257a35acd8e7c117876388166a0e
Signed-off-by: Venky Shankar <vshankar at redhat.com>
Reviewed-on: http://review.gluster.org/13307
Reviewed-by: Pranith Kumar Karampuri <pkarampu at redhat.com>
Tested-by: Pranith Kumar Karampuri <pkarampu at redhat.com>
Smoke: Gluster Build System <jenkins at build.gluster.com>
NetBSD-regression: NetBSD Build System <jenkins at build.gluster.org>
CentOS-regression: Gluster Build System <jenkins at build.gluster.com>
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
You are the Docs Contact for the bug.
More information about the Bugs
mailing list