docker: fix blockThreshold full bug
Reference:dcfe23a038
(cherry picked from commit 0a4d9fd935beba53895f650ab233538f15f579db)
This commit is contained in:
parent
7a9b8e8216
commit
f4b7deed86
@ -1 +1 @@
|
||||
18.09.0.254
|
||||
18.09.0.255
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: docker-engine
|
||||
Version: 18.09.0
|
||||
Release: 254
|
||||
Release: 255
|
||||
Epoch: 1
|
||||
Summary: The open-source application container engine
|
||||
Group: Tools/Docker
|
||||
@ -199,6 +199,12 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Jun 27 2023 chenjiankun<chenjiankun1@huawei.com> - 18.09.0-255
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
- SUG:NA
|
||||
- DESC:fix blockThreshold full bug
|
||||
|
||||
* Thu Jun 08 2023 zhongjiawei<zhongjiawei1@huawei.com> - 18.09.0-254
|
||||
- Type:bugfix
|
||||
- CVE:NA
|
||||
|
||||
46
patch/0259-backport-fix-blockThreshold-full-bug.patch
Normal file
46
patch/0259-backport-fix-blockThreshold-full-bug.patch
Normal file
@ -0,0 +1,46 @@
|
||||
From dcfe23a0381da232eb427f8616abd8949fb9693e Mon Sep 17 00:00:00 2001
|
||||
From: ningmingxiao <ning.mingxiao@zte.com.cn>
|
||||
Date: Thu, 30 Dec 2021 23:10:48 +0800
|
||||
Subject: [PATCH] fix blockThreshold full bug
|
||||
|
||||
Signed-off-by: ningmingxiao <ning.mingxiao@zte.com.cn>
|
||||
|
||||
---
|
||||
components/engine/pkg/ioutils/bytespipe.go | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/components/engine/pkg/ioutils/bytespipe.go b/components/engine/pkg/ioutils/bytespipe.go
|
||||
index d4bbf3c9..e04a5bf5 100644
|
||||
--- a/components/engine/pkg/ioutils/bytespipe.go
|
||||
+++ b/components/engine/pkg/ioutils/bytespipe.go
|
||||
@@ -34,6 +34,7 @@ type BytesPipe struct {
|
||||
buf []*fixedBuffer
|
||||
bufLen int
|
||||
closeErr error // error to return from next Read. set to nil if not closed.
|
||||
+ readBlock bool // check read BytesPipe is Wait() or not
|
||||
}
|
||||
|
||||
// NewBytesPipe creates new BytesPipe, initialized by specified slice.
|
||||
@@ -86,6 +87,9 @@ loop0:
|
||||
|
||||
// make sure the buffer doesn't grow too big from this write
|
||||
for bp.bufLen >= blockThreshold {
|
||||
+ if bp.readBlock {
|
||||
+ bp.wait.Broadcast()
|
||||
+ }
|
||||
bp.wait.Wait()
|
||||
if bp.closeErr != nil {
|
||||
continue loop0
|
||||
@@ -131,7 +135,9 @@ func (bp *BytesPipe) Read(p []byte) (n int, err error) {
|
||||
bp.mu.Unlock()
|
||||
return 0, bp.closeErr
|
||||
}
|
||||
+ bp.readBlock = true
|
||||
bp.wait.Wait()
|
||||
+ bp.readBlock = false
|
||||
if bp.bufLen == 0 && bp.closeErr != nil {
|
||||
err := bp.closeErr
|
||||
bp.mu.Unlock()
|
||||
--
|
||||
2.23.0
|
||||
|
||||
@ -247,4 +247,5 @@ patch/0255-docker-libnet-d-overlay-extract-VNI-match-rule-builder.patch
|
||||
patch/0256-docker-libnet-d-overlay-document-some-encryption-code.patch
|
||||
patch/0257-docker-libnet-d-overlay-add-BPF-powered-VNI-matcher.patch
|
||||
patch/0258-docker-thinpool-full-because-kill-docker-daemon-when.patch
|
||||
patch/0259-backport-fix-blockThreshold-full-bug.patch
|
||||
#end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user