[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