]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
fuzzy: do not set _FSSTRESS_PID when exercising fsx
authorDarrick J. Wong <djwong@kernel.org>
Mon, 3 Feb 2025 22:00:26 +0000 (14:00 -0800)
committerZorro Lang <zlang@kernel.org>
Sun, 16 Feb 2025 11:25:57 +0000 (19:25 +0800)
If we're not running fsstress as the scrub exerciser, don't set
_FSSTRESS_PID because the _kill_fsstress call in the cleanup function
will think that it has to wait for a nonexistant fsstress process.
This fixes the problem of xfs/565 runtime increasing from 30s to 800s
because it tries to kill a nonexistent "565.fsstress" process and then
waits for the fsx loop control process, which hasn't been sent any
signals.

Cc: <fstests@vger.kernel.org> # v2024.12.08
Fixes: 8973af00ec212f ("fstests: cleanup fsstress process management")
Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
common/fuzzy

index 534e91dedbbb43209ba4a616bff612fe3af09519..0a2d91542b561e684e32f975ac6e0129bb1e42a3 100644 (file)
@@ -1392,7 +1392,11 @@ _scratch_xfs_stress_scrub() {
 
        "__stress_scrub_${exerciser}_loop" "$end" "$runningfile" \
                        "$remount_period" "$stress_tgt" &
-       _FSSTRESS_PID=$!
+       # The loop is a background process, so _FSSTRESS_PID is set in that
+       # child.  Unfortunately, this process doesn't know about it.  Therefore
+       # we need to set _FSSTRESS_PID ourselves so that cleanup tries to kill
+       # fsstress.
+       test "${exerciser}" = "fsstress" && _FSSTRESS_PID=$!
 
        if [ -n "$freeze" ]; then
                __stress_scrub_freeze_loop "$end" "$runningfile" &