[Bugs] [Bug 1465123] New: Fd based fops fail with EBADF on file migration

bugzilla at redhat.com bugzilla at redhat.com
Mon Jun 26 17:22:30 UTC 2017


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

            Bug ID: 1465123
           Summary: Fd based fops fail with EBADF on file migration
           Product: GlusterFS
           Version: 3.11
         Component: distribute
          Assignee: bugs at gluster.org
          Reporter: srangana at redhat.com
                CC: bugs at gluster.org, nbalacha at redhat.com
        Depends On: 1465075
            Blocks: 1463907



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

Description of problem:

In DHT, there exists a scenario where fd based fops may be sent on the dst
subvolume after the file has been migrated but before the fd has been opened on
it. This is because certain operations update the cached subvol in the dht
inode ctx without checking to see if an fd has been opened on it on the
original subvol. Dht fd based fops currently rely on a phase1/phase2 migration
checks to open fds on the dst subvol. However, no such check is made causing
the fop to fail with EBADF.

This is seen with dist-rep volumes.



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


How reproducible:


Steps to Reproduce:

1. Create a 2x2 volume
2. Create a file FILE1. Assume it is created on subvol1. Rename it to NFILE1 so
it hashes to subvol2.
3. Open an fd on NFILE1 (on subvol1).
2. Perform a rebalance so the file is migrated to subvol2.                      
3. On the same mount point, perform a lookup/readdirp so the cached subvol in
the inode_ctx of NFILE1 is updated to subvol2.          
4. Perform a write on the fd.

The write is sent to subvol2 on an fd which has been opened only on subvol1.   
     Since the migration phase checks don't kick in, the fd is not opened on
subvol2 and the fop fails with EBADF.

Actual results:


Expected results:


Additional info:

This is being fixed by having every fd based fop check if the fd has been
opened on the cached subvol before winding the fop down.

--- Additional comment from Worker Ant on 2017-06-26 11:51:07 EDT ---

REVIEW: https://review.gluster.org/17630 (cluster/dht: Check if fd is opened on
dst subvol) posted (#1) for review on master by N Balachandran
(nbalacha at redhat.com)


Referenced Bugs:

https://bugzilla.redhat.com/show_bug.cgi?id=1463907
[Bug 1463907] Application VMs, wth the disk images on replica 3 volume,
paused post rebalance
https://bugzilla.redhat.com/show_bug.cgi?id=1465075
[Bug 1465075] Fd based fops fail with EBADF on file migration
-- 
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