Bug 1497122 - Crash in dht_check_and_open_fd_on_subvol_task()
Summary: Crash in dht_check_and_open_fd_on_subvol_task()
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: distribute
Version: 3.10
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ravishankar N
QA Contact:
URL:
Whiteboard:
Depends On: 1488399
Blocks: 1489260
TreeView+ depends on / blocked
 
Reported: 2017-09-29 09:00 UTC by Ravishankar N
Modified: 2017-10-06 17:12 UTC (History)
1 user (show)

Fixed In Version: glusterfs-3.10.6
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1488399
Environment:
Last Closed: 2017-10-06 17:12:24 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Ravishankar N 2017-09-29 09:00:04 UTC
+++ This bug was initially created as a clone of Bug #1488399 +++

Description of problem:
tests/bugs/trace/bug-797171.t crashed at https://build.gluster.org/job/centos6-regression/6244/console

=========================
#gdb -ex 'set sysroot ./' -ex 'core-file ./build/install/cores/glustersproc0-29050.core' ./build/install/sbin/glusterfsd

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fd325886436 in dht_check_and_open_fd_on_subvol_task (data=0x7fd3180015d0) at /home/jenkins/root/workspace/centos6-regression/xlators/cluster/dht/src/dht-helper.c:512
512             gf_msg_debug (this->name, 0,
[Current thread is 1 (LWP 29056)]
(gdb) l
507             if (fd_is_anonymous (fd) || dht_fd_open_on_dst (this, fd, subvol)) {
508                     ret = 0;
509                     goto out;
510             }
511
512             gf_msg_debug (this->name, 0,
513                           "Opening fd (%p, flags=0%o) on file %s @ %s",
514                           fd, fd->flags, uuid_utoa (fd->inode->gfid),
515                           subvol->name);
516
(gdb) p fd
$1 = (fd_t *) 0x0
(gdb) p local->fd
$2 = (fd_t *) 0x0
(gdb) p local->fop
$3 = GF_FOP_SETATTR
(gdb) p local->op_ret
$4 = -1
(gdb) p local->op_errno
$5 = 9
========================
local->fd was NULL. ernno was EBADF.

Error-gen xlator on the brick had sent EBADF for setattr FOP which is non fd based:

[2017-09-04 19:23:50.215311] E [error-gen.c:355:error_gen_setattr] 0-patchy-error-gen: unwind(-1, Bad file descriptor)

--- Additional comment from Worker Ant on 2017-09-05 05:57:12 EDT ---

REVIEW: https://review.gluster.org/18208 (dht: add FOP check to dht_file_setattr_cbk) posted (#1) for review on master by Ravishankar N (ravishankar)

--- Additional comment from Worker Ant on 2017-09-06 22:17:08 EDT ---

COMMIT: https://review.gluster.org/18208 committed in master by Raghavendra G (rgowdapp) 
------
commit 47188e9eac59de416a5c86c7ec7540ed6aaa1c98
Author: Ravishankar N <ravishankar>
Date:   Tue Sep 5 15:18:58 2017 +0530

    dht: add FOP check to dht_file_setattr_cbk
    
    Problem:
    bug-797171.7 loaded error-gen xlator on the brick which sent EBADF for a
    non fd-based fop, namely setattr. This caused
    dht_check_and_open_fd_on_subvol_task() to crash as local->fd was NULL.
    
    Fix:
    Call dht_check_and_open_fd_on_subvol_task() from dht_file_setattr_cbk
    only for dht_fsetattr and not dht_setattr or dht_setattr2
    
    Signed-off-by: Ravishankar N <ravishankar>
    Change-Id: Iab4999e213bf2065804f3f8237e470ad454e3c99
    BUG: 1488399
    Reviewed-on: https://review.gluster.org/18208
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Susant Palai <spalai>
    Reviewed-by: Amar Tumballi <amarts>
    Reviewed-by: Raghavendra G <rgowdapp>
    Reviewed-by: N Balachandran <nbalacha>
    CentOS-regression: Gluster Build System <jenkins.org>

Comment 1 Worker Ant 2017-09-29 09:01:11 UTC
REVIEW: https://review.gluster.org/18411 (dht: add FOP check to dht_file_setattr_cbk) posted (#1) for review on release-3.10 by Ravishankar N (ravishankar)

Comment 2 Worker Ant 2017-10-02 12:34:19 UTC
COMMIT: https://review.gluster.org/18411 committed in release-3.10 by Shyamsundar Ranganathan (srangana) 
------
commit 5eab919dee035b9cf1b7f060bcf2d9eaa1e92eb3
Author: Ravishankar N <ravishankar>
Date:   Tue Sep 5 15:18:58 2017 +0530

    dht: add FOP check to dht_file_setattr_cbk
    
    Problem:
    bug-797171.7 loaded error-gen xlator on the brick which sent EBADF for a
    non fd-based fop, namely setattr. This caused
    dht_check_and_open_fd_on_subvol_task() to crash as local->fd was NULL.
    
    Fix:
    Call dht_check_and_open_fd_on_subvol_task() from dht_file_setattr_cbk
    only for dht_fsetattr and not dht_setattr or dht_setattr2
    
    > Reviewed-on: https://review.gluster.org/18208
    > Smoke: Gluster Build System <jenkins.org>
    > Reviewed-by: Susant Palai <spalai>
    > Reviewed-by: Amar Tumballi <amarts>
    > Reviewed-by: Raghavendra G <rgowdapp>
    > Reviewed-by: N Balachandran <nbalacha>
    > CentOS-regression: Gluster Build System <jenkins.org>
    (cherry picked from commit 47188e9eac59de416a5c86c7ec7540ed6aaa1c98)
    
    
    Signed-off-by: Ravishankar N <ravishankar>
    Change-Id: Iab4999e213bf2065804f3f8237e470ad454e3c99
    BUG: 1497122

Comment 3 Shyamsundar 2017-10-06 17:12:24 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.10.6, please open a new bug report.

glusterfs-3.10.6 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/announce/2017-October/000084.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.