From 2aaec9f0f55c67b2c5aefb085dbd863ea273d735 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20L=C3=BCke?= Date: Tue, 12 Jan 2021 17:22:37 +0100 Subject: [PATCH] app-emulation/(docker*|containerd): Revert to Go 1.13 When Docker/containerd binaries are compiled with Go 1.15 the containers generate many signal 23 (SIGURG) events which flood monitoring systems: https://github.com/kubernetes/kops/issues/10388 The SIGURG signal does not kill the process but is generated by Go runtime scheduling: https://go.googlesource.com/proposal/+/master/design/24543-non-cooperative-preemption.md) Because the Go runtime does not know if the process expects external SIGURG signals, the signal is not filtered out but reported to the process: https://github.com/golang/go/issues/37942 The process has to filter this signal out itself before forwarding it to, e.g,. children processes or logs. This change was introduced with the Go 1.15 update (actually Go 1.14 but Flatcar skipped that for Stable), however, while containerd has some workarounds in place, e.g., in https://github.com/containerd/containerd/pull/4532 but there are still areas where the signal is not handled correctly. Until this is the case, downgrade to use the Go 1.13 compiler for Docker/containerd binaries. See https://github.com/kinvolk/Flatcar/issues/315 --- .../app-emulation/containerd/containerd-9999.ebuild | 2 +- .../app-emulation/docker-proxy/docker-proxy-9999.ebuild | 2 +- .../docker-runc/docker-runc-1.0.0_rc92.ebuild | 2 +- .../app-emulation/docker/docker-9999.ebuild | 2 +- .../hard-host-depends/hard-host-depends-0.0.1.ebuild | 1 + .../src/third_party/coreos-overlay/dev-lang/go/Manifest | 1 + .../coreos-overlay/dev-lang/go/go-1.13.15.ebuild | 8 ++++++++ 7 files changed, 14 insertions(+), 4 deletions(-) create mode 100644 sdk_container/src/third_party/coreos-overlay/dev-lang/go/go-1.13.15.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-9999.ebuild index 0ab52cb1d2..f946face7a 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/containerd/containerd-9999.ebuild @@ -5,7 +5,7 @@ EAPI=6 GITHUB_URI="github.com/containerd/containerd" COREOS_GO_PACKAGE="${GITHUB_URI}" -COREOS_GO_VERSION="go1.15" +COREOS_GO_VERSION="go1.13" if [[ ${PV} == *9999 ]]; then EGIT_REPO_URI="https://${GITHUB_URI}.git" diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-proxy/docker-proxy-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-proxy/docker-proxy-9999.ebuild index 4de3659762..6705098ff5 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-proxy/docker-proxy-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-proxy/docker-proxy-9999.ebuild @@ -5,7 +5,7 @@ EAPI=6 EGO_PN="github.com/docker/libnetwork" COREOS_GO_PACKAGE="${EGO_PN}" -COREOS_GO_VERSION="go1.15" +COREOS_GO_VERSION="go1.13" if [[ ${PV} == *9999 ]]; then KEYWORDS="~amd64 ~arm64" diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-runc/docker-runc-1.0.0_rc92.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-runc/docker-runc-1.0.0_rc92.ebuild index d0591ae38d..7b08b31855 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-runc/docker-runc-1.0.0_rc92.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker-runc/docker-runc-1.0.0_rc92.ebuild @@ -5,7 +5,7 @@ EAPI=6 GITHUB_URI="github.com/opencontainers/runc" COREOS_GO_PACKAGE="${GITHUB_URI}" -COREOS_GO_VERSION="go1.15" +COREOS_GO_VERSION="go1.13" # the commit of runc that docker uses. # see https://github.com/docker/docker-ce/blob/v19.03.14/components/engine/hack/dockerfile/install/runc.installer#L4 # Update the patch number when this commit is changed (i.e. the _p in the ebuild). diff --git a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild index 82da08764a..5298186d08 100644 --- a/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/app-emulation/docker/docker-9999.ebuild @@ -4,7 +4,7 @@ EAPI=6 COREOS_GO_PACKAGE="github.com/docker/docker-ce" -COREOS_GO_VERSION="go1.15" +COREOS_GO_VERSION="go1.13" if [[ ${PV} = *9999* ]]; then # Docker cannot be fetched via "go get", thanks to autogenerated code diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild index 563701d146..336271e7c1 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-base/hard-host-depends/hard-host-depends-0.0.1.ebuild @@ -44,6 +44,7 @@ RDEPEND="${RDEPEND} dev-lang/go:1.7 dev-lang/go:1.8 dev-lang/go:1.12 + dev-lang/go:1.13 dev-lang/go:1.15 dev-lang/go-bootstrap dev-lang/tcl diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/go/Manifest b/sdk_container/src/third_party/coreos-overlay/dev-lang/go/Manifest index 83910d9d04..d0bf97f588 100644 --- a/sdk_container/src/third_party/coreos-overlay/dev-lang/go/Manifest +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/go/Manifest @@ -1,4 +1,5 @@ DIST go1.12.17.src.tar.gz 20725913 BLAKE2B 2eef7374195302656268a42409619445dfeb3ede1f9218ae4eab195916876b97f7510cc62585a0bfdd9f86dddf8a74000032a84b29bc9891d84fc69db94f0274 SHA512 069f8f445d9d2268ebb14b2446fab34843d56283c04561636d122fd8b4c1ea0b63640a84437db7a7be71039440ffe170cd3f8025b03b0acf95f2a56fa2febec6 +DIST go1.13.15.src.tar.gz 21705183 BLAKE2B eac8c6113dd6cef164cc5368732c2dce26f200e309c728ca71b4c312ace465382b8cc1dd8fb216bdf927211d6cb26c21090a9ac9c9ef2d7ac1b16c85feac0e0c SHA512 35d3e7aaef1b0fc6ab684bb7352da3a23194115331ba7d1543225c35939cafcd437f454519aac38182cb8f222723ed9a297f9da566075b5e4079be26952a21e3 DIST go1.15.6.src.tar.gz 23019337 BLAKE2B d328401af9843f4a099dee7d82433ad2a0b349add0f2ecb609635814cca610e17a6fc50215e9928b8cb0d8ea8dd6ae9d84ffca125e1362dfb18ba08783bb4264 SHA512 f20e495204f32170d6554e8f4b64763dae8302a7859005020f650d1d53a5b15de3afbaff28e0b6418287396166c67bdc4c6bee7a0fd7ba8a87bb79b6c1d38326 DIST go1.6.3.src.tar.gz 12617426 BLAKE2B 4d51c4f848d29176282e61396ea8a6ae580e743cc4a21deb3b0fc1f417ed50ff33bec4f3712f4d0c89d33ce1ec34638d5fc1b356ff0b88a6cb290d5aae789d15 SHA512 43e9b01220788112a185500bd53f091e7a0023a790092f428e2f40fc1a334dd148558b99d2a1c871b8cc79ad7d2d87a092b93eee7b5a27c2ee675c494de35306 DIST go1.7.6.src.tar.gz 14173249 BLAKE2B 5202382c293213f02909c52c8057776abf1104bba3443db4956d9ab2aa37cfc0661eafb6f56d539384fd425c86aff4f6a756ecd09688d5be0086d761b2865b77 SHA512 b01846bfb17bf91a9c493c4d6c43bbe7e17270b9e8a229a2be4032b78ef9395f5512917ea9faab74a120c755bbd53bbd816b033caadcbb7679e91702b37f8c7f diff --git a/sdk_container/src/third_party/coreos-overlay/dev-lang/go/go-1.13.15.ebuild b/sdk_container/src/third_party/coreos-overlay/dev-lang/go/go-1.13.15.ebuild new file mode 100644 index 0000000000..6075ddc2a8 --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/dev-lang/go/go-1.13.15.ebuild @@ -0,0 +1,8 @@ +# Copyright 2019 Kinvolk GmbH. +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 + +inherit coreos-go-lang + +KEYWORDS="-* amd64 arm64"