Bug #63099
closedcephfs-mirror: ceph_getxattr call always return -61 (ENODATA) in PeerReplayer::synchronize
0%
Description
ceph_getxattr() call always return -61 (ENODATA) in PeerReplayer::synchronize, which results in 'prev' snapshot always coming in as boost::none in PeerReplayer::do_synchronize function. Even if the ceph_fsetxattr seems successfully setting (returns 0) the 'ceph.mirror.dirty_snap_id' in the first pass, the ceph_getxattr() call always returns ENODATA in the following passes (and in further snapshot creations) for the same dir_root. It never retrieves the xattr value from the dir_root.
As the prev snapshot is always none, this issue blocks the implementation of https://tracker.ceph.com/issues/61334.
The ceph_getxattr() call eventually hits Server::handle_client_getvxattr(). But the is_ceph_vxattr call in it doesn't check for 'ceph.mirror.dirty_snap_id' and so it responds -CEPHFS_ENODATA (see the attachment). In addition to that, Server::handle_client_getvxattr() does nothing in particular for the 'ceph.mirror.dirty_snap_id' attribute. So these two things needs fix.
See the discussion about the fix here: https://github.com/ceph/ceph/pull/53912#pullrequestreview-1673118054
Files
Updated by Jos Collin 7 months ago
- Blocks Feature #61334: cephfs-mirror: use snapdiff api for efficient tree traversal added
Updated by Jos Collin 7 months ago
- Subject changed from cephfs-mirror: ceph_getxattr call always return -61 (ENODATA) in PeerReplayer::synchronize to cephfs-mirror: ceph_getxattr call always return -61 (ENODATA) in PeerReplayer::synchronize
- Description updated (diff)
- Status changed from New to In Progress
- Assignee set to Jos Collin
Updated by Jos Collin 7 months ago
- Status changed from In Progress to Fix Under Review
- Pull request ID set to 53912
Updated by Rishabh Dave 6 months ago
- Status changed from Fix Under Review to Pending Backport
Updated by Backport Bot 6 months ago
- Copied to Backport #63474: reef: cephfs-mirror: ceph_getxattr call always return -61 (ENODATA) in PeerReplayer::synchronize added
Updated by Backport Bot 6 months ago
- Copied to Backport #63475: quincy: cephfs-mirror: ceph_getxattr call always return -61 (ENODATA) in PeerReplayer::synchronize added
Updated by Jos Collin 3 months ago
- Status changed from Pending Backport to Resolved