Bug 1092606 - Same dentry stored as a file and directory on different subvolumes when snapshots are restored
Summary: Same dentry stored as a file and directory on different subvolumes when snaps...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: protocol
Version: mainline
Hardware: All
OS: All
medium
medium
Target Milestone: ---
Assignee: bugs@gluster.org
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks: 1335373
TreeView+ depends on / blocked
 
Reported: 2014-04-29 14:39 UTC by Raghavendra G
Modified: 2018-09-18 08:30 UTC (History)
2 users (show)

Fixed In Version: glusterfs-4.1.4
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-09-18 08:30:26 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Description Raghavendra G 2014-04-29 14:39:05 UTC
Description of problem:

There is no test case. This issue was found during design review of barrier xlator. A pure distribute volume having more than one subvolume is the setup.

It is possible in a pure distribute volume that the following sequence of FOPs could result
    in snapshots of bricks disagreeing on inode type for a file or directory.

    t1: snap b1
    t2: unlink /a
    t3: mkdir /a
    t4: snap b2

where, b1 and b2 are bricks of a pure distribute volume V.

The above sequence can happen with the current barrier xlator design, since we allow unlink FOPs
to go through to the disk and only block their acknowledgement to the application. This implies
a concurrent mkdir on the same name could succeed, since DHT doesn't serialize unlink and mkdir FOPs, unlike AFR.

The solution is to serialize operations on same entry in server.

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


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Amar Tumballi 2018-09-18 08:30:26 UTC
The feature serialized dentry is now present in codebase.

You can enable it using 'gluster volume set $vol features.sdfs enable'.


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