You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
scripts: keep concurrent egress script tests from deleting each other's probe files #1007
l3-l4-egress-protocols.sh.in, l3-l4-egress-port-ranges.sh.in and ipv6-egress-policy.sh.in in scripts/nvx_tools/microvm_test_scripts/ write each probe's result to a fixed path, /tmp/nvx-egress-<probe>, and clear those files with rm -f /tmp/nvx-egress-* before probing. In a guest, /tmp is private. But scripts/test_microvm_tests.py also runs each rendered script on the host, through the host's POSIX shell (_posix_shell()), for example in test_l3_l4_egress_protocol_script_reports_each_probe. Two runs of these tests at once on one host share /tmp, so one deletes or overwrites the other's probe files.
Running several validate-nvx blocks at once on one host made these tests fail with 70 != 0 and cat: /tmp/nvx-egress-tcp-inside: No such file or directory; each passed when run alone. We saw it on a Linux host and on a Windows host (Git for Windows' sh). Any host that runs these tests more than once at a time is affected.
Let the scripts take their scratch directory from the environment, defaulting to /tmp in the guest, and have the host-side tests give each run its own temporary directory.
Found while validating the stacked pull requests #955 to #992 against dev; it reproduces at dev itself. Related to #833.
Activity