Bug 1414456
Summary: | [GSS]Entry heal pending for directories which has symlinks to a different replica set | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Riyas Abdulrasak <rnalakka> | ||||||||||
Component: | quota | Assignee: | Sanoj Unnikrishnan <sunnikri> | ||||||||||
Status: | CLOSED ERRATA | QA Contact: | Vinayak Papnoi <vpapnoi> | ||||||||||
Severity: | medium | Docs Contact: | |||||||||||
Priority: | medium | ||||||||||||
Version: | rhgs-3.1 | CC: | amukherj, bkunal, nchilaka, ravishankar, rcyriac, rhinduja, rhs-bugs, sheggodu, srmukher, storage-qa-internal, sunnikri | ||||||||||
Target Milestone: | --- | ||||||||||||
Target Release: | RHGS 3.4.0 | ||||||||||||
Hardware: | Unspecified | ||||||||||||
OS: | Unspecified | ||||||||||||
Whiteboard: | rebase | ||||||||||||
Fixed In Version: | glusterfs-3.12.2-1 | Doc Type: | Bug Fix | ||||||||||
Doc Text: |
The path ancestry was not accurately populated when a symbolic link file had multiple hard links to it. This resulted in entry heal pending.
This fix populates the ancestry precisely by handling the scenario of symbolic link file with multiple hard links.
|
Story Points: | --- | ||||||||||
Clone Of: | Environment: | ||||||||||||
Last Closed: | 2018-09-04 06:32:03 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: | 1429198, 1429402, 1429405, 1436673 | ||||||||||||
Bug Blocks: | 1408949, 1472361, 1503135 | ||||||||||||
Attachments: |
|
Description
Riyas Abdulrasak
2017-01-18 14:39:19 UTC
Created attachment 1242190 [details]
Brick logs from the n6 server
Created attachment 1242197 [details]
glustershd.log from n7 server
Created attachment 1245019 [details]
tcpdump from the source server
Created attachment 1269167 [details]
gdb script to print ancestry
I was not able to do it with systemtap,
attaching gdb script for the same.
The script prints the dentry list and gfid on which inode->parent call failed.
An update on the RCA of issue. The issue was seen when hard link is attempted to a symlink file. Attempting same scenario with above script: sym1 is a symlink under "/1" and sym3, sym4, sym9, sym11... were hard links created for the sym1 under "/2" 0x7eff987a5a40] --> [0x7effa00f8a30]/<GFID:00000000000000000000000000000001> --> [0x7effa00f2020]2<GFID:04b5d81439b045cf9824d1f2adadd4ef> --> [0x7effa00f03b0]sym3<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00e7de0]sym4<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00ad1e0]sym9<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00f2e40]sym11<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00d9550]sym12<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa0003ab0]sym13<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00d8fb0]sym17<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa00f1250]/<GFID:00000000000000000000000000000001> --> [0x7effa00f1350]sym1<GFID:1c613a545ed341f7853ffe2f184fd783> --> [0x7effa0001990]sym2<GFID:1c613a545ed341f7853ffe2f184fd783> Quota_build_ancestry_cbk expects successive entries to be ancestors along the path and attempts to link them. So, in the above case we will attempt linking sym4 to sym3 , sym9 to sym4 and so on. In the inode_link code we have, ... if (parent->ia_type != IA_IFDIR) { GF_ASSERT (!"link attempted on non-directory parent"); return NULL; } ... So the parent is not linked. This seems to be an issue that needs to be fixed. However, this must have errored out in quota_build_ancestry_cbk code and not reached the statement where "parent is null" is logged. Looking further into this. The issue is solved by https://review.gluster.org/#/c/17730/ merged in upstream. Build Number : glusterfs-3.12.2-7.el7rhgs.x86_64 With quota enabled on a distribute-replicate volume, volume heal is successful with files having symlinks and said symlinks having hardlinks. Hence, moving bug to verified. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2018:2607 The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days |