X Tutup
Skip to content

Commit ffcb1cc

Browse files
committed
Fix delete error code on the containerd daemon side.
Signed-off-by: Lantao Liu <lantaol@google.com>
1 parent 772aaf1 commit ffcb1cc

File tree

3 files changed

+20
-8
lines changed

3 files changed

+20
-8
lines changed

runtime/v1/linux/task.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,9 +91,12 @@ func (t *Task) PID() uint32 {
9191

9292
// Delete the task and return the exit status
9393
func (t *Task) Delete(ctx context.Context) (*runtime.Exit, error) {
94-
rsp, err := t.shim.Delete(ctx, empty)
95-
if err != nil && !errdefs.IsNotFound(err) {
96-
return nil, errdefs.FromGRPC(err)
94+
rsp, shimErr := t.shim.Delete(ctx, empty)
95+
if shimErr != nil {
96+
shimErr = errdefs.FromGRPC(shimErr)
97+
if !errdefs.IsNotFound(shimErr) {
98+
return nil, shimErr
99+
}
97100
}
98101
t.tasks.Delete(ctx, t.id)
99102
if err := t.shim.KillShim(ctx); err != nil {
@@ -102,6 +105,9 @@ func (t *Task) Delete(ctx context.Context) (*runtime.Exit, error) {
102105
if err := t.bundle.Delete(); err != nil {
103106
log.G(ctx).WithError(err).Error("failed to delete bundle")
104107
}
108+
if shimErr != nil {
109+
return nil, shimErr
110+
}
105111
t.events.Publish(ctx, runtime.TaskDeleteEventTopic, &eventstypes.TaskDelete{
106112
ContainerID: t.id,
107113
ExitStatus: rsp.ExitStatus,

runtime/v2/shim.go

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -222,11 +222,14 @@ func (s *shim) Close() error {
222222
}
223223

224224
func (s *shim) Delete(ctx context.Context) (*runtime.Exit, error) {
225-
response, err := s.task.Delete(ctx, &task.DeleteRequest{
225+
response, shimErr := s.task.Delete(ctx, &task.DeleteRequest{
226226
ID: s.ID(),
227227
})
228-
if err != nil && !errdefs.IsNotFound(err) {
229-
return nil, errdefs.FromGRPC(err)
228+
if shimErr != nil {
229+
shimErr = errdefs.FromGRPC(shimErr)
230+
if !errdefs.IsNotFound(shimErr) {
231+
return nil, shimErr
232+
}
230233
}
231234
// remove self from the runtime task list
232235
// this seems dirty but it cleans up the API across runtimes, tasks, and the service
@@ -238,6 +241,9 @@ func (s *shim) Delete(ctx context.Context) (*runtime.Exit, error) {
238241
if err := s.bundle.Delete(); err != nil {
239242
log.G(ctx).WithError(err).Error("failed to delete bundle")
240243
}
244+
if shimErr != nil {
245+
return nil, shimErr
246+
}
241247
return &runtime.Exit{
242248
Status: response.ExitStatus,
243249
Timestamp: response.ExitedAt,

services/tasks/local.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ func (l *local) Delete(ctx context.Context, r *api.DeleteTaskRequest, _ ...grpc.
241241
}
242242
exit, err := t.Delete(ctx)
243243
if err != nil {
244-
return nil, err
244+
return nil, errdefs.ToGRPC(err)
245245
}
246246
return &api.DeleteResponse{
247247
ExitStatus: exit.Status,
@@ -257,7 +257,7 @@ func (l *local) DeleteProcess(ctx context.Context, r *api.DeleteProcessRequest,
257257
}
258258
process, err := t.Process(ctx, r.ExecID)
259259
if err != nil {
260-
return nil, err
260+
return nil, errdefs.ToGRPC(err)
261261
}
262262
exit, err := process.Delete(ctx)
263263
if err != nil {

0 commit comments

Comments
 (0)
X Tutup