Skip to content

Commit

Permalink
tests/int/delete: make sure runc delete removes failed unit
Browse files Browse the repository at this point in the history
The passing run (with the fix) looks like this:

----
delete.bats
 ✓ runc delete removes failed systemd unit [4556]
   runc spec (status=0):

   runc run -d --console-socket /tmp/bats-run-B08vu1/runc.lbQwU5/tty/sock test-failed-unit (status=0):

   Warning: The unit file, source configuration file or drop-ins of runc-cgroups-integration-test-12869.scope changed on disk. Run 'systemctl daemon-reload' to reload units.
   × runc-cgroups-integration-test-12869.scope - libcontainer container integration-test-12869
        Loaded: loaded (/run/systemd/transient/runc-cgroups-integration-test-12869.scope; transient)
     Transient: yes
       Drop-In: /run/systemd/transient/runc-cgroups-integration-test-12869.scope.d
                └─50-DevicePolicy.conf, 50-DeviceAllow.conf
        Active: failed (Result: timeout) since Tue 2023-06-13 14:41:38 PDT; 751ms ago
      Duration: 2.144s
           CPU: 8ms

   Jun 13 14:41:34 kir-rhat systemd[1]: Started runc-cgroups-integration-test-12869.scope - libcontainer container integration-test-12869.
   Jun 13 14:41:37 kir-rhat systemd[1]: runc-cgroups-integration-test-12869.scope: Scope reached runtime time limit. Stopping.
   Jun 13 14:41:38 kir-rhat systemd[1]: runc-cgroups-integration-test-12869.scope: Stopping timed out. Killing.
   Jun 13 14:41:38 kir-rhat systemd[1]: runc-cgroups-integration-test-12869.scope: Killing process 1107438 (sleep) with signal SIGKILL.
   Jun 13 14:41:38 kir-rhat systemd[1]: runc-cgroups-integration-test-12869.scope: Failed with result 'timeout'.
   runc delete test-failed-unit (status=0):

   Unit runc-cgroups-integration-test-12869.scope could not be found.
----

Before the fix, the test was failing like this:

----
delete.bats
 ✗ runc delete removes failed systemd unit
   (in test file tests/integration/delete.bats, line 194)
     `run -4 systemctl status "$SD_UNIT_NAME"' failed, expected exit code 4, got 3
  ....
----

Signed-off-by: Kir Kolyshkin <[email protected]>
(cherry picked from commit ad040b1)
Signed-off-by: Kir Kolyshkin <[email protected]>
  • Loading branch information
kolyshkin committed Jul 8, 2023
1 parent ebdd4fa commit ef6491e
Showing 1 changed file with 27 additions and 0 deletions.
27 changes: 27 additions & 0 deletions tests/integration/delete.bats
Original file line number Diff line number Diff line change
Expand Up @@ -168,3 +168,30 @@ EOF
# check delete subcgroups success
[ ! -d "$CGROUP_PATH"/foo ]
}

@test "runc delete removes failed systemd unit" {
requires systemd_v244 # Older systemd lacks RuntimeMaxSec support.

set_cgroups_path
# shellcheck disable=SC2016
update_config ' .annotations += {
"org.systemd.property.RuntimeMaxSec": "2",
"org.systemd.property.TimeoutStopSec": "1"
}
| .process.args |= ["/bin/sleep", "10"]'

runc run -d --console-socket "$CONSOLE_SOCKET" test-failed-unit
[ "$status" -eq 0 ]

wait_for_container 10 1 test-failed-unit stopped

local user=""
[ $EUID -ne 0 ] && user="--user"

# Expect "unit is not active" exit code.
run -3 systemctl status $user "$SD_UNIT_NAME"

runc delete test-failed-unit
# Expect "no such unit" exit code.
run -4 systemctl status $user "$SD_UNIT_NAME"
}

0 comments on commit ef6491e

Please sign in to comment.