Integration test task.Delete fix

task.Delete() will try to kill the task before delete it,
but once the task is killed, the TaskExit event will also
tigger another task.Delete() which would conflict with this
test task.Delete(). To avoid this conflict, kill the task instead
of Delete it, and let TaskExit trigger task.Delete().

Signed-off-by: lifupan <lifupan@gmail.com>
This commit is contained in:
lifupan 2019-05-08 12:24:28 +08:00
parent 82ff9372ad
commit 47fc645682

View File

@ -21,6 +21,7 @@ import (
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
"syscall"
"testing" "testing"
"time" "time"
@ -53,7 +54,9 @@ func TestSandboxCleanRemove(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
task, err := cntr.Task(ctx, nil) task, err := cntr.Task(ctx, nil)
require.NoError(t, err) require.NoError(t, err)
_, err = task.Delete(ctx, containerd.WithProcessKill) // Kill the task with signal SIGKILL, once the task exited,
// the TaskExit event will trigger the task.Delete().
err = task.Kill(ctx, syscall.SIGKILL, containerd.WithKillAll)
require.NoError(t, err) require.NoError(t, err)
t.Logf("Sandbox state should be NOTREADY") t.Logf("Sandbox state should be NOTREADY")