[Bugs] [Bug 1247851] New: Glusterfsd crashes because of thread-unsafe code in gf_authenticate

bugzilla at redhat.com bugzilla at redhat.com
Wed Jul 29 05:12:50 UTC 2015


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

            Bug ID: 1247851
           Summary: Glusterfsd crashes because of thread-unsafe code in
                    gf_authenticate
           Product: Red Hat Gluster Storage
           Version: 3.1
         Component: glusterfs
     Sub Component: core
          Severity: high
          Assignee: rhs-bugs at redhat.com
          Reporter: rgowdapp at redhat.com
        QA Contact: annair at redhat.com
                CC: bugs at gluster.org, gluster-bugs at redhat.com,
                    jdarcy at redhat.com, rgowdapp at redhat.com
        Depends On: 1247765
            Blocks: 1247850



+++ This bug was initially created as a clone of Bug #1247765 +++

This caused a failure on a regression test for an unrelated patch.

http://build.gluster.org/job/rackspace-regression-2GB-triggered/12889/console

The relevant part of the stack trace looks like this.

#2  0x00007f3f84194d18 in dict_get (this=0x7f3f680023ec
#3  0x00007f3f744a4a45 in gf_auth (input_params=0x7f3f680023ec
#4  0x00007f3f748d9894 in map (this=0x7f3f70031dec
#5  0x00007f3f84196885 in dict_foreach_match (dict=0x7f3f70031dec
#6  0x00007f3f8419675d in dict_foreach (dict=0x7f3f70031dec
#7  0x00007f3f748d99d5 in gf_authenticate

In frame 2, "this" looks like a valid pointer, but the structure it points to
seems to contain garbage.  The problem becomes evident when we look at frame 7.

(gdb) p input_params
$3 = (dict_t *) 0x7f3f700665ac
(gdb) p __input_params
$4 = (dict_t *) 0x7f3f680023ec

So the value we're using is from the global __input_params.  This should match
the parameter input_params (which looks OK) but that's not the case. 
Apparently some other thread came in and stomped the unprotected global
variable while we were still using it.  This concurrency issue was actually
reported - and fixed! - on September 13, 2013.

http://review.gluster.org/#/c/5846/

Unfortunately, since most people weren't running multiple network threads, they
never saw the problem, didn't take it seriously, and bikeshedded the patch to
death.  Now that we have multi-threaded epoll, it's going to keep biting
everyone until it's fixed.

--- Additional comment from Anand Avati on 2015-07-28 16:27:49 EDT ---

REVIEW: http://review.gluster.org/11780 (rpc: fix concurrency bug in
gf_authenticate) posted (#1) for review on master by Jeff Darcy
(jdarcy at redhat.com)


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1247765
[Bug 1247765] Glusterfsd crashes because of thread-unsafe code in
gf_authenticate
https://bugzilla.redhat.com/show_bug.cgi?id=1247850
[Bug 1247850] Glusterfsd crashes because of thread-unsafe code in
gf_authenticate
-- 
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=FbgktqXUod&a=cc_unsubscribe


More information about the Bugs mailing list