5 systemd-analyze log-level debug
6 systemd-analyze log-target journal
10 # mount/unmount enough times to trigger the /proc/self/mountinfo parsing rate limiting
12 for ((i
= 0; i
< NUM_DIRS
; i
++)); do
16 for ((i
= 0; i
< NUM_DIRS
; i
++)); do
17 mount
-t tmpfs tmpfs
"/tmp/meow${i}"
20 systemctl daemon-reload
21 systemctl list-units
-t mount tmp-meow
* |
grep -q tmp-meow
23 for ((i
= 0; i
< NUM_DIRS
; i
++)); do
24 umount
"/tmp/meow${i}"
27 # figure out if we have entered the rate limit state
31 timeout
="$(date -ud "2 minutes
" +%s)"
32 while [[ $
(date -u +%s
) -le ${timeout} ]]; do
33 if journalctl
-u init.scope |
grep -q "(mount-monitor-dispatch) entered rate limit"; then
40 # if the infra is slow we might not enter the rate limit state; in that case skip the exit check
42 if [ "${entered_rl}" = "1" ]; then
44 timeout
="$(date -ud "2 minutes
" +%s)"
45 while [[ $
(date -u +%s
) -le ${timeout} ]]; do
46 if journalctl
-u init.scope |
grep -q "(mount-monitor-dispatch) left rate limit"; then
53 if [ "${exited_rl}" = "0" ]; then
58 # give some time for units to settle so we don't race between exiting the rate limit state and cleaning up the units
61 systemctl daemon-reload
64 # verify that the mount units are always cleaned up at the end
66 if systemctl list-units
-t mount tmp-meow
* |
grep -q tmp-meow
; then
70 systemd-analyze log-level info