Terminate linux shim on create failure
Since an error is returned via the RPC clients will assume (rightly so) that a call to the Delete() RPC is not necessary. Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
parent
47718b0930
commit
aac425c761
@ -97,7 +97,13 @@ func (r *Runtime) Create(ctx context.Context, id string, opts plugin.CreateOpts)
|
|||||||
os.RemoveAll(path)
|
os.RemoveAll(path)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err := r.handleEvents(s); err != nil {
|
// Exit the shim on error
|
||||||
|
defer func() {
|
||||||
|
if err != nil {
|
||||||
|
s.Exit(context.Background(), &shim.ExitRequest{})
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
if err = r.handleEvents(s); err != nil {
|
||||||
os.RemoveAll(path)
|
os.RemoveAll(path)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
@ -120,13 +126,13 @@ func (r *Runtime) Create(ctx context.Context, id string, opts plugin.CreateOpts)
|
|||||||
if len(sopts.Rootfs) == 0 {
|
if len(sopts.Rootfs) == 0 {
|
||||||
return nil, fmt.Errorf("no rootfs was specified for id %s", id)
|
return nil, fmt.Errorf("no rootfs was specified for id %s", id)
|
||||||
}
|
}
|
||||||
if _, err := s.Create(ctx, sopts); err != nil {
|
if _, err = s.Create(ctx, sopts); err != nil {
|
||||||
os.RemoveAll(path)
|
os.RemoveAll(path)
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
c := newContainer(id, s)
|
c := newContainer(id, s)
|
||||||
// after the container is create add it to the monitor
|
// after the container is create add it to the monitor
|
||||||
if err := r.monitor.Monitor(c); err != nil {
|
if err = r.monitor.Monitor(c); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
return c, nil
|
return c, nil
|
||||||
|
Loading…
Reference in New Issue
Block a user