Don't block on STDIN open
This was found testing other runtime shims that are faster than runc(no containerization). This is a race that can cause the shim to block forever. It's not an issue for out/err because we open both sides of the pipe, but for stdin, it expects the client to have it opened. Signed-off-by: Michael Crosby <crosbymichael@gmail.com>
This commit is contained in:
@@ -98,8 +98,7 @@ type service struct {
|
||||
ec chan runcC.Exit
|
||||
ep *epoller
|
||||
|
||||
id string
|
||||
// Filled by Create()
|
||||
id string
|
||||
bundle string
|
||||
cg cgroups.Cgroup
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console
|
||||
}
|
||||
|
||||
if stdin != "" {
|
||||
in, err := fifo.OpenFifo(ctx, stdin, syscall.O_RDONLY, 0)
|
||||
in, err := fifo.OpenFifo(ctx, stdin, syscall.O_RDONLY|syscall.O_NONBLOCK, 0)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user