[Gluster-devel] mtime not being preserved in replicate self-heal
Brent A Nelson
brent at phys.ufl.edu
Fri May 15 21:56:07 UTC 2009
I just did a trace, where self-heal was triggered and destroyed the mtime
on the second half of the mirror (this was a directory that was created by
kernel-nfs reexport, so the files were created "dirty"). It appears that
metadata self-heal never actually occurs in this scenario, only data
self-heal. Further, after the mtime is destroyed on the second half of
the mirror, self-heal never seems to notice that the mtimes are different
and never fixes it.
[2009-05-15 17:25:52] T [fuse-bridge.c:447:fuse_lookup] glusterfs-fuse:
121: LOOKUP /attr2(352452640)
[2009-05-15 17:25:52] T [fuse-bridge.c:361:fuse_entry_cbk] glusterfs-fuse:
121: LOOKUP() /attr2 => 352452640 (352452640)
[2009-05-15 17:25:52] T [fuse-bridge.c:2129:fuse_getxattr] glusterfs-fuse:
122: GETXATTR /attr2/352452640 (security.selinux)
[2009-05-15 17:25:52] T [fuse-bridge.c:1974:fuse_xattr_cbk]
glusterfs-fuse: 122: GETXATTR() /attr2 => 0
[2009-05-15 17:25:52] T [fuse-bridge.c:1663:fuse_opendir] glusterfs-fuse:
125: OPENDIR /attr2
[2009-05-15 17:25:52] T [fuse-bridge.c:626:fuse_fd_cbk] glusterfs-fuse:
125: OPENDIR() /attr2 => 0x638380
[2009-05-15 17:25:52] T [fuse-bridge.c:1748:fuse_readdir] glusterfs-fuse:
126: READDIR (0x638380, size=4096, offset=0)
[2009-05-15 17:25:52] T [fuse-bridge.c:1696:fuse_readdir_cbk]
glusterfs-fuse: 126: READDIR => 1/4096,0
[2009-05-15 17:25:52] T [fuse-bridge.c:447:fuse_lookup] glusterfs-fuse:
127: LOOKUP /attr2/copyright(352452656)
[2009-05-15 17:25:52] T [afr-self-heal-common.c:1336:afr_self_heal]
mirror1-2: performing self heal on /attr2/copyright (metadata=0 data=1
entry=0)
[2009-05-15 17:25:52] T [afr-self-heal-common.c:1363:afr_self_heal]
mirror1-2: proceeding to metadata check on /attr2/copyright
[2009-05-15 17:25:52] T
[afr-self-heal-common.c:731:afr_sh_missing_entries_done] mirror1-2:
proceeding to metadata check on /attr2/copyright
[2009-05-15 17:25:52] T [afr-self-heal-metadata.c:83:afr_sh_metadata_done]
mirror1-2: proceeding to data check on /attr2/copyright
[2009-05-15 17:25:52] T [afr-self-heal-data.c:1006:afr_sh_data_lock]
mirror1-2: locking /attr2/copyright on subvolume brick1-2a
[2009-05-15 17:25:52] T [afr-self-heal-data.c:1006:afr_sh_data_lock]
mirror1-2: locking /attr2/copyright on subvolume brick1-2b
[2009-05-15 17:25:52] T [afr-self-heal-data.c:958:afr_sh_data_lock_cbk]
mirror1-2: inode of /attr2/copyright on child 0 locked
[2009-05-15 17:25:52] T [afr-self-heal-data.c:958:afr_sh_data_lock_cbk]
mirror1-2: inode of /attr2/copyright on child 1 locked
[2009-05-15 17:25:52] T
[afr-self-heal-common.c:111:afr_sh_print_pending_matrix] mirror1-2:
pending_matrix: [ 1 1 ]
[2009-05-15 17:25:52] T
[afr-self-heal-common.c:111:afr_sh_print_pending_matrix] mirror1-2:
pending_matrix: [ 1 1 ]
[2009-05-15 17:25:52] D
[afr-self-heal-data.c:752:afr_sh_data_sync_prepare] mirror1-2:
self-healing file /attr2/copyright from subvolume brick1-2a to 1 other
[2009-05-15 17:25:52] T [afr-self-heal-data.c:642:afr_sh_data_open_cbk]
mirror1-2: fd for /attr2/copyright opened, commencing sync
[2009-05-15 17:25:52] T [afr-self-heal-data.c:646:afr_sh_data_open_cbk]
mirror1-2: sourcing file /attr2/copyright from brick1-2a to other sinks
[2009-05-15 17:25:52] T [afr-self-heal-data.c:502:afr_sh_data_read_cbk]
mirror1-2: read 756 bytes of data from /attr2/copyright on child 0, offset
0
[2009-05-15 17:25:52] T [afr-self-heal-data.c:451:afr_sh_data_write_cbk]
mirror1-2: wrote 756 bytes of data from /attr2/copyright to child 1,
offset 0
[2009-05-15 17:25:52] T
[afr-self-heal-data.c:586:afr_sh_data_read_write_iter] mirror1-2: closing
fd's of /attr2/copyright
[2009-05-15 17:25:52] T [afr-self-heal-data.c:379:afr_sh_data_trim_cbk]
mirror1-2: ftruncate of /attr2/copyright on subvolume brick1-2b completed
[2009-05-15 17:25:52] T
[afr-self-heal-data.c:328:afr_sh_data_erase_pending] mirror1-2: erasing
pending flags from /attr2/copyright on brick1-2a
[2009-05-15 17:25:52] T
[afr-self-heal-data.c:328:afr_sh_data_erase_pending] mirror1-2: erasing
pending flags from /attr2/copyright on brick1-2b
[2009-05-15 17:25:52] T [afr-self-heal-data.c:253:afr_sh_data_finish]
mirror1-2: finishing data selfheal of /attr2/copyright
[2009-05-15 17:25:52] T [afr-self-heal-data.c:228:afr_sh_data_unlock]
mirror1-2: unlocking /attr2/copyright on subvolume brick1-2a
[2009-05-15 17:25:52] T [afr-self-heal-data.c:228:afr_sh_data_unlock]
mirror1-2: unlocking /attr2/copyright on subvolume brick1-2b
[2009-05-15 17:25:52] T [afr-self-heal-data.c:185:afr_sh_data_unlck_cbk]
mirror1-2: inode of /attr2/copyright on child 0 locked
[2009-05-15 17:25:52] T [afr-self-heal-data.c:185:afr_sh_data_unlck_cbk]
mirror1-2: inode of /attr2/copyright on child 1 locked
[2009-05-15 17:25:52] T [afr-self-heal-data.c:134:afr_sh_data_close]
mirror1-2: closing fd of /attr2/copyright on brick1-2a
[2009-05-15 17:25:52] T [afr-self-heal-data.c:149:afr_sh_data_close]
mirror1-2: closing fd of /attr2/copyright on brick1-2b
[2009-05-15 17:25:52] T [afr-self-heal-data.c:70:afr_sh_data_done]
mirror1-2: self heal of /attr2/copyright completed
[2009-05-15 17:25:52] T [fuse-bridge.c:361:fuse_entry_cbk] glusterfs-fuse:
127: LOOKUP() /attr2/copyright => 352452656 (352452656)
[2009-05-15 17:25:52] T [fuse-bridge.c:2129:fuse_getxattr] glusterfs-fuse:
128: GETXATTR /attr2/copyright/352452656 (security.selinux)
[2009-05-15 17:25:52] T [fuse-bridge.c:1974:fuse_xattr_cbk]
glusterfs-fuse: 128: GETXATTR() /attr2/copyright => 0
[2009-05-15 17:25:52] T [fuse-bridge.c:1748:fuse_readdir] glusterfs-fuse:
131: READDIR (0x638380, size=4096, offset=6876615760)
[2009-05-15 17:25:52] T [fuse-bridge.c:1696:fuse_readdir_cbk]
glusterfs-fuse: 131: READDIR => 1/4096,6876615760
Thanks,
Brent
More information about the Gluster-devel
mailing list