| Summary: | some unindexed files don't sync over | ||
|---|---|---|---|
| Product: | [Community] GlusterFS | Reporter: | Csaba Henk <csaba> |
| Component: | geo-replication | Assignee: | Csaba Henk <csaba> |
| Status: | CLOSED UPSTREAM | QA Contact: | Vijaykumar Koppad <vkoppad> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | mainline | CC: | amarts, bbandari, gluster-bugs, kbudiger |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | Bug Fix | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-06-01 14:12:34 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | 3.3.0qa45 | Category: | --- |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
(In step 7., s/gluster0/gluster/; in step 8., s/pop/my-vol/) CHANGE: http://review.gluster.com/2580 (geo-rep: gsyncd: fix up fallback xtime for orphans on master side) merged in master by Vijay Bellur (vijay) CHANGE: http://review.gluster.com/3103 (geo-rep: gsyncd: fix up fallback xtime for orphans on master side) merged in release-3.2 by Vijay Bellur (vijay) |
Description of problem: In some scenario some unindexed files (files with no valid xtime) won't be copied by geo-rep from master to slave Version-Release number of selected component (if applicable): master release-3.2 How reproducible: Reliably Steps to Reproduce: 1. rm -rf /backing/dir /slave/dir && mkdir /slave/dir 2. gluster volume create my-vol my-ip:/backing-dir && gluster volume start my-vol 3. mount -t glusterfs localhost:my-vol /mnt/gluster 4. mkdir -p /mnt/gluster/a/{b,c} 5. touch /mnt/gluster/a/b/d 6. gluster volume set my-vol indexing on 7. touch /mnt/gluster0/a/c/e 8. gluster volume geo-replication pop /slave/dir start 9. sleep 30 && find /slave/dir -type f Actual results: /slave/dir/a/c/e Expected results: /slave/dir/a/b/d /slave/dir/a/c/e Additional info: The bug was spotted in code and the above is a PoC demo. The fallback xtime that is sent over the wire is always -∞ for master side unindexed files (although their on-disk xtime is being properly set to current xtime), cf. https://github.com/gluster/glusterfs/blob/c66ced7d87/xlators/features/marker/utils/syncdaemon/master.py#L84 Thus if we set up a scenario so that there is no reason for gsyncd to look at the (originally) unindexed file again, it will be omitted from synchronization. (This is a bit tricky because in the most simplistic scenarios the file will be revisited due to its freshly set xtime).