[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