Bug 1092606
| Summary: | Same dentry stored as a file and directory on different subvolumes when snapshots are restored | ||
|---|---|---|---|
| Product: | [Community] GlusterFS | Reporter: | Raghavendra G <rgowdapp> |
| Component: | protocol | Assignee: | bugs <bugs> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | mainline | CC: | atumball, bugs |
| Target Milestone: | --- | Keywords: | Triaged |
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | All | ||
| Whiteboard: | |||
| Fixed In Version: | glusterfs-4.1.4 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2018-09-18 08:30:26 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: | 1335373 | ||
The feature serialized dentry is now present in codebase. You can enable it using 'gluster volume set $vol features.sdfs enable'. |
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: