Bug 1181977

Summary: gluster vol clear-locks vol-name path kind all inode return IO error in a disperse volume
Product: [Community] GlusterFS Reporter: Xavi Hernandez <jahernan>
Component: disperseAssignee: Xavi Hernandez <jahernan>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.6.1CC: bugs, gluster-bugs, iesool, jahernan, lidi, rabhat
Target Milestone: ---Keywords: Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: glusterfs-3.6.3beta1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1179050 Environment:
Last Closed: 2015-08-07 11:29:12 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1179050    
Bug Blocks: 1184460    

Description Xavi Hernandez 2015-01-14 08:48:41 UTC
+++ This bug was initially created as a clone of Bug #1179050 +++

Description of problem:
   I create a disperse 3 redundancy 1 volume, start, and mount. then I exec "gluster vol clear-locks vol-name path kind all inode", return IO error, and all bricks are down(core dump).

   I test a dht volume, that's OK.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

--- Additional comment from Anand Avati on 2015-01-13 11:00:57 CET ---

REVIEW: http://review.gluster.org/9440 (ec: Don't use inodelk on getxattr when clearing locks) posted (#1) for review on master by Xavier Hernandez (xhernandez)

--- Additional comment from Xavier Hernandez on 2015-01-13 11:03:06 CET ---

This patch should solve the problem. However the error shouldn't have caused a crash in glusterfsd processes. I'll take a look to that.

--- Additional comment from Anand Avati on 2015-01-13 13:56:21 CET ---

REVIEW: http://review.gluster.org/9440 (ec: Don't use inodelk on getxattr when clearing locks) posted (#2) for review on master by Xavier Hernandez (xhernandez)

Comment 1 Anand Avati 2015-01-14 09:10:37 UTC
REVIEW: http://review.gluster.org/9444 (ec: Don't use inodelk on getxattr when clearing locks) posted (#1) for review on release-3.6 by Xavier Hernandez (xhernandez)

Comment 2 Anand Avati 2015-02-11 09:40:34 UTC
COMMIT: http://review.gluster.org/9444 committed in release-3.6 by Raghavendra Bhat (raghavendra) 
------
commit 258f38c76f5ad816450c826becfddbe3cc91f874
Author: Xavier Hernandez <xhernandez>
Date:   Tue Jan 13 10:50:06 2015 +0100

    ec: Don't use inodelk on getxattr when clearing locks
    
    When command 'clear-locks' from cli is executed, a getxattr request
    is received by ec. This request was handled as usual, first locking
    the inode. Once this request was processed by the bricks, all locks
    were removed, including the lock used by ec.
    
    When ec tried to unlock the previously acquired lock (which was
    already released), caused a crash in glusterfsd.
    
    This fix executes the getxattr request without any lock acquired
    for the clear-locks command.
    
    This is a backport of http://review.gluster.org/9440/
    
    Change-Id: I77e550d13c4673d2468a1e13fe6e2fed20e233c6
    BUG: 1181977
    Signed-off-by: Xavier Hernandez <xhernandez>
    Reviewed-on: http://review.gluster.org/9444
    Reviewed-by: Dan Lambright <dlambrig>
    Tested-by: Gluster Build System <jenkins.com>
    Reviewed-by: Raghavendra Bhat <raghavendra>