From 07b74c091d886a5d85b1c090b22927ec2e1aef65 Mon Sep 17 00:00:00 2001 From: Djordje Lukic Date: Wed, 13 Sep 2023 16:43:25 +0200 Subject: [PATCH] Fix closing stdin Send the modify request even if stdin is nil, let the process handle it Signed-off-by: Djordje Lukic --- internal/hcs/process.go | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/internal/hcs/process.go b/internal/hcs/process.go index e437e297c0..65025f3f9b 100644 --- a/internal/hcs/process.go +++ b/internal/hcs/process.go @@ -421,12 +421,6 @@ func (process *Process) CloseStdin(ctx context.Context) (err error) { return makeProcessError(process, operation, ErrAlreadyClosed, nil) } - process.stdioLock.Lock() - defer process.stdioLock.Unlock() - if process.stdin == nil { - return nil - } - //HcsModifyProcess request to close stdin will fail if the process has already exited if !process.stopped() { modifyRequest := processModifyRequest{ @@ -448,8 +442,12 @@ func (process *Process) CloseStdin(ctx context.Context) (err error) { } } - process.stdin.Close() - process.stdin = nil + process.stdioLock.Lock() + defer process.stdioLock.Unlock() + if process.stdin != nil { + process.stdin.Close() + process.stdin = nil + } return nil }