Bug 1365791

Summary: Geo-rep worker Faulty with OSError: [Errno 21] Is a directory
Product: [Community] GlusterFS Reporter: Aravinda VK <avishwan>
Component: geo-replicationAssignee: Aravinda VK <avishwan>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: mainlineCC: bugs
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: glusterfs-3.10.0 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1374579 1374580 1374581 (view as bug list) Environment:
Last Closed: 2017-03-06 17:22:10 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:    
Bug Blocks: 1374579, 1374580, 1374581    

Description Aravinda VK 2016-08-10 08:41:27 UTC
Description of problem:
During rename if Source and destination exists with same inode then Geo-rep sends unlink for the source. Geo-rep is failing with EISDIR error during unlink

Traceback (most recent call last):
  File "/usr/libexec/glusterfs/python/syncdaemon/repce.py", line 113, in worker
    res = getattr(self.obj, rmeth)(*in_data[2:])
  File "/usr/libexec/glusterfs/python/syncdaemon/resource.py", line 772, in entry_ops
    os.unlink(entry)
OSError: [Errno 21] Is a directory: '.gfid/12711ebf-7fdc-4f4b-9850-2d75581eb452/New folder'

Comment 1 Vijay Bellur 2016-08-10 08:42:33 UTC
REVIEW: http://review.gluster.org/15132 (geo-rep: Handle EISDIR error during Unlink) posted (#1) for review on master by Aravinda VK (avishwan)

Comment 2 Worker Ant 2016-08-25 08:17:56 UTC
REVIEW: http://review.gluster.org/15132 (geo-rep: Handle EISDIR error during Unlink) posted (#2) for review on master by Aravinda VK (avishwan)

Comment 3 Worker Ant 2016-08-29 06:40:13 UTC
REVIEW: http://review.gluster.org/15132 (geo-rep: Handle EISDIR error during Unlink) posted (#3) for review on master by Aravinda VK (avishwan)

Comment 4 Worker Ant 2016-09-08 16:16:08 UTC
COMMIT: http://review.gluster.org/15132 committed in master by Aravinda VK (avishwan) 
------
commit 8a6236e4cfc7bf86e881e5c770a19040a6060ad0
Author: Aravinda VK <avishwan>
Date:   Wed Aug 10 14:02:09 2016 +0530

    geo-rep: Handle EISDIR error during Unlink
    
    During Rename, If Source and Target has same inode then
    Geo-rep unlinks source. But if source is a directory then
    this will fail with below traceback
    
    Traceback (most recent call last):
      File "/usr/libexec/glusterfs/python/syncdaemon/repce.py", line 113, in worker
        res = getattr(self.obj, rmeth)(*in_data[2:])
      File "/usr/libexec/glusterfs/python/syncdaemon/resource.py", line 772,
        in entry_ops
        os.unlink(entry)
    OSError: [Errno 21] Is a directory: '.gfid/12711ebf-7fdc-4f4b-9850-2d75581eb
       452/New folder'
    
    With this patch, if EISDIR, rmdir is tried. Logs error in Slave log in case
    of ENOTEMPTY.
    
    BUG: 1365791
    Change-Id: I099af4192adac5125c0a23988ceb6506f91e987f
    Signed-off-by: Aravinda VK <avishwan>
    Reviewed-on: http://review.gluster.org/15132
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Kotresh HR <khiremat>

Comment 5 Shyamsundar 2017-03-06 17:22:10 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.0, please open a new bug report.

glusterfs-3.10.0 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/gluster-users/2017-February/030119.html
[2] https://www.gluster.org/pipermail/gluster-users/