From 2ca5b712f93dde62aadbf34f954ad53089490ded Mon Sep 17 00:00:00 2001 From: Emmanuel Dreyfus Date: Sun, 30 Nov 2014 18:26:17 +0100 Subject: Regression test portability: basic/file-snapshot.t - For some odd reason, setfattr(1) could fail on big-file just after it was created by touch(1). Add a test in between to wait for the file to be visible by ls(1). - After switching to a snapshot, the file content is still in kernel cache, and the old content may be readen for a few seconds after the snapshot switch. Use ( cd $M0 && umount $M0 ) to flush vnodes and therefore invalidate the cache. - Unmount the mount point at the end of the test for the cleanliness sake. BUG: 1129939 Change-Id: I5a0d14db13e79323147761dfe50c41ae6a1cb844 Signed-off-by: Emmanuel Dreyfus Reviewed-on: http://review.gluster.org/9220 Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- tests/basic/file-snapshot.t | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'tests/basic') diff --git a/tests/basic/file-snapshot.t b/tests/basic/file-snapshot.t index 8178f728284..f61de379fcf 100755 --- a/tests/basic/file-snapshot.t +++ b/tests/basic/file-snapshot.t @@ -24,6 +24,7 @@ TEST $CLI volume set $V0 performance.io-cache off; TEST $GFS -s $H0 --volfile-id $V0 $M0; TEST touch $M0/big-file; +EXPECT_WITHIN $CHILD_UP_TIMEOUT "$M0/big-file" ls $M0/big-file TEST setfattr -n trusted.glusterfs.block-format -v qcow2:10GB $M0/big-file; @@ -38,6 +39,10 @@ echo '1234567890' > $M0/data-file2 TEST dd if=$M0/data-file2 of=$M0/big-file conv=notrunc; TEST setfattr -n trusted.glusterfs.block-snapshot-create -v image2 $M0/big-file; +# big-file may still be in kernel page cache, this will fail to umount +# but it will purge vnode and therefore invalidate the cache. +( cd $M0 && umount $M0 ) + TEST setfattr -n trusted.glusterfs.block-snapshot-goto -v image1 $M0/big-file; TEST dd if=$M0/big-file of=$M0/out-file1 bs=11 count=1; @@ -47,6 +52,8 @@ TEST dd if=$M0/big-file of=$M0/out-file2 bs=11 count=1; TEST cmp $M0/data-file1 $M0/out-file1; TEST cmp $M0/data-file2 $M0/out-file2; +force_umount $M0 + TEST $CLI volume stop $V0; EXPECT 'Stopped' volinfo_field $V0 'Status'; -- cgit