]> git.proxmox.com Git - mirror_zfs.git/commitdiff
ZTS: Fix zpool_import_hostid_changed_cachefile_unclean_export
authorBrian Behlendorf <behlendorf1@llnl.gov>
Thu, 26 Sep 2024 16:58:11 +0000 (09:58 -0700)
committerGitHub <noreply@github.com>
Thu, 26 Sep 2024 16:58:11 +0000 (09:58 -0700)
Update the test case to freeze the pool then export it to better
simulate a hard failure.  This is preferable to copying the vdev
while the pool's imported since with a copy we're not guaranteed
the on-disk state will be consistent.  That can in turn result
in a pool import failure and a spurious test failure.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #16570

tests/zfs-tests/tests/functional/cli_root/zpool_import/zpool_import_hostid_changed_cachefile_unclean_export.ksh

index dcb1ac1ab69f59638c3220bc8a64f7f5d118bdab..c4273d050422f3ad7098773b0823bac1f294382e 100755 (executable)
@@ -28,9 +28,8 @@
 #      2. Create a pool.
 #      3. Backup the cachefile.
 #      4. Simulate the pool being torn down without export:
-#      4.1. Copy the underlying device state.
-#      4.2. Export the pool.
-#      4.3. Restore the device state from the copy.
+#      4.1. Sync then freeze the pool.
+#      4.2. Export the pool (uncleanly).
 #      5. Change the hostid.
 #      6. Verify that importing the pool from the cachefile fails.
 #      7. Verify that importing the pool from the cachefile with force
@@ -57,10 +56,9 @@ log_must zpool create -o cachefile=$CPATH $TESTPOOL1 $VDEV0
 log_must cp $CPATH $CPATHBKP
 
 # 4. Simulate the pool being torn down without export.
-log_must cp $VDEV0 $VDEV0.bak
+sync_pool $TESTPOOL1
+log_must zpool freeze $TESTPOOL1
 log_must zpool export $TESTPOOL1
-log_must cp -f $VDEV0.bak $VDEV0
-log_must rm -f $VDEV0.bak
 
 # 5. Change the hostid.
 log_must zgenhostid -f $HOSTID2