Bug 1444509
| Summary: | [SAMBA]Rename of files & directories fails when multiple windows clients are involved | ||
|---|---|---|---|
| Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Vivek Das <vdas> |
| Component: | md-cache | Assignee: | Michael Adam <madam> |
| Status: | CLOSED DEFERRED | QA Contact: | Vivek Das <vdas> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | rhgs-3.3 | CC: | amukherj, rhs-bugs, rhs-smb, storage-qa-internal |
| Target Milestone: | --- | Keywords: | EasyFix, ZStream |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2019-12-12 22:08:06 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: | 1416450 | ||
| Bug Blocks: | |||
|
Description
Vivek Das
2017-04-21 13:23:03 UTC
This bug has the same RCA as https://bugzilla.redhat.com/show_bug.cgi?id=1416450. The scenario for this to happen is: client 1: touch File1 client 2: lookup File1 client 1: rename FILE1 to FILE2 client 2: lookup File2 client 1: rename FILE2 to FILE1 client 2: lookup File1 client 2: rename FILE1 to FILE2 => fails with FILE2 already exists. This is because on a rename, the md-cache invalidates the inodes stat, but the dentry from the inode table is not removed(as its global and in in libglusterfs). And md-cache serves lookup based on inode not names, as it stores cache in inode_ctx. If the gfapi/fuse resolve code resolves a name to an inode, and if md-cache has latest data for that inode, it serves the lookup irrespective of the dentry it belongs to. Since this is a rare scenario, i think it can be deferred from 3.3 Fixing this bug requires invalidation of inode dentry in libglustrefs on receiving upcall(resulted from other client doing rename/unlink). Not worked on the bug for 2.5 years - closing. |