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
Hello, I'm contributing to the open source project youki, which is a low level container runtime written in rust, like runc/crun. We're trying to make it pass containerd integration tests, and one of the issues I'm having is in test TestContainerKill. In it here https://github.com/containerd/containerd/blob/main/integration/client/container_test.go#L645 the test tries to send a second kill command and expect it to fail, as first command should have stopped the container. Now in this case youki is exiting with error, and status of 1, but the test is still failing with error :
container_test.go:642: expected error "not found" but received "unknown error after kill: runc did not terminate successfully:
exit status 1: Error: TestContainerKill could not be killed because it was Stopped\n: unknown"
I suspected that it failed the check in here https://github.com/containerd/containerd/blob/main/pkg/process/utils.go#L131 , as the log we give for the case container is stopped is different from what are checked in string. When I append one of the expected strings, the test pass. However, if possible I'd like to not change the error message given by youki. In the checkKillError function there is a check https://github.com/containerd/containerd/blob/main/pkg/process/utils.go#L138 which checks if error is ESRCH. However, even when youki exits with status 3, which is ESRCH, the test still fails with exited with unknown status 3.
So I want to ask, when is this check supposed to pass? Is there something that need to be set or exist status has to be different in order to make the comparison succeed?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Hello, I'm contributing to the open source project youki, which is a low level container runtime written in rust, like runc/crun. We're trying to make it pass containerd integration tests, and one of the issues I'm having is in test TestContainerKill. In it here https://github.com/containerd/containerd/blob/main/integration/client/container_test.go#L645 the test tries to send a second kill command and expect it to fail, as first command should have stopped the container. Now in this case youki is exiting with error, and status of 1, but the test is still failing with error :
I suspected that it failed the check in here https://github.com/containerd/containerd/blob/main/pkg/process/utils.go#L131 , as the log we give for the case container is stopped is different from what are checked in string. When I append one of the expected strings, the test pass. However, if possible I'd like to not change the error message given by youki. In the checkKillError function there is a check https://github.com/containerd/containerd/blob/main/pkg/process/utils.go#L138 which checks if error is ESRCH. However, even when youki exits with status 3, which is ESRCH, the test still fails with
exited with unknown status 3
.So I want to ask, when is this check supposed to pass? Is there something that need to be set or exist status has to be different in order to make the comparison succeed?
Thank you!
Beta Was this translation helpful? Give feedback.
All reactions