Bug 821710
Summary: | Add-brick and rebalance in succession doesn't copy the xtimes for directories | ||
---|---|---|---|
Product: | [Community] GlusterFS | Reporter: | Vijaykumar Koppad <vkoppad> |
Component: | geo-replication | Assignee: | Venky Shankar <vshankar> |
Status: | CLOSED EOL | QA Contact: | |
Severity: | urgent | Docs Contact: | |
Priority: | medium | ||
Version: | mainline | CC: | bugs, david.macdonald, gluster-bugs, rwheeler |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | x86_64 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-10-22 15:46:38 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | DP | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Vijaykumar Koppad
2012-05-15 11:51:46 UTC
issue is with directory self-heal of distribute, because the rebalance path of the code doesn't handle the directory at all. Rebalance/dir self heal will not and should not copy over the xtimes. These are anyways filtered by marker. Xtimes if missing should be set by marker running on the relevant brick processes, as selfheal/rebalance would create a dir using mkdir call. Changing component to marker. The reason why marker doesn't create xtime xattr's on mkdir's is because the re-balance client process is mounted with special client-pid which instruct the marker translator not to create xtime xattrs. I found also found that re-balance was copying xtime xattrs of files from the existing brick to the new brick when the file is moved from the old brick to the newly added brick as part of re-balance which can be seen below. root@QA-17 ~]# gluster v i Volume Name: doa Type: Distribute Volume ID: 00897a42-f579-4ef4-a90e-96ad2afe50b1 Status: Started Number of Bricks: 5 Transport-type: tcp Bricks: Brick1: 172.17.251.56:/exportdir/s1 Brick2: 172.17.251.56:/exportdir/s2 Brick3: 172.17.251.56:/exportdir/s3 Brick4: 172.17.251.56:/exportdir/s4 Brick5: 172.17.251.56:/exportdir/s5 $ ./xattr/bin/xtime.rb /exportdir/ | grep -v glusterfs | /exportdir/s3 /exportdir/s5 ./ | 1338019084.915617 1338019084.903663 d1/ | 1338019084.904312 1338019084.903663 d1/d2/ | 1338019084.904312 1338019084.903663 d1/d2/d3/ | 1338019084.904312 1338019084.903663 d1/d2/d3/d4/ | 1338019084.904312 1338019084.903663 d1/d2/d3/d4/d5/ | 1338019084.904312 1338019084.903663 file5 | 1338019084.915617 ENOENT ############################################################################ Now add /exportdir/s6, and run rebalance. As part of rebalance the file "file5" is moved from /exportdir/s3 to /exportdir/s6. But the xtime is same as before. Volume Name: doa Type: Distribute Volume ID: 00897a42-f579-4ef4-a90e-96ad2afe50b1 Status: Started Number of Bricks: 6 Transport-type: tcp Bricks: Brick1: 172.17.251.56:/exportdir/s1 Brick2: 172.17.251.56:/exportdir/s2 Brick3: 172.17.251.56:/exportdir/s3 Brick4: 172.17.251.56:/exportdir/s4 Brick5: 172.17.251.56:/exportdir/s5 Brick6: 172.17.251.56:/exportdir/s6 Options Reconfigured: geo-replication.indexing: on $ ./xattr/bin/xtime.rb /exportdir/ | grep -v glusterfs | /exportdir/s3 /exportdir/s5 /exportdir/s6 ./ | 1338019084.915617 1338019084.903663 ENODATA d1/ | 1338019084.904312 1338019084.903663 ENODATA d1/d2/ | 1338019084.904312 1338019084.903663 ENODATA d1/d2/d3/ | 1338019084.904312 1338019084.903663 ENODATA d1/d2/d3/d4/ | 1338019084.904312 1338019084.903663 ENODATA d1/d2/d3/d4/d5/ | 1338019084.904312 1338019084.903663 ENODATA file5 | ENOENT ENOENT 1338019084.915617 ############################################################################# So, rebalance must copy the xtime from the existing brick to the new brick when it does mkdir. I think it is directly creating directories as part of directory self heal with out copying the xattrs. Also, there is no filtering of xtime xattr in marker. Need more thinking before proceeding with fixing this issue. I feel it may not be a bug at all, but the way it would happen during add-brick. Need more of documentation to say this would happen. Adding DP flag. because of the large number of bugs filed against mainline version\ is ambiguous and about to be removed as a choice. If you believe this is still a bug, please change the status back to NEW and choose the appropriate, applicable version for it. |