You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.3 KiB
84 lines
2.3 KiB
From 94f643c328cd2d3c7376219573e0bc5dedea10d8 Mon Sep 17 00:00:00 2001 |
|
From: Michal Sekletar <msekleta@redhat.com> |
|
Date: Mon, 30 May 2022 14:50:05 +0200 |
|
Subject: [PATCH] tests: make sure we delay running mount start jobs when |
|
/p/s/mountinfo is rate limited |
|
|
|
(cherry picked from commit 9e15be6c8d55abd800bf33f9776dd0e307ed37bc) |
|
|
|
Related: #2087652 |
|
--- |
|
test/units/testsuite-60.sh | 53 ++++++++++++++++++++++++++++++++++++++ |
|
1 file changed, 53 insertions(+) |
|
|
|
diff --git a/test/units/testsuite-60.sh b/test/units/testsuite-60.sh |
|
index 239d7b0d4c..8cb3f466b6 100755 |
|
--- a/test/units/testsuite-60.sh |
|
+++ b/test/units/testsuite-60.sh |
|
@@ -3,6 +3,56 @@ |
|
set -eux |
|
set -o pipefail |
|
|
|
+test_issue_20329() { |
|
+ local tmpdir unit |
|
+ tmpdir="$(mktemp -d)" |
|
+ unit=$(systemd-escape --suffix mount --path "$tmpdir") |
|
+ |
|
+ # Set up test mount unit |
|
+ cat > /run/systemd/system/"$unit" <<EOF |
|
+[Mount] |
|
+What=tmpfs |
|
+Where=$tmpdir |
|
+Type=tmpfs |
|
+Options=defaults,nofail |
|
+EOF |
|
+ |
|
+ # Start the unit |
|
+ systemctl daemon-reload |
|
+ systemctl start "$unit" |
|
+ |
|
+ [[ "$(systemctl show --property SubState --value "$unit")" = "mounted" ]] || { |
|
+ echo >&2 "Test mount \"$unit\" unit isn't mounted" |
|
+ return 1 |
|
+ } |
|
+ mountpoint -q "$tmpdir" |
|
+ |
|
+ trap 'systemctl stop $unit' RETURN |
|
+ |
|
+ # Trigger the mount ratelimiting |
|
+ cd "$(mktemp -d)" |
|
+ mkdir foo |
|
+ for ((i=0;i<50;++i)); do |
|
+ mount --bind foo foo |
|
+ umount foo |
|
+ done |
|
+ |
|
+ # Unmount the test mount and start it immediately again via systemd |
|
+ umount "$tmpdir" |
|
+ systemctl start "$unit" |
|
+ |
|
+ # Make sure it is seen as mounted by systemd and it actually is mounted |
|
+ [[ "$(systemctl show --property SubState --value "$unit")" = "mounted" ]] || { |
|
+ echo >&2 "Test mount \"$unit\" unit isn't in \"mounted\" state" |
|
+ return 1 |
|
+ } |
|
+ |
|
+ mountpoint -q "$tmpdir" || { |
|
+ echo >&2 "Test mount \"$unit\" is in \"mounted\" state, actually is not mounted" |
|
+ return 1 |
|
+ } |
|
+} |
|
+ |
|
systemd-analyze log-level debug |
|
systemd-analyze log-target journal |
|
|
|
@@ -87,6 +137,9 @@ if systemctl list-units -t mount tmp-meow* | grep -q tmp-meow; then |
|
exit 42 |
|
fi |
|
|
|
+# test that handling of mount start jobs is delayed when /proc/self/mouninfo monitor is rate limited |
|
+test_issue_20329 |
|
+ |
|
systemd-analyze log-level info |
|
|
|
echo OK >/testok
|
|
|