Skip to content

Commit e76a887

Browse files
committed
fix pipe in broken may cause shim lock forever for runtime v1
Signed-off-by: Lifubang <[email protected]>
1 parent b3438f7 commit e76a887

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

runtime/v1/shim/service_linux.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,11 @@ func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console
4949
cwg.Add(1)
5050
go func() {
5151
cwg.Done()
52-
p := bufPool.Get().(*[]byte)
53-
defer bufPool.Put(p)
54-
io.CopyBuffer(epollConsole, in, *p)
52+
bp := bufPool.Get().(*[]byte)
53+
defer bufPool.Put(bp)
54+
io.CopyBuffer(epollConsole, in, *bp)
55+
// we need to shutdown epollConsole when pipe broken
56+
epollConsole.Shutdown(p.epoller.CloseConsole)
5557
}()
5658
}
5759

runtime/v2/runc/service_linux.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ func (p *linuxPlatform) CopyConsole(ctx context.Context, console console.Console
5252
bp := bufPool.Get().(*[]byte)
5353
defer bufPool.Put(bp)
5454
io.CopyBuffer(epollConsole, in, *bp)
55+
// we need to shutdown epollConsole when pipe broken
5556
epollConsole.Shutdown(p.epoller.CloseConsole)
5657
}()
5758
}

0 commit comments

Comments
 (0)