ZTS: update the relevant mmp test cases

- mmp_concurrent_import: added test case to verify that concurrent
  import correctness.  The pool may only be imported once.

- mmp_exported_import: an activity check is now required for pools
  which were cleanly exported if the system and pool hostids don't
  match.

- mmp_inactive_import: an activity check is now required for any
  pool which wasn't cleanly exported, even if the system and pool
  hostids match.

- mmp_on_uberblocks: updated expected uberblocks to take in to account
  the value MMP_INTERVAL_DEFAULT is set too.

- mmp_reset_interval: reduce the number of iterations from 10 to 3.
  This is sufficient to verify functionality and significantly speeds
  up the test.

- mmp_on_uberblocks: adjust the thresholds and increase the runtime
  to avoid false positives observed in CI.

- Update tests to use 'zhack action idle' instead of ztest to improve
  the reliability of the tests.

- Add additional log_note messages to test cases which have multiple
  verification steps to make it clear which portion of a test failed
  when reviewing the logs.

- Replace default_setup/cleanup_noexit calls with 'zpool create' and
  'zpool destroy' calls to avoid additional unnecessary dataset
  creation work.

- Update activity/noactivity check helper functions to use the
  ZFS_LOAD_INFO_DEBUG information now available from 'zpool import'
  to determine if this activity check ran and why.  This is more
  reliable in the CI than measuring the runtime.

- Removed all mmp tests from the zts-report.py exceptions list.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: Olaf Faaland <faaland1@llnl.gov>
Reviewed-by: Akash B <akash-b@hpe.com>
This commit is contained in:
Brian Behlendorf
2026-01-30 15:05:40 -08:00
committed by Tony Hutter
parent d56f3cb331
commit f7ab47908b
19 changed files with 246 additions and 80 deletions
+2 -2
View File
@@ -3939,8 +3939,8 @@ spa_activity_check_tryimport(spa_t *spa, uberblock_t *spa_ub,
hrtime_t extra_delay = MMP_IMPORT_VERIFY_ITERS *
MSEC2NSEC(MMP_INTERVAL_VALID(spa_ub) ?
MMP_INTERVAL(spa_ub) : MMP_MIN_INTERVAL);
cmn_err(CE_NOTE, "pool '%s' multihost activity check "
"required, %llu seconds remaining", spa_load_name(spa),
cmn_err(CE_NOTE, "pool '%s' activity check required, "
"%llu seconds remaining", spa_load_name(spa),
(u_longlong_t)MAX(NSEC2SEC(import_delay + extra_delay), 1));
spa_import_progress_set_notes(spa, "Checking MMP activity, "
"waiting %llu ms", (u_longlong_t)NSEC2MSEC(import_delay));