[Bugs] [Bug 1211749] New: glusterd crashes when brick option validation fails

bugzilla at redhat.com bugzilla at redhat.com
Tue Apr 14 19:31:15 UTC 2015


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

            Bug ID: 1211749
           Summary: glusterd crashes when brick option validation fails
           Product: GlusterFS
           Version: mainline
         Component: glusterd
          Severity: urgent
          Assignee: bugs at gluster.org
          Reporter: jdarcy at redhat.com
                CC: bugs at gluster.org, gluster-bugs at redhat.com



While working on server-side AFR/NSR support, I added the following test to
tests/basic/afr/read-subvol-data.t:

   TEST ! set_read_subvol $V0 no-such-xlator

The result was a glusterd crash, like this:

   (gdb) bt
   #0  0x00007f0e5d5920b0 in pthread_spin_lock () from /lib64/libpthread.so.0
   #1  0x00007f0e5e46dd69 in __gf_free (...)
       at mem-pool.c:303
   #2  0x00007f0e59e251b4 in gd_sync_task_begin (...)
       at glusterd-syncop.c:1767
   #3  0x00007f0e59e25260 in glusterd_op_begin_synctask (...)
       at glusterd-syncop.c:1787
   #4  0x00007f0e59d770b2 in __glusterd_handle_set_volume (...)
       at glusterd-handler.c:1871

The __gf_free in question is for op_errstr, explaining the nature of the
validation error.  Here's a relevant comment from the patch I'll be posting
momentarily, at the point where op_errstr is set, describing the real problem
and a fix/workaround.

   * In the validation-error code path, the graph is freed
   * before op_errstr is.  Therefore, if the memory block for
   * op_errstr still contains a reference to a translator within
   * that graph, we'll crash.  Make sure the reference is to a
   * translator that's not going away instead.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list