Date: Mon, 7 Oct 2019 20:21:23 +0000 (UTC) From: Alan Somers <asomers@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r353289 - in head/tests/sys/cddl/zfs: include tests/redundancy Message-ID: <201910072021.x97KLNU6084201@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: asomers Date: Mon Oct 7 20:21:23 2019 New Revision: 353289 URL: https://svnweb.freebsd.org/changeset/base/353289 Log: ZFS: fix the redundancy tests * Fix force_sync_path, which ensures that a file is fully flushed to disk. Apparently "zpool history"'s performance has improved, but exporting and importing the pool still works. * Fix file_dva by using undocumented zdb syntax to clarify that we're interested in the pool's root file system, not the pool itself. This should also fix the zpool_clear_001_pos test. * Remove a redundant cleanup step MFC after: 2 weeks Sponsored by: Axcient Differential Revision: https://reviews.freebsd.org/D21901 Modified: head/tests/sys/cddl/zfs/include/libtest.kshlib head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Modified: head/tests/sys/cddl/zfs/include/libtest.kshlib ============================================================================== --- head/tests/sys/cddl/zfs/include/libtest.kshlib Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/include/libtest.kshlib Mon Oct 7 20:21:23 2019 (r353289) @@ -2676,8 +2676,7 @@ function gen_dataset_name # # Ensure that a given path has been synced, not just ZIL committed. # -# XXX The implementation currently requires calling 'zpool history'. On -# FreeBSD, the sync(8) command (via $SYNC) calls zfs_sync() which just +# XXX On FreeBSD, the sync(8) command (via $SYNC) calls zfs_sync() which just # does a zil_commit(), as opposed to a txg_wait_synced(). For things that # require writing to their final destination (e.g. for intentional # corruption purposes), zil_commit() is not good enough. @@ -2686,10 +2685,8 @@ function force_sync_path # path { typeset path="$1" - zfspath=$($DF $path 2>/dev/null | tail -1 | cut -d" " -f1 | cut -d/ -f1) - [ -z "$zfspath" ] && return false - log_note "Force syncing ${zfspath} for ${path} ..." - $ZPOOL history $zfspath >/dev/null 2>&1 + log_must $ZPOOL export $TESTPOOL + log_must $ZPOOL import -d $path $TESTPOOL } # @@ -3326,7 +3323,7 @@ function file_dva # dataset filepath [level] [offset] # The inner match is for 'DVA[0]=<0:1b412600:200>', in which the # text surrounding the actual DVA is a fixed size with 8 characters # before it and 1 after. - $ZDB -P -vvvvv $dataset $inode | \ + $ZDB -P -vvvvv "$dataset/" $inode | \ $AWK -v level=${level} -v dva_num=${dva_num} ' BEGIN { stage = 0; } (stage == 0) && ($1=="Object") { stage = 1; next; } Modified: head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib ============================================================================== --- head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/tests/redundancy/redundancy.kshlib Mon Oct 7 20:21:23 2019 (r353289) @@ -98,7 +98,7 @@ function setup_test_env typeset file=$TESTDIR/file log_must $FILE_WRITE -o create -f $file -b $BLOCKSZ -c $NUM_WRITES - log_must force_sync_path $TESTDIR + force_sync_path $BASEDIR record_data $TESTPOOL $PRE_RECORD_FILE } @@ -142,7 +142,7 @@ function sync_pool #pool { typeset pool=$1 - log_must force_sync_path $pool + force_sync_path $BASEDIR # If the OS has detected corruption on the pool, it will have # automatically initiated a scrub. In that case, our "zpool scrub" Modified: head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh ============================================================================== --- head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Mon Oct 7 20:19:05 2019 (r353288) +++ head/tests/sys/cddl/zfs/tests/redundancy/redundancy_001_pos.ksh Mon Oct 7 20:21:23 2019 (r353289) @@ -62,7 +62,6 @@ verify_runnable "global" log_assert "Verify raidz pool can withstand one device is failing." -log_onexit cleanup for cnt in 3 2; do setup_test_env $TESTPOOL raidz $cnt
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201910072021.x97KLNU6084201>