mirror of
https://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git
synced 2024-11-24 10:33:35 +08:00
tests: kill debugfs on interrupted MMP test
If the f_mmp test is interrupted during its test run, then it can leave debugfs busy-looping in the background. Since f_mmp is a relatively long-running test, and is likely to be running during a parallel test run, this can happen fairly often. Set a signal trap for the f_mmp test script being killed, so that the background debugfs command will always be killed by the test. Signed-off-by: Andreas Dilger <adilger@dilger.ca> Signed-off-by: Theodore Ts'o <tytso@mit.edu>
This commit is contained in:
parent
a3e87bcc32
commit
12f48b0caa
@ -19,10 +19,18 @@ if [ "$status" != 0 ] ; then
|
||||
return $status
|
||||
fi
|
||||
|
||||
kill_debugfs() {
|
||||
trap 0
|
||||
PID=$(ps -o pid,command | grep -v awk |
|
||||
awk "/debugfs -w $TMPFILE/ { print \$1 }")
|
||||
[ "x$PID" != "x" ] && kill -9 $PID
|
||||
}
|
||||
|
||||
# this will cause debugfs to create the $test_name.mark file once it has
|
||||
# passed the MMP startup, then continue reading input until it is killed
|
||||
MARKFILE=$test_name.new
|
||||
rm -f $MARKFILE
|
||||
trap kill_debugfs EXIT
|
||||
echo "set mmp sequence to EXT2_MMP_SEQ_FSCK..." >> $test_name.log
|
||||
( { echo dump_mmp; echo "dump_inode <2> $MARKFILE"; cat /dev/zero; } |
|
||||
$DEBUGFS -w $TMPFILE >> $test_name.log 2>&1 & ) > /dev/null 2>&1 &
|
||||
@ -32,7 +40,7 @@ while [ ! -e $MARKFILE ]; do
|
||||
done
|
||||
rm -f $MARKFILE
|
||||
echo "kill debugfs abruptly (simulates e2fsck failure) ..." >> $test_name.log
|
||||
killall -9 debugfs >> $test_name.log
|
||||
kill_debugfs
|
||||
|
||||
|
||||
echo "e2fsck (should fail mmp_seq = EXT2_MMP_SEQ_FSCK) ..." >> $test_name.log
|
||||
|
Loading…
Reference in New Issue
Block a user