diff --git a/kata-containers.spec b/kata-containers.spec index d636c124d39445bd80029c43a50b4c4e772697af..ab129c7432eb4f993322a9febd83562535b8d627 100644 --- a/kata-containers.spec +++ b/kata-containers.spec @@ -2,7 +2,7 @@ %global debug_package %{nil} %define VERSION v1.11.1 -%define RELEASE 14 +%define RELEASE 15 Name: kata-containers Version: %{VERSION} @@ -92,6 +92,12 @@ install -p -m 640 -D ./runtime/cli/config/configuration-qemu.toml %{buildroot}/u %changelog +* Wed May 12 2021 gaohuatao - 1.11.1-15 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:shimv2 write exit code in integer byte order + * Wed Apr 28 2021 gaohuatao - 1.11.1-14 - Type:feature - ID:NA diff --git a/runtime/kata-runtime.spec b/runtime/kata-runtime.spec index fb538d044d9f9a723d6d311d182a572752825a16..ee56aea6b10d5329ad5c9c056144df17f7529954 100644 --- a/runtime/kata-runtime.spec +++ b/runtime/kata-runtime.spec @@ -1,7 +1,7 @@ %define debug_package %{nil} %define VERSION 1.11.1 -%define RELEASE 12 +%define RELEASE 13 Name: kata-runtime Version: %{VERSION} @@ -100,6 +100,12 @@ install -p -m 640 ./cli/config/configuration-qemu.toml %{buildroot}/usr/share/de /usr/share/defaults/kata-containers/configuration.toml %changelog +* Wed May 12 2021 gaohuatao - 1.11.1-13 +- Type:bugfix +- ID:NA +- SUG:NA +- DESC:shimv2 write exit code in integer byte order + * Wed Apr 28 2021 gaohuatao - 1.11.1-12 - Type:feature - ID:NA diff --git a/runtime/patches/0073-write-exit-code-in-integer-byte-order.patch b/runtime/patches/0073-write-exit-code-in-integer-byte-order.patch new file mode 100644 index 0000000000000000000000000000000000000000..2667cbffd92267bbf5a9919ee6e75b1ece9305ed --- /dev/null +++ b/runtime/patches/0073-write-exit-code-in-integer-byte-order.patch @@ -0,0 +1,78 @@ +From 3282a8bb49fff14b1eb9742544803255bfa82a82 Mon Sep 17 00:00:00 2001 +From: gaohuatao +Date: Wed, 12 May 2021 17:17:41 +0800 +Subject: [PATCH] write exit code in integer byte order + +reason: write exit code in integer byte order just to adapt iSulad + +Signed-off-by: gaohuatao +--- + containerd-shim-v2/service.go | 23 ++++++++++++++++++++--- + 1 file changed, 20 insertions(+), 3 deletions(-) + +diff --git a/containerd-shim-v2/service.go b/containerd-shim-v2/service.go +index c85eb24..9c40f43 100644 +--- a/containerd-shim-v2/service.go ++++ b/containerd-shim-v2/service.go +@@ -6,14 +6,16 @@ + package containerdshim + + import ( ++ "bytes" + "context" ++ "encoding/binary" + "io/ioutil" + "os" + sysexec "os/exec" +- "strconv" + "sync" + "syscall" + "time" ++ "unsafe" + + eventstypes "github.com/containerd/containerd/api/events" + "github.com/containerd/containerd/api/types/task" +@@ -893,6 +895,12 @@ func (s *service) processExits() { + } + } + ++func isBigEndian() (ret bool) { ++ i := int(0x1) ++ bs := (*[int(unsafe.Sizeof(i))]byte)(unsafe.Pointer(&i)) ++ return bs[0] == 0 ++} ++ + func (s *service) closeExitFifo(e exit) { + if e.execid != "" { + // not a container, no need to close exit fifo +@@ -900,6 +908,7 @@ func (s *service) closeExitFifo(e exit) { + } + + var ret uint32 ++ var nativeEndian binary.ByteOrder + + s.mu.Lock() + c, err := s.getContainer(e.id) +@@ -914,9 +923,17 @@ func (s *service) closeExitFifo(e exit) { + // refill the exitCh with the container process's exit code in case + // there were other waits on this process. + c.exitCh <- ret +- exitStr := strconv.FormatUint(uint64(ret), 10) ++ ++ if isBigEndian() { ++ nativeEndian = binary.BigEndian ++ } else { ++ nativeEndian = binary.LittleEndian ++ } ++ ++ bytesBuffer := bytes.NewBuffer([]byte{}) ++ binary.Write(bytesBuffer, nativeEndian, &ret) + +- _, err = c.exitFd.Write([]byte(exitStr)) ++ _, err = c.exitFd.Write(bytesBuffer.Bytes()) + if err != nil { + logrus.WithError(err).Error("write exit fifo failed") + } +-- +2.20.1 + diff --git a/runtime/series.conf b/runtime/series.conf index b258f07334ff6042ea4897586248281f912db4a1..bb5bcf4726fdfb7846b230ed5da4e53841989fed 100644 --- a/runtime/series.conf +++ b/runtime/series.conf @@ -70,3 +70,4 @@ 0070-kata-runtime-remove-ctty-to-resolve-build-failed.patch 0071-fix-containerd-shim-kata-v2-compile-bug.patch 0072-kata-shimv2-adapt-iSulad-and-open-build-flag.patch +0073-write-exit-code-in-integer-byte-order.patch