go version
ïŒïŒ$ goããŒãžã§ã³ goããŒãžã§ã³go1.14rc1linux / amd64
golang:1.14-rc-alpine
docker imageã§ããããããããŸãããã1.13ã§ã¯ãšã©ãŒã¯çºçããŸããã
go env
ïŒïŒgo env
åºå
$ go env
GO111MODULE = ""
GOARCH = "amd64"
GOBIN = ""
GOCACHE = "/ root / .cache / go-build"
GOENV = "/ root / .config / go / env"
GOEXE = ""
GOFLAGS = ""
GOHOSTARCH = "amd64"
GOHOSTOS = "linux"
GOINSECURE = ""
GONOPROXY = ""
GONOSUMDB = ""
GOOS = "linux"
GOPATH = "/ go"
GOPRIVATE = ""
GOPROXY = "httpsïŒ//proxy.golang.org,direct"
GOROOT = "/ usr / local / go"
GOSUMDB = "sum.golang.org"
GOTMPDIR = ""
GOTOOLDIR = "/ usr / local / go / pkg / tool / linux_amd64"
GCCGO = "gccgo"
AR = "ar"
CC = "gcc"
CXX = "g ++"
CGO_ENABLED = "1"
GOMOD = ""
CGO_CFLAGS = "-g -O2"
CGO_CPPFLAGS = ""
CGO_CXXFLAGS = "-g -O2"
CGO_FFLAGS = "-g -O2"
CGO_LDFLAGS = "-g -O2"
PKG_CONFIG = "pkg-config"
GOGCCFLAGS = "-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length = 0 -fdebug-prefix-map = / tmp / go-build968395959 = / tmp / go-build -gno-record- gcc-switchesã
https://github.com/ethereum/go-ethereum
ã¯ããŒã³ãäœæãã Dockerfile
ã®ãã«ããŒããŒãžã§ã³ãgolang:1.14-rc-alpine
ã«çœ®ãæãïŒãŸãã¯äžã®Dockerfileã䜿çšïŒ ãã«ãŒããã
$ docker build .
FROM golang:1.14-rc-alpine
RUN apk add --no-cache make gcc musl-dev linux-headers git
ADD . /go-ethereum
RUN cd /go-ethereum && make geth
Goã¯ãã«ãã¹ã¯ãªãããæ£åžžã«å®è¡ããã¯ãã§ãã
Step 4/9 : RUN cd /go-ethereum && make geth
---> Running in 67781151653c
env GO111MODULE=on go run build/ci.go install ./cmd/geth
runtime: mlock of signal stack failed: 12
runtime: increase the mlock limit (ulimit -l) or
runtime: update your kernel to 5.3.15+, 5.4.2+, or 5.5+
fatal error: mlock failed
runtime stack:
runtime.throw(0xa3b461, 0xc)
/usr/local/go/src/runtime/panic.go:1112 +0x72
runtime.mlockGsignal(0xc0004a8a80)
/usr/local/go/src/runtime/os_linux_x86.go:72 +0x107
runtime.mpreinit(0xc000401880)
/usr/local/go/src/runtime/os_linux.go:341 +0x78
runtime.mcommoninit(0xc000401880)
/usr/local/go/src/runtime/proc.go:630 +0x108
runtime.allocm(0xc000033800, 0xa82400, 0x0)
/usr/local/go/src/runtime/proc.go:1390 +0x14e
runtime.newm(0xa82400, 0xc000033800)
/usr/local/go/src/runtime/proc.go:1704 +0x39
runtime.startm(0x0, 0xc000402901)
/usr/local/go/src/runtime/proc.go:1869 +0x12a
runtime.wakep(...)
/usr/local/go/src/runtime/proc.go:1953
runtime.resetspinning()
/usr/local/go/src/runtime/proc.go:2415 +0x93
runtime.schedule()
/usr/local/go/src/runtime/proc.go:2527 +0x2de
runtime.mstart1()
/usr/local/go/src/runtime/proc.go:1104 +0x8e
runtime.mstart()
/usr/local/go/src/runtime/proc.go:1062 +0x6e
...
make: *** [Makefile:16: geth] Error 2
ããã¯ãGoããã°ã©ã ã«å€§ããªåœ±é¿ãäžããã«ãŒãã«ã®ãã°ãåé¿ããããšããçµæã§ãã https://github.com/golang/go/issues/35777ãåç §ããŠ
ãšã©ãŒã¡ãã»ãŒãžã¯ãå©çšå¯èœãªæ¢ç¥ã®ä¿®æ£ã2ã€ãããªãããšã瀺ããŠããŸããulimitãå¢ããããæ°ããã«ãŒãã«ã«ã¢ããã°ã¬ãŒãããŸãã
ããŠãç§ã¯å ¬åŒã®ã¢ã«ãã€ã³ããã«ãŒã€ã¡ãŒãžãå®è¡ããŠããŸãããã®ç®çã¯ãGoããã°ã©ã ãæ§ç¯ã§ããããã«ããããšã§ãã ã©ãããããã¯ã§ããŸããã IMHOã¢ããã¹ããªãŒã ã€ã¡ãŒãžã¯ããã®ç®çãéæããããã«ä¿®æ£ããããã®ã§ããå¿ èŠããããŸããã¢ããã¹ããªãŒã ã€ã¡ãŒãžã®ãã°ãããã¯ããããã®ãã«ãã€ã³ãã©ã§ã¯ãããŸããã
ã¢ã«ãã€ã³ã®ã€ã¡ãŒãžã¯GoããŒã ã«ãã£ãŠç¶æãããŠããŸããïŒ ïŒæ¬ç©ã®è³ªåã§ããããã«ã€ããŠã¯ããããŸãããïŒãããã«ãããã¯ããã€ã¡ãŒãžã¯ä¿®æ£ããå¿ èŠããããŸããçæ³çã«ã¯ãã«ãŒãã«ãã¢ããã°ã¬ãŒãããŸãã
Dockerã€ã¡ãŒãžïŒhttps://hub.docker.com/_/golangïŒã誰ãã©ã®ããã«ç¶æãããã¯å®å šã«ã¯ããããŸããããDockerãããªããžããªã¯ãå ¬åŒã€ã¡ãŒãžãã§ãããã¹ããŒã¿ã¹ãååŸããã®ã¯éåžžã«å°é£ã§ããã§ãããç§ã¯ãé£ç©é£éã責任ãè² ãã®ã«ååãªé«ãã®èª°ããæ³å®ããŠããŸãã
ããã¯ãDockerã³ãã¥ããã£ã«ãã£ãŠç¶æãããŠããŸããã åé¡ã¯ã§æåºããå¿ èŠããããŸã
https://github.com/docker-library/golang/issues
ç·šéïŒåé¡ã¯ãã¹ãã«ãŒãã«ã§ãããDockerã©ã€ãã©ãªã€ã¡ãŒãžã§ã¯ãªããããä¿®æ£ã§ããŸããã
ããã§ãGoã¯ã©ãã·ã¥ã®å ¬åŒã®è§£æ±ºçã¯ãä»ã®ãã¹ãŠã®äººã«æãåããŠã³ãŒããããã¯ããããšã§ããïŒ çã«ããªã£ãŠããŸãã
@karalabehttpsïŒ//golang.org/conductãæãåºãããŠãã ããã ç¹ã«ãæ¬æãæããæ å掻åãè¡ã£ãŠãã ããã
質åã«çããŠãã ãã
åé¡ãæ£ããåé¡è¿œè·¡ã·ã¹ãã ã«ãªãã€ã¬ã¯ãããã®ãæšæºçãªæ¹æ³ã§ãã
GoåŽã§ã©ã®ãªãã·ã§ã³ãæ€èšããããã確èªãããå Žåã¯ãåã«ãªã³ã¯ããåé¡ã§èããããåé¿çãšä¿®æ£ã«ã€ããŠã®åºç¯ãªè°è«ããããŸãã
ãã®åé¡ã¯Go1.13ã§ã¯çºçããŸããã ãšã«ãŽãããã¯Go1.14ã§å°å ¥ããããã°ã§ãã
ã³ãŒãã®äžéšãå ã«æ»ããšå®éã«ä¿®æ£ããããããä¿®æ£ã§ããªããšèšã£ãŠåé¿çã䜿çšããããã«æ瀺ããã®ã¯äžæ£ã§ãã å¥ã®è§£æ±ºçã¯ãåé¡ã®ãããã©ãããã©ãŒã /ã«ãŒãã«ãæ€åºããGoã«çµã¿èŸŒãŸãããã©ãŒã«ããã¯ã¡ã«ããºã ãæäŸããããšã§ãã
å¥ã®ã«ãŒãã«ã䜿çšããããã«äººã ã«æ瀺ããããšã¯ãã»ãšãã©ã®äººãåšããåã£ãŠæ°ããã«ãŒãã«ãæ§ç¯ã§ããããã§ã¯ãªããããç¹ã«åä»ã§ãã alpineãæ°ããã«ãŒãã«ããªãªãŒã¹ããªãå Žåãã»ãšãã©ã®éçºè ãã§ããããšã¯ã»ãšãã©ãããŸããã ãããŠæåŸã«ããããžã§ã¯ããå®å®ããã€ã³ãã©ã¹ãã©ã¯ãã£ã«äŸåããŠããŠãã«ãŒãã«ã亀æããã ãã§ã¯äžååãªå Žåã¯ãåã³åé¡ãçºçããŸãã
åé¡ãæ£ããåé¡è¿œè·¡ã·ã¹ãã ã«ãªãã€ã¬ã¯ãããã®ãæšæºçãªæ¹æ³ã§ãã
Goãã¯ã©ãã·ã¥ãããšããäºå®ã¯ãDockerã®ããã§ã¯ãããŸããã Goã¯ã©ãã·ã¥ãDockerãªããžããªã«ãªãã€ã¬ã¯ãããã®ã¯ããã¿ã§ãã
å®è¡æã«ããªãšã³ããã£ãã¹ã±ãžã¥ãŒãªã³ã°ãç¡å¹ã«ããããšãã§ããŸã
$ GODEBUG=asyncpreemptoff=1 ./your_app
@ianlancetaylor圱é¿ãåããã«ãŒãã«ã§å®è¡ãããšãã«ããããè¡ãããšããå§ãããŸãã ããã¯å®è¡å¯èœã§ããïŒ
ãšããã§ãDockerã©ã€ãã©ãªã¢ãžã¥ãŒã«ãã¿ã€ã ãªãŒãªæŽæ°ãååŸããªãããšã¯æ¢ç¥ã®åé¡ã§ãããããã¯ã»ãã¥ãªãã£äžã®è²¬ä»»ã§ãã è²·ãæè²¬ä»»è² æ ã
ã«ãŒãã«ã®ãã°ã¯ãGo 1.13ã§ã©ã³ãã ãªã¡ã¢ãªç ŽæãšããŠçŸããŸããïŒããªãšã³ããã£ãã¹ã±ãžã¥ãŒãªã³ã°ãããšãªãã®äž¡æ¹ïŒã Go 1.14ã®æ°æ©èœã¯ããã°ã®ååšãæ€åºãããããåé¿ããããšãããããäžå¯èœãªå Žåã¯æ©æã«å€§é³éã§ã¯ã©ãã·ã¥ããããšã奜ãããšã§ãã ããªãã¯ç§ãããªãã«çŽ¹ä»ããåé¡ã§è©³çŽ°ãèŠãããšãã§ããŸãã
ããªãã¯ç§ãäžèª å®ã§åä»ã ãšåŒãã§ããã®ã§ãè¡åèŠç¯ã«ã€ããŠããäžåºŠæãåºãããŸãïŒ https ïŒ
@karalabe ãç§ã¯ééã£ãŠè©±ããŸãããåé¡ã¯ããªãã®ãã¹ãã«ãŒãã«ã§ãããDockerã€ã¡ãŒãžã§ã¯ãããŸããã æŽæ°ã§ããŸãããïŒ
$ uname -a
ã®åºåãã¡ã€ã³ã®åé¡ã®ããã¹ãã«è¿œå ã§ããŸããïŒ ãããŠããããããŽã«ãŒãã³ã¹ã¿ãã¯ãã¬ãŒã¹ãåé€ããŸããïŒ
golang-devã«ã¡ã¢ãæçš¿ããŸããã
cc @aclements
ããªããææ°ã®ubuntuãšã«ãŒãã«ã䜿çšããŠãããšèšããšããæ£ç¢ºã«ã¯ã©ãããæå³ã§ããïŒã€ãŸããdpkg -l linux-image- *ãlsb_release -aãuname -aããã®ãããªãã®ã®åºåïŒãä¿®æ£ã¯ã19.10ïŒçŸåšã®å®å®çãªãªãŒã¹ïŒãš20.04ïŒéçºãªãªãŒã¹ïŒã®äž¡æ¹ã®ã¢ããããŒããã±ããã®ã«ãŒãã«ã«ãããŸãã 18.04ã®GAã«ãŒãã«ã«ã¯å«ãŸããŠããŸããããHWEã«ãŒãã«ã«ã¯å«ãŸããŠããŸããããããã¯gcc 9ã§ãã«ããããŠããªãããã圱é¿ãåããããšã¯ãããŸããã
@networkimprovä¿¡å·ã®ããªãšã³ãã·ã§ã³ãç¡å¹ã«ãããšããã°ãçºçããå¯èœæ§ãäœããªããŸããããã°ã¯åŒãç¶ãååšããŸãã ããã¯ãç¹å®ã®Linuxã«ãŒãã«ããŒãžã§ã³ã®ãã°ã§ãã ãã®ãã°ã¯ããã¹ãŠã®èšèªã®ãã¹ãŠã®ããã°ã©ã ã«åœ±é¿ããŸãã ä¿¡å·ããªãšã³ãã·ã§ã³ã䜿çšããGoããã°ã©ã ã§ç¹ã«èŠ³å¯ãããå¯èœæ§ããããŸãããä»ã®ãã¹ãŠã®ããã°ã©ã ã«ãååšããŸãã
Goã¯ãã·ã°ãã«ã¹ã¿ãã¯ãmlockããããšã§ãã°ãåé¿ããããšããŸãã mlockã®å¶éã«éããªãéããããã¯æ£åžžã«æ©èœããŸãã ãã®åé¿çã®1ã€ã®æ¬ ç¹ã¯ãmlockãå®è¡ããªãã£ãå Žåã«çºçãããããªã©ã³ãã ãªã¡ã¢ãªã®ç Žæãåå ã§å€±æããããšãããã®ã§ã¯ãªããåé¡ãéåžžã«ç®ç«ãããããšã ãšæããŸãã
ããæç¹ã§ãã«ãŒãã«ã®ãã°ãåé¿ããæ¹æ³ã¯ãããŸããã
@karalabe
ç§ã¯ææ°ã®Ubuntuãšå©çšå¯èœãªææ°ã®ã«ãŒãã«ã䜿çšããŠããŸã
$ docker pull -q ubuntu:latest
docker.io/library/ubuntu:latest
$ docker run --rm -i -t ubuntu
root<strong i="9">@e2689d364a25</strong>:/# uname -a
Linux e2689d364a25 5.4.8-050408-generic #202001041436 SMP Sat Jan 4 19:40:55 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ããã¯æå°ããŒãžã§ã³èŠä»¶ãæºãããŠããŸãã
åæ§ã«ïŒ
$ docker pull -q golang:1.14-alpine
docker.io/library/golang:1.14-alpine
$ docker run --rm -i -t golang:1.14-alpine
/go # uname -a
Linux d4a35392c5b8 5.4.8-050408-generic #202001041436 SMP Sat Jan 4 19:40:55 UTC 2020 x86_64 Linux
ããªããèŠãŠãããã®ãæ確ã«ã§ããŸããïŒ
@mwhudson
$ dpkg -l linux-image-*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================================-============-============-===============================================================
rc linux-image-4.13.0-16-generic 4.13.0-16.19 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-19-generic 4.13.0-19.22 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-21-generic 4.13.0-21.24 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-25-generic 4.13.0-25.29 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-36-generic 4.13.0-36.40 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-37-generic 4.13.0-37.42 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-38-generic 4.13.0-38.43 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-41-generic 4.13.0-41.46 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.13.0-45-generic 4.13.0-45.50 amd64 Linux kernel image for version 4.13.0 on 64 bit x86 SMP
rc linux-image-4.15.0-23-generic 4.15.0-23.25 amd64 Signed kernel image generic
rc linux-image-4.15.0-30-generic 4.15.0-30.32 amd64 Signed kernel image generic
rc linux-image-4.15.0-32-generic 4.15.0-32.35 amd64 Signed kernel image generic
rc linux-image-4.15.0-34-generic 4.15.0-34.37 amd64 Signed kernel image generic
rc linux-image-4.15.0-36-generic 4.15.0-36.39 amd64 Signed kernel image generic
rc linux-image-4.15.0-39-generic 4.15.0-39.42 amd64 Signed kernel image generic
rc linux-image-4.15.0-42-generic 4.15.0-42.45 amd64 Signed kernel image generic
rc linux-image-4.15.0-43-generic 4.15.0-43.46 amd64 Signed kernel image generic
rc linux-image-4.15.0-45-generic 4.15.0-45.48 amd64 Signed kernel image generic
rc linux-image-4.15.0-47-generic 4.15.0-47.50 amd64 Signed kernel image generic
rc linux-image-4.18.0-17-generic 4.18.0-17.18 amd64 Signed kernel image generic
rc linux-image-5.0.0-13-generic 5.0.0-13.14 amd64 Signed kernel image generic
rc linux-image-5.0.0-15-generic 5.0.0-15.16 amd64 Signed kernel image generic
rc linux-image-5.0.0-16-generic 5.0.0-16.17 amd64 Signed kernel image generic
rc linux-image-5.0.0-17-generic 5.0.0-17.18 amd64 Signed kernel image generic
rc linux-image-5.0.0-19-generic 5.0.0-19.20 amd64 Signed kernel image generic
rc linux-image-5.0.0-20-generic 5.0.0-20.21 amd64 Signed kernel image generic
rc linux-image-5.0.0-21-generic 5.0.0-21.22 amd64 Signed kernel image generic
rc linux-image-5.0.0-25-generic 5.0.0-25.26 amd64 Signed kernel image generic
rc linux-image-5.0.0-27-generic 5.0.0-27.28 amd64 Signed kernel image generic
rc linux-image-5.0.0-29-generic 5.0.0-29.31 amd64 Signed kernel image generic
rc linux-image-5.0.0-32-generic 5.0.0-32.34 amd64 Signed kernel image generic
rc linux-image-5.3.0-19-generic 5.3.0-19.20 amd64 Signed kernel image generic
rc linux-image-5.3.0-22-generic 5.3.0-22.24 amd64 Signed kernel image generic
rc linux-image-5.3.0-23-generic 5.3.0-23.25 amd64 Signed kernel image generic
rc linux-image-5.3.0-24-generic 5.3.0-24.26 amd64 Signed kernel image generic
rc linux-image-5.3.0-26-generic 5.3.0-26.28 amd64 Signed kernel image generic
ii linux-image-5.3.0-29-generic 5.3.0-29.31 amd64 Signed kernel image generic
ii linux-image-5.3.0-40-generic 5.3.0-40.32 amd64 Signed kernel image generic
rc linux-image-extra-4.13.0-16-generic 4.13.0-16.19 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-19-generic 4.13.0-19.22 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-21-generic 4.13.0-21.24 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-25-generic 4.13.0-25.29 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-36-generic 4.13.0-36.40 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-37-generic 4.13.0-37.42 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-38-generic 4.13.0-38.43 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-41-generic 4.13.0-41.46 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
rc linux-image-extra-4.13.0-45-generic 4.13.0-45.50 amd64 Linux kernel extra modules for version 4.13.0 on 64 bit x86 SMP
ii linux-image-generic 5.3.0.40.34 amd64 Generic Linux kernel image
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
$ uname -a
Linux roaming-parsley 5.3.0-40-generic #32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
@myitcv
FROM golang:1.14-alpine
RUN apk add --no-cache make gcc musl-dev linux-headers git wget
RUN \
wget -O geth.tgz "https://github.com/ethereum/go-ethereum/archive/v1.9.11.tar.gz" && \
mkdir /go-ethereum && tar -C /go-ethereum -xzf geth.tgz --strip-components=1 && \
cd /go-ethereum && make geth
$ docker build .
Sending build context to Docker daemon 2.048kB
Step 1/3 : FROM golang:1.14-alpine
1.14-alpine: Pulling from library/golang
c9b1b535fdd9: Already exists
cbb0d8da1b30: Already exists
d909eff28200: Already exists
8b9d9d6824f5: Pull complete
a50ef8b76e53: Pull complete
Digest: sha256:544b5e7984e7b2e7a2a9b967bbab6264cf91a3b3816600379f5dc6fbc09466cc
Status: Downloaded newer image for golang:1.14-alpine
---> 51e47ee4db58
Step 2/3 : RUN apk add --no-cache make gcc musl-dev linux-headers git wget
---> Running in 879f98ddb4ff
[...]
OK: 135 MiB in 34 packages
Removing intermediate container 879f98ddb4ff
---> 9132e4dae4c3
Step 3/3 : RUN wget -O geth.tgz "https://github.com/ethereum/go-ethereum/archive/v1.9.11.tar.gz" && mkdir /go-ethereum && tar -C /go-ethereum -xzf geth.tgz --strip-components=1 && cd /go-ethereum && make geth
---> Running in a24c806c60d3
2020-02-26 07:18:54-- https://github.com/ethereum/go-ethereum/archive/v1.9.11.tar.gz
[...]
2020-02-26 07:18:58 (2.48 MB/s) - 'geth.tgz' saved [8698235]
env GO111MODULE=on go run build/ci.go install ./cmd/geth
runtime: mlock of signal stack failed: 12
runtime: increase the mlock limit (ulimit -l) or
runtime: update your kernel to 5.3.15+, 5.4.2+, or 5.5+
fatal error: mlock failed
ç³ãèš³ãããŸããããç§ã®åã®ã³ã¡ã³ãã¯èª€è§£ãæããã®ã§ããã ãã¡ãããDockerã³ã³ããå
ã§uname -a
ã«ãã£ãŠè¿ãããã«ãŒãã«ããŒãžã§ã³ã¯ããã¹ãã®ããŒãžã§ã³ã«ãªããŸãã
ãããã£ãŠã次ã®ããã«ãªããŸãã
$ uname -a
Linux roaming-parsley 5.3.0-40-generic #32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
ãã¹ãOSã«ãŒãã«ãã¢ããã°ã¬ãŒãããå¿ èŠããããŸãã
FWIWãAlpineã䜿çšããŠmake geth
ã䜿çšããŠäžèšã§ã¬ã€ã¢ãŠãããæé ã¯ãç§ã«ãšã£ãŠ
...
Done building.
Run "./build/bin/geth" to launch geth.
ã¯ãããã ãã以åã®æçš¿ã§ãç§ã¯ãã§ã«ææ°ã®Ubuntuã䜿çšããŠãããããã±ãŒãžãªããžããªããå©çšå¯èœãªææ°ã®ã«ãŒãã«ãã€ã³ã¹ããŒã«ããŠããããšã匷調ããŸããã ãœãŒã¹ããã«ãŒãã«å šäœãåæ§ç¯ãã以å€ã«ãGo1.14ã§åäœããããã«ã«ãŒãã«ãæŽæ°ããæ¹æ³ãããããŸããã å€åç§ã¯äœããæ¬ ããŠããŸããïŒ
匷調ããããã«ãç§ã¯åé¿çãäœã§ããããç解ããŠããŸãããããŠç§ããããæ©èœããããã®ã§ããã°ãç§ã¯ããããããšãã§ããŸãã æçµçã«ã¯ä»ã®äººã«ãåãåé¡ãçºçããããšãäºæ³ãããã®ã§ããã®åé¡ã¬ããŒããéããŸããã ã·ã¹ãã ãæŽæ°ããã ãã§åé¡ã解決ããå Žåã¯ãããã解決çãšããŠåãã§åãå ¥ããŸãããäœãã足ããªãå Žåãé€ããŠãåºå®ã«ãŒãã«ã¯ïŒæè¿ã®ïŒUbuntuãŠãŒã¶ãŒã«ã¯å©çšã§ããªããããããªã倧ããªãŠãŒã¶ãŒããŒã¹ã圱é¿ãåããå¯èœæ§ããããŸãã
ã¯ãããã ãã以åã®æçš¿ã§ãç§ã¯ãã§ã«ææ°ã®Ubuntuã䜿çšããŠãããããã±ãŒãžãªããžããªããå©çšå¯èœãªææ°ã®ã«ãŒãã«ãã€ã³ã¹ããŒã«ããŠããããšã匷調ããŸããã ãœãŒã¹ããã«ãŒãã«å šäœãåæ§ç¯ãã以å€ã«ãGo1.14ã§åäœããããã«ã«ãŒãã«ãæŽæ°ããæ¹æ³ãããããŸããã å€åç§ã¯äœããæ¬ ããŠããŸããïŒ
ããŒããã¯ããç§ãçŠç¹ãåãããŠåçŸããŸããã ä¿®æ£ã¯Ubuntueoanã«ãŒãã«ã®gitã«ãããŸãïŒ https ïŒ//kernel.ubuntu.com/git/ubuntu/ubuntu-eoan.git/commit/ïŒid = 59e7e6398a9d6d91cd01bc364f9491dc1bf2a426ãããŠãã®ã³ãããã¯5.3ã®ç¥å ã«ãããŸãã 0-40.32ãªã®ã§ãä¿®æ£ã¯äœ¿çšããŠããã«ãŒãã«ã«ããã¯ãã§ãã èšãæããã°ãã«ãŒãã«ããŒã ãå·»ã蟌ãå¿ èŠããããšæããŸããããããããšæããŸãã
@ karalabe-ééãã«æ°ã¥ããŸãããææ°ã®Ubuntuã䜿çšããŠããŸããããå®éã«ã¯eoan
ãŸãã
@ mwhudson-泚æãã¹ãããšã¯1ã€ã ãã§ãïŒãããããã§ã«ãããç¥ã£ãŠããã§ããããïŒããã®ã¹ã€ããã®åå ãšãªãã³ãŒãã®è¡šé¢çãªäžç¥ïŒ
GoåŽãããããªãªãŒã¹15以éããã§ãã¯ããŠããããšã瀺åããŠããããã§ãã 5.3.0-40.32ã¯ãããããŒãžã§ã³ãšããŠäœãå ±åããŸããïŒ ç§ã¯0ãæšæž¬ããŠããŸããïŒ
ããã§åé¡ã解決ãããŸã§ããã®ãã£ã¹ã«ãã·ã§ã³ãåéããŸãã
èªåã§ã€ãªãåãããªããã°ãªããªãã£ãã®ã§ãå°ãèŠçŽããŸãã
ãããã£ãŠãUbuntuã®ã«ãŒãã«ã«ã¯ããããé©çšãããŠããããã§ãããåé¿çã¯ãšã«ããæå¹ã«ãªããŸãã
ãããã£ãŠãUbuntuã®ã«ãŒãã«ã«ã¯ããããé©çšãããŠããããã§ãããåé¿çã¯ãšã«ããæå¹ã«ãªããŸãã
ãããããç§ã¯å®éã«å€±æãèªãã¹ãã§ã¯ãããŸãããïŒ ããã¯ãåé¿çãå®éã«ã¯å¿ èŠãªãããGoããããç¥ãè¯ãæ¹æ³ããªãå Žåãå ã®ãã°ã§ã¯ãªããåé¿çã倱æããããšã§ãã Ubuntuã§Go1.14ããã±ãŒãžã®ãã§ãã¯ã¢ãŠãã«ããããé©çšã§ããŸããã
åé¡ã¯ãçŸæç¹ã§ãè匱ãªãã«ãŒãã«ã䜿çšããŠãããŠãŒã¶ãŒã®æ°ã ãšæããŸãã ä»ã®ãšãããããããé©çšãããŠããªãã«ãŒãã«ãgcc9ã§ã³ã³ãã€ã«ããŠãããã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ããã»ã©å€ããããŸããã
ãããªã«å€ãã¯ããããªã...
æåãªæåŸã®èšèïŒ ïŒD
ãšã¯ãããçé¢ç®ãªè©±ã§ãããã«ãŒãã«ãé »ç¹ã«æŽæ°ãã人ã¯ããªããšæããŸããå€ãã®ã·ã¹ãã ã§ã¯æŽæ°ã§ããŸããã ãããããã©ã®ã·ã¹ãã /ãã£ã¹ããªãã¥ãŒã·ã§ã³ãããã©ã«ãã§è匱ãªã«ãŒãã«ã䜿çšããŠ
Ubuntuã§Go1.14ããã±ãŒãžã®ãã§ãã¯ã¢ãŠãã«ããããé©çšã§ããŸããã
ãŸãããœãŒã¹ãããã«ããããŠãŒã¶ãŒãèŠéãããšã«ãªããŸãã ããšãã°ãLaunchpadã®ãã¹ãŠã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«æè¿ã®Goãã³ãã«ããªããããEthereumã¯PPAã®ãœãŒã¹ãã«ããå®è¡ããŸãã
UbuntuïŒããã³ä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒãLinuxã«ãŒãã«ããããªãªãŒã¹ã«åŸã代ããã«ãã§ãªãŒãããã³ã°ã䜿çšããã®ã¯äžè¬çã§ããïŒ https://packages.ubuntu.com/search?keywords=linux-image-genericã§ã¯ããã¹ãŠã®ã«ãŒãã«ã®ããããªãªãŒã¹ããŒãã«ãªã£ãŠããŸãã
Googleã§ãã°ããæ€çŽ¢ããéããUbuntuã¯ããã£ã¹ããªãã¥ãŒã·ã§ã³ã®åºè·åŸã«æ°ããã«ãŒãã«ããªãªãŒã¹ããã®ã§ã¯ãªããã»ãã¥ãªãã£ä¿®æ£ãéžæããã ãã§ãïŒã€ãŸãããããããŒãžã§ã³ã®ãã³ãã¯ãããŸããïŒã ããã®äŸå€ã¯LTSããŒãžã§ã³ïŒ5幎éãµããŒãïŒã§ãæ°ããããŒããŠã§ã¢ããµããŒãããããã«æ°å¹Žããšã«ã«ãŒãã«ã®æŽæ°ãååŸããå¯èœæ§ããããŸãïŒãã ãããããéåžžã«ãŸãã§ãïŒã ä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã€ããŠã¯ç¥ããŸããã
ä»ã®ç§ã®éãããç¥èã§ã¯ãããã¯å¥åŠã«æããŸãã ããããªãªãŒã¹ã¯ãå¶åŸ¡ãããæ¹æ³ã§ããããé åžããããšãç®çãšããŠããããããŠãŒã¶ãŒïŒãã®å Žåã¯Goã©ã³ã¿ã€ã ïŒã¯ãå«ãŸããŠããããããšå«ãŸããŠããªãããããç¥ãããšãã§ããŸãã ããããããã¯çŸç¶ãªã®ã§ãç§ãã¡ã¯ãããšäžç·ã«æ®ããå¿ èŠããããŸãã
æªè§£æ±ºã®è³ªåïŒ
ulimit
ã¯å®è¡å¯èœãªåé¿çã§ããïŒ@neelance
UbuntuïŒããã³ä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒãLinuxã«ãŒãã«ããããªãªãŒã¹ã«åŸã代ããã«ãã§ãªãŒãããã³ã°ã䜿çšããã®ã¯äžè¬çã§ããïŒ
Ubuntuã ãã§ãªããå€ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ããããè¡ã£ãŠããŸãã Debianããããè¡ããRed Hat Enterprise Linuxããããè¡ããSUSEããšã³ã¿ãŒãã©ã€ãºãã£ã¹ããªãã¥ãŒã·ã§ã³ã«å¯ŸããŠããããè¡ãããšãæåŸ ããŠããŸãã ã¢ããã¹ããªãŒã ã®å®å®ãããªãªãŒã¹ãç©æ¥µçã«ãã©ããŒã§ããªãå ŽåïŒããã³ã¢ããã¹ããªãŒã ã®ãµããŒãããªããªããšå®å®ãããªãªãŒã¹ãåãæ¿ããå ŽåïŒããã°ä¿®æ£ãååŸããå¯äžã®æ¹æ³ã¯ãã§ãªãŒãããã³ã°ã§ãã Fedoraã¯äŸå€ã§ãã å°ãçµã€ãšãææ°ã®å®å®ãããªãªãŒã¹ã®ã¢ããã¹ããªãŒã ã«ãŒãã«ã«ãªããŒã¹ãããŸãã
ã³ã³ãããšã³ãžã³ã§äœ¿çšããããããã©ã€ãšã¿ãªã«ãŒãã«ã®åé¡ããããŸãã ãããã®ãœãŒã¹ãèŠãããšããã§ããããããã®ããã€ãã¯éå»ã«ã«ãŒãã«ã®ããŒãžã§ã³çªå·ã«ã€ããŠåãã€ããããšããããŸãã ãããããŒç©ãã䜿ã£ãŠãããšæããŸãã
äžè¬ã«ãã«ãŒãã«æ©èœïŒãŸãã¯ãã°ïŒã®ããŒãžã§ã³ãã§ãã¯ã¯æ¬åœã«æªãèãã§ãã éçãªã³ã¯ã®ããã«Goã®å Žåã¯ããã«æªãã®ã§ãã¢ããªã±ãŒã·ã§ã³ã®äžã®ã©ã³ã¿ã€ã ã亀æããŠã«ãŒãã«ã®æåŸ ãä¿®æ£ããããšã¯äžå¯èœã§ãã
UbuntuïŒããã³ä»ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ïŒãLinuxã«ãŒãã«ããããªãªãŒã¹ã«åŸã代ããã«ãã§ãªãŒãããã³ã°ã䜿çšããã®ã¯äžè¬çã§ããïŒ https://packages.ubuntu.com/search?keywords=linux-image-genericã§ã¯ããã¹ãŠã®ã«ãŒãã«ã®ããããªãªãŒã¹ããŒãã«ãªã£ãŠããŸãã
åºæ¬ã«ãŒãã«ããŒãžã§ã³æååã¯å€æŽãããŸãããããã¯æ¬åœã§ãã ãã ããã¢ããã¹ããªãŒã ã®å®å®çãªãªãŒã¹ãããŒãžãããªããšããæå³ã§ã¯ãããŸãããã³ãŒããå€æŽããããšã代ããã«ABIçªå·ãå¢å ããŸãã
é©åãªå€æŽãã°ã衚瀺ããªãã¡ã¿ããã±ãŒãžãéžæããããšã«æ³šæããŠãã ãããããã§ã¯ãææ°ããŒãžã§ã³5.4.0-14.17ã5.4.18å®å®çãªãªãŒã¹ã«ããŒãžãããŠããããšãããããŸãã
http://changelogs.ubuntu.com/changelogs/pool/main/l/linux-5.4/linux-5.4_5.4.0-14.17/changelog
ãã¹ãŠã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§é©åãªèªåæ€åºãè¡ãããšã¯ã»ãŒäžå¯èœã®ããã§ãã 3ã€ã®ãªãã·ã§ã³ããããŸãã
ãŸãã¯ã5.3.xããã³5.4.xã§ããã©ã«ãã§éåæããªãšã³ãã·ã§ã³ãç¡å¹ã«ãããŠãŒã¶ãŒãå®è¡æã«æå¹ã«ããããã«ããŸãã
https://github.com/golang/go/issues/37436#issuecomment -591237929ã¯ãéåæããªãšã³ãã·ã§ã³ãç¡å¹ã«ããããšã¯é©åãªè§£æ±ºçã§ã¯ãªããšè¿°ã¹ãŠããŸããã
å³å¯ã«èšãã°ãéåæããªãšã³ãã·ã§ã³ãçºçããåã«åé¡ã®å ±åã¯ãããŸããã§ããã
å®éãã©ã³ã¿ã€ã ã¯èµ·åæã«åããã»ã¹ïŒ5.3.xããã³5.4.xã®å ŽåïŒããã©ãŒã¯ããŠãã°ãããªã¬ãŒããçºçããå Žåã¯åé¿çãæå¹ã«ããããšãã§ããŸããïŒ IIRCã«ã¯ä¿¡é Œã§ããåçŸæ©èœããããŸããhttpsïŒ //github.com/golang/go/issues/35326#issuecomment-558690446ãåç §ããŠ
éåæããªãšã³ãã·ã§ã³ãç¡å¹ã«ããããšã¯æ°ãæ£ãããã®ã§ãã é害ã®ããã«ãŒãã«ã§å®è¡ãããŠããããã°ã©ã ã¯ãŸã å£ããŠããŸãã ã«ãŒãã«ããŒãžã§ã³ãæãmlock
å¶éã«ééããããšã«é¢ãããšã©ãŒãšããŠã§ã¯ãªããå¥åŠãªã¡ã¢ãªç ŽæãšããŠè¡šç€ºãããã ãã§ãã æããã«åé¡ãå®å
šã«ä¿®æ£ãããã®ã§ãããæ確ãªãšã©ãŒãŸãã¯ã©ã³ãã ãªã¡ã¢ãªã®ç Žæãéžæããå Žåã¯ãåžžã«æ確ãªãšã©ãŒãéžæããå¿
èŠããããšæããŸãã
ã«ãŒãã«ããŒãžã§ã³ã®æ€åºãã²ã©ãããšã«åæããŸããããã¯ãä»ã®ãªãã·ã§ã³ãããããªããšããããšã ãã§ãã 誰ãããã®ç¹ã§äœãææ¡ãããã°ãããã¯éåžžã«åœ¹ã«ç«ã¡ãŸãã
ã§ããããšã®1ã€ã¯ã GODEBUG
èšå®ãè¿œå ããŠãã·ã°ãã«ã¹ã¿ãã¯ã®mlock
ãç¡å¹ã«ããããšã§ãã ããã¯äººã
ã«å®éã®åé¡ã«çŠç¹ãåãããåé¿çãäžããã§ãããã ãšã©ãŒã¡ãã»ãŒãžã§ãã®èšå®ã«ã€ããŠèšåããããšãã§ããŸãã ã«ãŒãã«ã«ããããé©çšãããŠãããã©ããã«é¢ä¿ãªããèšå®ããªã³ã«ããããšã«ã€ãªããã®ã§ã¯ãªãããšå¿é
ããŠããŸãã ããããå°ãªããšããããããé©çšããã«ãŒãã«ãå®éã«æã£ãŠãã人ã«ã¯ããã®åé¡ãåé¿ããæ¹æ³ãæäŸãããŸãã CC @aclements
å®éãã©ã³ã¿ã€ã ã¯èµ·åæã«åããã»ã¹ïŒ5.3.xããã³5.4.xã®å ŽåïŒããã©ãŒã¯ããŠãã°ãããªã¬ãŒããçºçããå Žåã¯åé¿çãæå¹ã«ããããšãã§ããŸããïŒ IIRCã«ã¯ä¿¡é Œã§ããåçè£ çœ®ããããŸããïŒ35326ïŒã³ã¡ã³ãïŒãåç §ããŠãã ããã
ããã¯èå³æ·±ãã¢ã€ãã¢ã§ããããã®å Žåããã¹ãŠã®Goããã°ã©ã ã®èµ·åæã«ãã¹ããå®è¡ããã«ã¯ã³ã¹ãããããããããšæããŸãã
ç§ã¯äœããèŠéãããããããŸãããïŒãã®ã¹ã¬ããã¯éãé·ããªããŸããïŒïŒãmlockå¶éãäžããã ãã®æ¬ ç¹ãŸãã¯é£ããã¯äœã§ããïŒç¡å¶éã«èšå®ããçç±ã¯ã»ãšãã©ãããŸãããããããæãŸãªãå Žåã§ããã¹ã¬ããããšã«4 KiBããå¿
èŠãªããããæåéããåäžããã»ã¹ã®ã©ã³ã¿ã€ã ãmlockã§ãã64MiBãããå€ããªããŸãã ã AFAIKãã»ãšãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ããã©ã«ãã§ç¡å¶éã®ãŸãŸã«ããŸããç§ãç¥ã£ãŠããå¯äžã®æ³šç®ãã¹ãäŸå€ã¯Dockerã§ãããã¯ããã©ã«ãã§64 KiBã«èšå®ãããŠããŸãããããã¯--ulimit memlock=67108864
ãDockerã«æž¡ãããšã§çºçããŸãã
ãã§ã«ããªãç°¡åãªåé¿çãæŽã£ãŠããããã§ãã人ã ããããããã®ã劚ããäœãããããŸããïŒ
åé¡ã®ãã€ã³ãã¯ãå¯èœã§ããã°ãæåã®åé¿çãé©çšããå¿ èŠããªããšããããšã§ãã 1.14ã®ãªã°ã¬ãã·ã§ã³ã®ããã«èŠããŸãã
Dockerã©ã€ãã©ãªåŽã§ä¿®æ£ããããšã¯ã§ããŸããïŒ https ïŒ
ulimit
åé¿çã®åé¡ã¯ãæéç匟ã§ãããšããããšã§ãã çŸåšãGo1.13ã§ulimitãäžããå¿
èŠã®ããèªåããã»ã¹ã¯ãããŸããã æŽæ°çŽåŸã«Go1.14ã倱æããå Žåã¯ãããã«æ°ã¥ããŠä¿®æ£ããŸãã
ããèå³æ·±ãã·ããªãªã¯ã誰ãã圱é¿ãåããŠããªãå€ãããŒãžã§ã³ã®ã«ãŒãã«ã䜿çšããããæç¹ã§ã«ãŒãã«ãæ°ããããŒãžã§ã³ã«åãæ¿ããå Žåã«äœãèµ·ãããã§ãã çªç¶ãã¹ãŠãå£ãå§ããŸãããGoã¯ã¢ããªå±€ã§ãããã«ãŒãã«ã¯OSå±€ã§ãããããæ¥ç¶ã確ç«ããŠä¿®æ£ãèŠã€ããã«ã¯æéãããããŸãã åé¡ã¯ãã³ã¹ããã©ããªããã§ãã
Goã³ã³ãã€ã©ã ããªã®ããGoã§æ§ç¯ããããã¹ãŠã®ã¢ããªã«ãåé¡ãããã®ãââã©ããã¯ããã«ã¯ããããŸããã ã³ã³ãã€ã©ã ãã®å Žåãããã¯å¹žéãªã±ãŒã¹ã§ãããæŸå°æ§éäžç©ãå°ã蟌ããããšãã§ããŸãã ãã ãã1.14ã§ãã«ãããããã¹ãŠã®Goã¢ããªããããã¯ã«ãªãåŸåãããå Žåãããã¯ãã«ãæžã¿ã®ãã€ããªç§»æ€æ§ãå®éã«æãªãå¯èœæ§ããããŸããçªç¶ãç§ã®ã³ãŒããå¥ã®ã·ã¹ãã ã§åäœããªããªã
Goã³ã³ãã€ã©ã ããªã®ããGoã§æ§ç¯ããããã¹ãŠã®ã¢ããªã«ãåé¡ãããã®ãââã©ããã¯ããã«ã¯ããããŸããã
Linuxã«ãŒãã«ã®ãã°ã¯Goåºæã®ãã®ã§ã¯ãããŸããã ç§ãæ£ããç解ããŠããã°ãããã¯ãã¹ãŠã®ããã°ã©ã ã«åœ±é¿ããŸãâ Cã§æžããããã®ã§ãïŒ â XMMãŸãã¯YMMã¬ãžã¹ã¿ã䜿çšããä¿¡å·ãåä¿¡ããå ŽåããããŸãã 1.14æªæºã®Goããã°ã©ã ã¯ããŽã«ãŒãã³ã®ããªãšã³ãã·ã§ã³ã«å
éšçã«ã·ã°ãã«ã䜿çšãããããä»ã®å€ãã®ããã°ã©ã ãããæ·±å»ãªåœ±é¿ãåããŸãããã®ãããGo 1.14ã©ã³ã¿ã€ã ã«ã¯mlock
åé¿çãå«ãŸããŠããŸãã
Linuxã«ãŒãã«ã®ãã°ã¯Goåºæã®ãã®ã§ã¯ãããŸããã
ãããã§ãç§ã®ã«ãŒãã«ã«ã¯ããããé©çšãããŠããŸãããGoã¯ãŸã ãããã¯ã«ãªã£ãŠããŸã:)
@aclements
ç§ãç¥ã£ãŠããå¯äžã®æ³šç®ãã¹ãäŸå€ã¯Dockerã§ãããã©ã«ãã§64 KiBã«èšå®ãããŠããŸãããããã¯--ulimit memlock = 67108864ãDockerã«æž¡ãããšã§çºçããŸãã
ãã§ã«ããªãç°¡åãªåé¿çãæŽã£ãŠããããã§ãã 人ã ããããããã®ã劚ããäœãããããŸããïŒ
æ®å¿µãªããããã§ãã ããã§ã®ç§ãã¡ã®å ŽåãDockerã³ã³ãããåæ§æããããã«ã客æ§ã«æ瀺ããããšã¯ã§ããŸããã æ°ãå€ãããŠãã»ããã¢ããã®ç°å¢å€åã«ææã§ãã å®éãDockerã³ã³ãããŒã§ã¢ããªã±ãŒã·ã§ã³ãæäŸããããšãéžæããã®ã¯ãã®ããã§ãããã®ãããåé¢ããŒã«ã®ãã¡ãµãŒãã«ãããæ§æãªãã·ã§ã³ã®å€æŽã«é¢ããå¿é ã軜æžãããŸãã ã³ã³ããã®å 容ãå€æŽããããšã¯åé¡ãããŸããããã³ã³ãããåŒã³åºãæ¹æ³ã¯ããã»ã©é©åã§ã¯ãªãå¯èœæ§ããããŸãã
@aclements
ç¡å¶éã«èšå®ããçç±ã¯ã»ãšãã©ãããŸãããããããæãŸãªãå Žåã§ããã¹ã¬ããããšã«4 KiBããå¿ èŠãªããããæåéããåäžããã»ã¹ã®ã©ã³ã¿ã€ã ãmlockã§ãã64MiBãããå€ããªããŸãã ã AFAIKãã»ãšãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ããã©ã«ãã§ç¡å¶éã®ãŸãŸã«ããŸãã
ããã§ã¯ãªãããã§ã-ããã¯ãããã¯ã¹ããŒã¹ã«6KiBãããªãUbuntuLTSã§ãã
~$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 3795
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 3795
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.6 LTS
Release: 16.04
Codename: xenial
~$ uname -a
Linux bastion0 4.4.0-174-generic #204-Ubuntu SMP Wed Jan 29 06:41:01 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
æ£ããåäœããããã«ããããé©çšãããŠããããGoãçŸåšmlock
ãšã©ãŒãçæããŠããã«ãŒãã«ã®äŸã®/proc/version
ã®å
容ã¯äœã§ããïŒ ããããšãã
@ucirello説æããŠããã·ã¹ãã ã§Goããã°ã©ã ãå®è¡ããéã«åé¡ãçºçããŸãããïŒ
$ cat /proc/version
Linux version 5.3.0-40-generic (buildd@lcy01-amd64-026) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020
ããããã /proc/version
èšé²ãããæ¥ä»ãè¿œå ã®ã·ã°ãã«ãšããŠäœ¿çšã§ããŸãã ããã¯ãããããªãªãŒã¹åºæã§ããã¯ãã§ãããããã¯èŠçã§ãã ãããããã¹ãŠãèŠçã§ãã
è°è«ã¯ãããå€ãã®èª€æ€ç¥ãŸãã¯èª€æ€ç¥ãåãå ¥ããããšã«ã€ããŠã®ããã§ãã èŠçŽã¯æ¬¡ã®ãšããã§ãã
誀æ€ç¥ïŒåé¿çã¯ãããããé©çšãããã«ãŒãã«ã§æå¹ã«ãªããŸãã
ãã©ãŒã«ã¹ãã¬ãã£ãïŒããããé©çšãããŠããªãã«ãŒãã«ã§ã¯ãåé¿çã¯æå¹ã«ãªã£ãŠããŸããã
@ianlancetaylor説æãããŠããã·ã¹ãã ã«åé¡ã¯ãããŸããããããã¯å¶ç¶ã®äžèŽã§ããå¯èœæ§ããããŸããã€ãŸãããšã©ãŒã¡ãã»ãŒãžã¯5.3.15ã5.4.2ããŸãã¯5.5ãè¶ ããŠã¢ããã°ã¬ãŒãããå¿ èŠãããããšã瀺ããŠãããããã¯4.4.xã§ããç®±ã
ãããã«ãããç§ã匷調ãããã£ãã®ã¯ãã»ãšãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã64Mã§ulimit -l
ãæäŸãããšããä»®å®ã¯æ£ãããªãããã ãšããããšã§ãã ããã¯ã ulimit -l
ã64 Kã®Linuxããã¯ã¹ã§ãããæšæºã€ã³ã¹ããŒã«ã§ãã
ulimit
èšå®ãæ€åºããåé¿çãé©çšã§ããªãå Žåã«ã¯ã©ãã·ã¥ãåé¿ããæ¹æ³ã¯ãããŸããïŒ ãã®ããã«ããŠãç¶æ³ãæ¹åããããšã¯ã§ããŸãããæ°ããã¯ã©ãã·ã¥ãåŒãèµ·ããããšã¯ãããŸãããïŒ æ¬¡ã«ã代ããã«ãæœåšçãªã¡ã¢ãªç Žæã«é¢ããèŠåãåºåã§ããŸãã
ulimitèšå®ãæ€åºããåé¿çãé©çšã§ããªãå Žåã«ã¯ã©ãã·ã¥ãåé¿ããæ¹æ³ã¯ãããŸããïŒ
å®éãçŸåšã®ã³ãŒãã¯ãã§ã«ulimitèšå®ãæ€åºããŠããŸãã çŽæ¥ã¯ãšãªãå®è¡ããããšã¯ãããŸããããå®è¡ããããšãã«æ€åºããŸãããã®ããããŠãŒã¶ãŒã«ulimitãäžããããã«æ±ããç¹å®ã®ãšã©ãŒã¡ãã»ãŒãžãåºåãããŸãã ä»ã®äœããããŸããããªãå Žåãããã¯å®éã«ã¯å¥ã®ã¡ãã»ãŒãžãåºåããŸãã ã©ã³ãã ãªã¡ã¢ãªã®ç ŽæãããæãŸãããšèãããããã¯ã©ãã·ã¥ã¯æå³çãªãã®ã§ãã
ãããã«ãããç§ã匷調ãããã£ãã®ã¯ãã»ãšãã©ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ãulimit -lwith64MãæäŸãããšããä»®å®ã¯æ£ãããªãããã«æããããšããããšã§ãã ããã¯ãulimit -lã64K-ã®Linuxããã¯ã¹ã§ãããæšæºã€ã³ã¹ããŒã«ã§ãã
@ucirello ããã®ããŒã¿ãã€ã³ãã«æè¬ããŸãã ç§ã¯Ubuntuããã¯ã¹ãæå ã«æã£ãŠããŸããããUbuntuã€ã³ã¹ããŒã«ã§å ã®ãããã°ãè¡ããulimitãèšå®ãããŠããªãããšãèªã£ãå¯èœæ§ããããŸãã ããã¯ééããªãã³ã³ããã«å ¥ã£ãŠããŸãããïŒ
@ianlancetaylorç§ã¯ãunaââmeã®ã¬ããŒãã確èªããããã®è¿ éã§ããŒãã£ãªã¹ã¯ãªãããäœæããŸããïŒ https ïŒ //gist.github.com/Tasssadar/7424860a2764e3ef42c7dcce7ecfd341
ãããææ°ã®ïŒãŸãã-ishïŒDebianãã¹ãã®çµæã§ãïŒ
tassadar<strong i="9">@dorea</strong>:~/tmp$ go run gouname.go
real uname
Linux dorea 5.4.0-3-amd64 #1 SMP Debian 5.4.13-1 (2020-01-19) x86_64 GNU/Linux
our uname
sysname Linux
nodename dorea
release 5.4.0-3-amd64 <-- used by go
version #1 SMP Debian 5.4.13-1 (2020-01-19)
machine x86_64
domainname (none)
Goã¯ãªãªãŒã¹æååã®ã¿ã䜿çšããŠããããããããããŒãžã§ã³ãã§ãã¯ã¯åºæ¬çã«ã©ãã§ãæ©èœããŸããããããã©ã«ãŒãã«ã§æ©èœããŸã-DebianãšRHEL / CentOSïŒå¹žéã«ãå€ãã«ãŒãã«ããããŸãïŒã®äž¡æ¹ããã®æ¹æ³ã§ãããè¡ãã.0ãä¿æããŠåŸã§å®éã®ãããããŒãžã§ã³ã æ®å¿µãªããã version
ã¯åã圢åŒã䜿çšããŠããŸããã
ç·šéïŒãããŠãããããã«åä»ã«ããããã«ãUbuntuã¯ãããããã¹ãŠã®ä¿®æ£ãçµã¿èŸŒãŸããŠãããšããŠãããããçªå·ãunameã«å ¥ããŸããã ããããæåã®è¡åã¯ããããã¯ã©ãã·ã¥ã§ã¯ãªãèŠåã«ããããšã§ããïŒ ãã®æç¹ã§ãã»ãšãã©ã®ã«ãŒãã«ã¯ãããããã§ã«æŽæ°ãããŠããŸãã
ã©ã³ãã ãªã¡ã¢ãªã®ç ŽæãããæãŸãããšèãããããã¯ã©ãã·ã¥ã¯æå³çãªãã®ã§ãã
@aclementsãã®åŒæ°ã«ã¯å°ããªæ¬ é¥ããããŸããåé¡ã¯ãulimitã«
@aclements
ããã¯ééããªãã³ã³ããã«å ¥ã£ãŠããŸãããïŒ
ç§ã¯ãããã³ã³ããã§ã¯ãªããš100ïŒ ç¢ºä¿¡ããŠããŸãã ãã ããVMã§ãã
$ sudo virt-what
xen
xen-hvm
@ucirello ããã®ããŒã¿ãã€ã³ãã«æè¬ããŸãã ç§ã¯Ubuntuããã¯ã¹ãæå ã«æã£ãŠããŸããããUbuntuã€ã³ã¹ããŒã«ã§å ã®ãããã°ãè¡ããulimitãèšå®ãããŠããªãããšãèªã£ãå¯èœæ§ããããŸãã ããã¯ééããªãã³ã³ããã«å ¥ã£ãŠããŸãããïŒ
å¥ã®ããŒã¿ãã€ã³ããšããŠãç§ã®UbuntuEoanã¡ã€ã³ã·ã¹ãã ã¯ããã©ã«ãã§ulimit -l
èšå®ããã64MBã§ãã
@ucirello 4.4.xLinuxã«ãŒãã«ã§ã¯åé¡ã¯ãããŸããã ãã®ãã°ã¯ãã«ãŒãã«ããŒãžã§ã³5.2ã§æåã«çºçããŸããã
@ ianlancetaylor-æ å ±ãããããšãã ãã®æãç§ã¯ãšã©ãŒã¡ãã»ãŒãžã誀ã£ãŠè§£æãããšæããŸãã ç§ã¯ãã®äºå®ãç¥ããŸããã§ããããããŠãšã©ãŒã¡ãã»ãŒãžã¯æ°ãããã€ããªãå€ãã«ãŒãã«ãšäºææ§ããªãã ãããšä¿¡ããããŸããã
Goããã°ã©ã ã¯ãåé¡ãçºçããŠããå¯èœæ§ãããããšã瀺ãããŒãžã§ã³çªå·ã®ã«ãŒãã«ã§ã®ã¿ãšã©ãŒã¡ãã»ãŒãžãå ±åããŸãã
ãããç§ãã¡ã«ã§ããããšã§ãïŒ
uname
ã䜿çšããŠãè匱ãªã«ãŒãã«ã®ã«ãŒãã«ããŒãžã§ã³ã確èªããŸãã/proc/version
èªã¿ãã ããã/proc/version
ã«æåå"2020"
ãå«ãŸããŠããå Žåã¯ãã«ãŒãã«ã«ããããé©çšãããŠãããšæ³å®ããŸãã/proc/version
ã«æåå"gcc version 8"
/proc/version
ãå«ãŸããŠããå Žåã¯ãããããé©çšãããŠããŠãã«ãŒãã«ãæ©èœãããšæ³å®ããŸãïŒãã®ãã°ã¯ãã«ãŒãã«ãGCC 9以éã§ã³ã³ãã€ã«ãããŠããå Žåã«ã®ã¿çºçããããïŒãmlock
ãåŒã³åºããŸããããã®ãã€ã³ãã¯ãGoããã°ã©ã ãmlock
ã¹ããŒã¹ã䜿ãæããåæ°ãæžããããšã§ãã
/proc/version
æåå"2020"
ããŠããå¯èœæ§ã®ããããããé©çšãããŠããªãã«ãŒãã«ãç¥ã£ãŠãã人ã¯ããŸããïŒ
å®å šã®ããã«ãã«ãŒãã«ãäž»èŠãªãã£ã¹ããªãã¥ãŒã·ã§ã³çšã«ããããé©çšãããææãç¹å®ããããã«åªããå¿ èŠããããŸãã ç¹å®ã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã§ãããç¹å®ã§ãã人ã¯ããŸããïŒ ããããšãã
ããããŸã£ãã圹ç«ã€ãã©ããã¯ããããŸããããUbuntuã¯ãæšæºã®ã«ãŒãã«ããŒãžã§ã³ãæ¢ããŠãã人ãå©çšã§ããããã«ããŠããããã§ãã
$ cat /proc/version_signature
Ubuntu 5.3.0-1013.14-azure 5.3.18
@jrockwayããããšããåé¡ã¯ã«ãŒãã«ããŒãžã§ã³ããªãããšã§ã¯ãªããUbuntuããã°ã®ããã«ãŒãã«ããŒãžã§ã³ã䜿çšããŠããããšã§ãããUbuntuã¯ãã°ã®ããããé©çšããŠãããããã«ãŒãã«ã¯å®éã«æ©èœããŸããããã®äºå®ãæ€åºããæ¹æ³ãããããŸããã
@ianlancetaylorã®æååç
§åãã¥ãŒãªã¹ãã£ãã¯ã«è¿œå ããŠã /proc/version
ããã§ãã¯ããããšãã§ããŸã
5.3.x && x >= 15 || 5.4.x && x >= 2
ïŒå®éã®ã³ãŒãã§ã¯ãããŸããããã¢ã€ãã¢ã¯åŸãããŸãïŒ
ãããã§ãç§ãã¡ã¯ãã§ã«uname
çµæã§ããããã§ãã¯ããŠããŸãã
https://github.com/golang/go/issues/37436#issuecomment -591503305ãåç §ããŠã
release 5.4.0-3-amd64 <-- used by go
version #1 SMP Debian 5.4.13-1 (2020-01-19) <-- has actual version
ç·šéïŒUbuntuã§ã¯ãç§ãææ¡ããããã«/proc/version_signature
ããã§ãã¯ã§ããŸãã
ããããã¿ãŸããããããéããŸããã ãããã£ãŠãäžéšã®ã·ã¹ãã ã«é¢ãããã®ã³ã¡ã³ãã«ãããšã release
ãã£ãŒã«ããšuname
ã«ãã£ãŠè¿ãããversion
ãã£ãŒã«ãã¯ãå ±åããã«ãŒãã«ããŒãžã§ã³ã«ãã£ãŠç°ãªããŸãã çŸåšã release
ãã£ãŒã«ãã¯ãã§ãã¯ããŠããŸããã version
ãã£ãŒã«ãã¯ãã§ãã¯ããŠããŸããã
/proc/version
ãã¡ã€ã«ã«ã¯ãå¥ã®æ
å ±ã»ãããå«ãŸããŠããŸãã
ç§ã®Ubuntuã·ã¹ãã ã«ã¯/proc/version
ããããŸããã /proc/version_signature
ã¯ãããŸããã
@bbarenblatã¯ãããã€ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ããã€ãã®ããŒãžã§ã³ããunameãš/ proc / versionãåéããŠã
Debianäžå®å®ïŒ
$ uname -v
#1 SMP Debian 5.3.9-3 (2019-11-19)
$ uname -r
5.3.0-2-amd64
$ cat /proc/version
Linux version 5.3.0-2-amd64 ([email protected]) (gcc version 9.2.1 20191109 (Debian 9.2.1-19)) #1 SMP Debian 5.3.9-3 (2019-11-19)
Debian 10.3ïŒçŸåšå®å®ïŒïŒ
$ uname -v
#1 SMP Debian 4.19.98-1 (2020-01-26)
$ uname -r
4.19.0-8-amd64
# cat /proc/version
Linux version 4.19.0-8-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.98-1 (2020-01-26)
Debian 7ïŒéåžžã«å€ãïŒïŒ
$ uname -v
#1 SMP Debian 3.2.78-1
$ uname -r
3.2.0-4-amd64
$ cat /proc/version
Linux version 3.2.0-4-amd64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.78-1
Debianãã©ããå®å®ããŠããŠãæã äžå®å®ãªããã±ãŒãžããããïŒ
$ uname -v
#1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20)
$ uname -r
4.19.0-6-amd64
$ cat /proc/version
Linux version 4.19.0-6-amd64 ([email protected]) (gcc version 8.3.0 (Debian 8.3.0-6)) #1 SMP Debian 4.19.67-2+deb10u1 (2019-09-20)
Ubuntu 19.10ïŒ
$ uname -v
#32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020
$ uname -r
5.3.0-40-generic
$ cat /proc/version
Linux version 5.3.0-40-generic (buildd@lcy01-amd64-026) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #32-Ubuntu SMP Fri Jan 31 20:24:34 UTC 2020
GCPã«ãŒãã«ãæèŒããUbuntu19.10ïŒããã¯å®éã«ã¯5.3.0ã§ãïŒïŒ
$ uname -v
#9-Ubuntu SMP Mon Nov 11 09:52:23 UTC 2019
$ uname -r
5.3.0-1008-gcp
$ cat /proc/version
Linux version 5.3.0-1008-gcp (buildd@lgw01-amd64-038) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #9-Ubuntu SMP Mon Nov 11 09:52:23 UTC 2019
æäœãã®ã«ãŒãã«ãæèŒããUbuntu19.10ïŒ
$ uname -v
#36 SMP Wed Feb 26 20:55:52 UTC 2020
$ uname -r
5.3.10
$ cat /proc/version
Linux version 5.3.10 (austin@austin-dev-ubuntu) (gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2)) #36 SMP Wed Feb 26 20:55:52 UTC 2020
CentOS 7.7ïŒ
$ uname -v
#1 SMP Fri Dec 6 15:49:49 UTC 2019
$ uname -r
3.10.0-1062.9.1.el7.x86_64
$ cat /proc/version
Linux version 3.10.0-1062.9.1.el7.x86_64 ([email protected]) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) ) #1 SMP Fri Dec 6 15:49:49 UTC 2019
@aclementsæçš¿ããã«ãŒãã«ã®ãã¡ãåé¿çãå¿ èŠãªãã®ãšããã§ã«ããããé©çšãããŠãããã®ã«ã€ããŠãå°ãæ··ä¹±ããŠããŸãã å€åããªãã¯ããªãã®æçš¿ã«æ³šéãä»ããããšãã§ããŸãã
åé¡ã¯ãæœåšçã«æªãããŒãžã§ã³ç¯å²å
ã«ããå Žåã¯_圱é¿ãåããå¯èœæ§ããããŸã_ãããŒãžã§ã³ç¯å²å€ã«ããå Žåã¯å®å
šã§ãããšããããšã§ãã
æåã®ç ŽæãèŠã€ãã£ããšããããã«ãããããã«ããŠãã¹ãããããŒã«ã¢ãŠãããŸããã ãããã£ãŠãã«ãŒãã«ã¯100ïŒ
æªãç¯å²å
ã«ãããŸããããããããé©çšãããŠããŸããã ç¯å²å€ã«ãããšããããšã¯å®å
šã§ããããšãæå³ããŸãããç¯å²å
ã«ãããšããã°ããã¹ãããã«ãã°ãååšããããšã蚌æããããšã¯ã§ããŸããã ïŒèšãæãããšã誀æ€ç¥ã¯èšèšäžçºçããŸãïŒ
ç§ã¯ä»ãã¢ããã¹ããªãŒã ã®ããŒãžã§ã³çªå·ã§å¥ã®ããããåœãŠãubuntuã«ãŒãã«ãæ§ç¯ããŠããŸã
make kernelversion
debian{,.master}/{changelog,control}
ããããåœãŠãã«ãŒãã«ããŒãžã§ã³ã«äŸåãããœãããŠã§ã¢ãããã£ã¹ããªãã¥ãŒã·ã§ã³ãå®å®æ§ãç¶æãããçç±ã§ããããŒãžã§ã³çªå·ãæŽæ°ãããšã以åã«æ©èœããŠãããœãããŠã§ã¢ãç Žæããå¯èœæ§ãããå Žåã¯ãããŒãžã§ã³ãå€æŽããªãæ¹ãããã§ãããïŒãã ããããããé©çšããŠãã ããïŒã
golang 1.14ã®ããã§æ°ããã«ãŒãã«ãããŒã«ããã®ã¯äžå¹žã§ãããããŸããããšæããŸãã
å¶åŸ¡ãããç°å¢ã®å€ã«golang1.14ãã€ããªãåºè·ããããšããã¹ãŠã®äººã«æããšã©ãŸãããŸãã
@rtrefferã®æçš¿ãã誀
ãã¹ãŠã®èª€æ€ç¥ãåé¿ããããã«ãªããã€ã³ããå¿ èŠããããšæããŸãã ããšãã°ãGOWORKAROUNDS env var booleanãè¿œå ããããåé¿çã®ãªã¹ããè¿œå ãããããã¥ãŒãªã¹ãã£ãã¯ãããããèŠã€ããããããã«ããŸãã
ããã¯ãæãéªéã«ãªããªããœãªã¥ãŒã·ã§ã³IMOã«ãªããŸãã
@ fcuello-fudoåé¡ã¯ãæªãã«ãŒãã«ã§åé¿çãæå¹ã«ãªã£ãŠããªãå Žåãçç¶ãéåžžã«ãããã«ããããšã§ãã
Linuxã«ãŒãã«ã®ãæ±æããããæŠå¿µãåå©çšããã®ã¯ã©ãã§ããïŒ Goã©ã³ã¿ã€ã ã¯ãäžè¯ã«ãŒãã«ãæ€åºãç¶ããmlockã®åé¿çãé©çšããŸãããmlockã倱æããå ŽåïŒã¯ã©ãã·ã¥ããªãå ŽåïŒãèªèº«ãæ±æãããŠãããšããŒã¯ããŸãã 次ã«ãæ±æãã©ã°ãèšå®ãããŠããå Žåã¯ããããã¯ã«ã¡ã¢ãè¿œå ããã¡ãã»ãŒãžãã¹ããŒããããã«ããŠãã ããã
å©ç¹ã¯ã誀æ€ç¥ã«ããã¯ã©ãã·ã¥ãåé¿ããããšåæã«ãäžè¯ã«ãŒãã«ãã¯ã©ãã·ã¥ãåŒãèµ·ãããå Žåã«åããŠæ確ãªææšãæäŸããããšã§ãã
æ¬ ç¹ã¯ãæªãã«ãŒãã«ãã¡ã¢ãªããµã€ã¬ã³ãã«ç Žå£ããç®ã«èŠããã¯ã©ãã·ã¥ãåŒãèµ·ãããªãå¯èœæ§ãããããšã§ãã
@ fcuello-fudoåé¡ã¯ãæªãã«ãŒãã«ã§åé¿çãæå¹ã«ãªã£ãŠããªãå Žåãçç¶ãéåžžã«ãããã«ããããšã§ãã
ãŸããããã©ã«ãã§æå¹ã®ãŸãŸã«ããŠãããŸããããŠãŒã¶ãŒãå¿ èŠãªå Žåã¯åé¿çãç¡å¹ã«ãããšäŸ¿å©ã§ããïŒ
@howardjohn ïŒGoogleã®Istioã®ãã©ã€ããªéçºè ïŒ https://github.com/istio/istio/issues/21672 ïŒ
ããŒãœãã«ãã·ã³ã®ã«ãŒãã«ã«ããããé©çšãããŠããŸããã ããããç§ã®ãã·ã³ãäœãæã£ãŠãããã¯å®éã«ã¯åé¡ã§ã¯ãããŸãããIstioãæ°å人ã®ãŠãŒã¶ãŒã«åºè·ããŠããŸãã ç§ã¯åœŒãããããå®è¡ãããã·ã³ãå¶åŸ¡ããããšãã§ããŸããããããŠç§ã¯ãããã«ãŒãã«ããŒãžã§ã³ã®ããã€ãã®ãµãã»ããã«å¶éããå¿ èŠããªãããšãæã¿ãŸã
Prometheusãããžã§ã¯ããgo1.14ã®ã¢ããã°ã¬ãŒããæ§ããŠããŸãïŒ https ïŒ
ã»ã«ããã¹ãã®Kubernetesã¯ã©ã¹ã¿ãŒã§goã¢ããªã±ãŒã·ã§ã³ãå®è¡ããŠãããšãã«ããã®åé¡ãçºçããŸããã é¢é£ããulimitãå¢ããããšã§ã_mlock_åé¿çãæå¹ã«ããããšãã§ããŸããã ãã ããKubernetesã§å®è¡ãããŠããDockerã³ã³ããã®ulimitãå€æŽããããã»ã¹ãèŠã€ããã®ã¯ç°¡åã§ã¯ãªããããä»ã®èª°ããããã«è©³çŽ°ãå ¥åãããšåœ¹ç«ã€å ŽåããããŸãã
/etc/security/limits.conf
ãæŽæ°ããŠã次ã®ãããªãã®ãå«ããŸã* - memlock unlimited
/etc/docker/daemon.json
ãæŽæ°ããŠå«ãã"default-ulimits": { "memlock": { "name": "memlock", "hard": -1, "soft": -1 } }
docker / kubernetesãåèµ·åããããããå ã«æ»ããŸãã
å®è¡äžã®ã³ã³ãããŒãå ¥åããulimitãå¢å ããŠããããšã確èªããŸãã
$ kubectl exec -it pod-name -- /bin/sh
/ # ulimit -l
unlimited
_unlimited_ãã³ããŒããã埮åŠãªãã®ã䜿çšããããšã§éããããšãã§ãããããããŸããã ç§ã«ãšã£ãŠã¯ã128KiBïŒ131072ïŒã®å¶éãæ©èœããŠããããã«èŠããŸããã
ãŸãã httpsïŒ//github.com/RTradeLtd/Temporal on go 1.14ã®Dockerã€ã¡ãŒãžãæ§ç¯ããããšãããšããã®åé¡ãçºçã
ãããŠãå±±ã¯å±±ç©ã¿ãç¶ããŸãã ã»ãããããç§ããã®ã¹ã¬ããã®å§ãã«è ¹ãç«ãŠãçç±ã§ãïŒããã¯ç§ã®åŽããã®æªãééãã§ãããç§ã¯åæããŸãïŒã ããããããã«ãŒã§ããããšã説æããåçŸããããã«å€ãã®åªåãããŸãããããªãªãŒã¹ã劚ããªãããã«ã·ã£ããããŠã³ãããŸããã Dockerã®åé¡ã§ã¯ãªãããšãæããã«ãªã£ãåŸã§ãã
ããŸããŸãªãããžã§ã¯ããGo1.14ããã©ãã¯ãªã¹ãã«ç»é²ããŠãããããçŸåšãç§ãã¡ã¯ã¯ããã«æªãç¶æ³ã«ãããŸãã ãã®ãã°ã¯çŸåšãGo1.15ã§ã®ã¿ä¿®æ£ãããäºå®ã§ãã äžèšã®é¢é£ããåé¡ã«åºã¥ããŠãããã8ãæ延æããããšããå§ãããŸããïŒ messupãèªããŠãããããªãªãŒã¹ã§ä¿®æ£ããŠã¿ãŠãã ãããããã«ãããžã§ã¯ããåãŸããã®ãåŸ ã€ã®ã§ã¯ãªãããããšæããŸãã
ã¯ããç§ã¯èªåã§ä¿®æ£ããã®ã§ã¯ãªããããã§äººã ããã€ããããŠããã ãã ãšç¥ã£ãŠããŸãã ç³ãèš³ãããŸãããããã以äžæå³ã®ããè²¢ç®ãããããšã¯ã§ããŸããããšã³ã·ã¹ãã ãæçåããããªãã ãã§ãã Goã¢ãžã¥ãŒã«ã¯ããã§ã«å€ãã®ãããžã§ã¯ãã«ææãäžããŸãããããŒã«ãèªèããªããã°ãªããªãããã«å¥ã®çã§åå¢ããªãããã«ããŸãããã
Ian Lance-Taylorã¯ãä¿®æ£ãããã°ããã¯ããŒãããããšè¿°ã¹ãŠããŸãïŒ https ïŒ
@lmbãããããã¯èããŠãšãŠãããããã§ãããªã³ã¯ãããããšãã
åèïŒUbuntu 20.04ã¯ãæ¥ææ«ãã5.4.0ãåºè·ããå¯èœæ§ããããŸãã
ææ°ã®UbuntuLTSãšgolangã¯ããã®ãŸãŸã§ã¯æ©èœããŸããã
ããŒã¬ã³ãããŠã¢ãŒ[email protected] schriebç¥ç¶ã6 MARZ 2020ãåå12æ42ååïŒ
Ian Lance-Taylorã¯ãä¿®æ£ãè¡ããããšä¿®æ£ãããã¯ããŒãããããšè¿°ã¹ãŠããŸã
1ã€ïŒ https ïŒâ
ããªããèšåãããã®ã§ãããªãã¯ãããåãåã£ãŠããŸãã
ãã®ã¡ãŒã«ã«çŽæ¥è¿ä¿¡ããGitHubã§è¡šç€ºããŠãã ãã
https://github.com/golang/go/issues/37436?email_source=notifications&email_token=AAAO66R6S5VOWQBKETLI5UDRGDORJA5CNFSM4K3GBRRKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2Z
ãŸãã¯è³Œèªã解é€ãã
https://github.com/notifications/unsubscribe-auth/AAAO66SH6J4M75WDJ5GO7HTRGDORJANCNFSM4K3GBRRA
ã
@karalabeã¯ãç§ãéããããšãã§ããéã匷åãªèšèã§ãããªãã¯ããªãªãŒã¹ã劚ããªãããã«ã·ã£ããããŠã³ããããŠããŸããã§ããã æåã«åé¡ã解決ããJoshã¯ãGoogleã®GoããŒã ã«æå±ããŠããŸããïŒã€ãŸããææ決å®è ã§ããããŸããïŒãç§ãã¡ã¯åœåãDockerãããžã§ã¯ãããã«ãã®åé¡ã軜æžã§ããïŒãããŠè»œæžãã¹ãã§ããïŒãšæ³å®ããŠããŸããã 圌ããã§ããªãããšãæããã«ãªã£ããšããç§ã¯ããã«golang-devã§ãããäžããŸããã
ããã«ãåé¡ã®åå ã¯Dockerã¢ãžã¥ãŒã«ã§ã¯ãªãããã¹ãã«ãŒãã«ã«ããããšã«æåã«æ°ã¥ããŸããã ç§ããããææãããŸã§ãããªãã¯ããªããUbuntuã«ãããšã¯èšããŸããã§ããã
ãã®ã¡ã¢ã®åŸãããªãã¯ç§ãã¡ã«ããã«å¥ã®è¬çœªãè² ã£ãŠãããšæããŸãã
ç·šéïŒãŸããããŒãžãèªã¿ã«ãããããããã²ãŒããããããã®ãé£ãããªããããã¬ããŒããããŽã«ãŒãã³ã¹ã¿ãã¯ãã¬ãŒã¹ïŒ goroutine x [runnable]
å§ãŸãïŒãåé€ããããã«äŸé ŒããŸããã [æŽæ°ïŒRussãã¹ã¿ãã¯ãç·šéããŸããã]
ã³ãã¥ãã±ãŒã·ã§ã³ãæåãããã®ã¯é£ãããç·Žç¿ããå¿ èŠã®ããã¹ãã«ã§ããããšã誰ããèŠããŠãããŠãã ããã ææ ã¯ç§ãã¡ã«äžå©ã«åããã³ãã¥ãã±ãŒã·ã§ã³ãæåããããšããç§ãã¡ã®ç®æšã劚ããå¯èœæ§ããããŸããç§ã¯ããã«ããŸããã ã¯ããè¡åèŠç¯ã®éåãããããããææããã®ã¯è¯ãããšã§ãã èªçºçãªè¬çœªã圹ã«ç«ã¡ãŸãã ããã§ã¯ããã¹ãŠã®æçš¿ãã³ã©ãã¬ãŒã·ã§ã³ãšãã®åé¡ã®è§£æ±ºã«ãã©ã¹ã®æ£å³ã®åœ±é¿ãäžããããšã確èªããŠã¿ãŸãããã
@rtreffer Ubuntu 20.04ã§èšç»ãããŠããã«ãŒãã«ããŒãžã§ã³ã«ããããå«ãŸãããã©ããç¥ã£ãŠããŸããïŒ Ubuntuã®5.3.0ã«ãŒãã«ïŒhttps://kernel.ubuntu.com/git/ubuntu/ubuntu-eoan.git/commit/?id=59e7e6398a9d6d91cd01bc364f9491dc1bf2a426ïŒã«ãã§ãªãŒããã¯ãããããã§ãã 5.4.0ã«ãŒãã«ã«ããããšæããŸããã確ãã«ãããšæããŸãã ããããšãã
@rtreffer Ubuntu 20.04ã§èšç»ãããŠããã«ãŒãã«ããŒãžã§ã³ã«ããããå«ãŸãããã©ããç¥ã£ãŠããŸããïŒ Ubuntuã®5.3.0ã«ãŒãã«ïŒhttps://kernel.ubuntu.com/git/ubuntu/ubuntu-eoan.git/commit/?id=59e7e6398a9d6d91cd01bc364f9491dc1bf2a426ïŒã«ãã§ãªãŒããã¯ãããããã§ãã 5.4.0ã«ãŒãã«ã«ããããšæããŸããã確ãã«ãããšæããŸãã ããããšãã
20.04ã®ãªãªãŒã¹ã«ãŒãã«ã«å«ãŸããŸããã¯ãïŒ
(master)mwhudson<strong i="9">@anduril</strong>:~/src/upstream/linux-2.6$ git log -1 --oneline ad9325e9870914b18b14857c154a0fee0bd77287
ad9325e98709 x86/fpu: Don't cache access to fpu_fpregs_owner_ctx
(master)mwhudson<strong i="10">@anduril</strong>:~/src/upstream/linux-2.6$ git tag --contains ad9325e9870914b18b14857c154a0fee0bd77287
Ubuntu-5.4-5.4.0-10.13
Ubuntu-5.4-5.4.0-11.14
Ubuntu-5.4-5.4.0-12.15
Ubuntu-5.4-5.4.0-13.16
Ubuntu-5.4-5.4.0-14.17
Ubuntu-5.4.0-15.18
Ubuntu-5.4.0-16.19
Ubuntu-5.4.0-17.20
Ubuntu-5.4.0-17.21
Ubuntu-5.4.0-8.11
Ubuntu-5.4.0-9.12
Ubuntu-raspi2-5.4-5.4.0-1002.2
Ubuntu-raspi2-5.4.0-1003.3
Ubuntu-raspi2-5.4.0-1004.4
@ aclements ã @ dr2chase ã @ randall77ãªã©ãšã®è©±ãåãã«åºã¥ããŠã1.14.1ãªãªãŒã¹ã®èšç»ã¯æ¬¡ã®ãšããã§ãã
mlock
ãåŒãç¶ã䜿çšããmlock
ã倱æããå Žåã¯ããã®äºå®ãé»ã£ãŠã¡ã¢ããå®è¡ãç¶ããŸãSIGSEGV
ãŸãã¯SIGBUS
ã衚瀺ããã mlock
倱æããå Žåã¯ãã¯ã©ãã·ã¥ã¹ã¿ãã¯ãã¬ãŒã¹ãã€ã³ãã§wikiããŒãžã®ãŠãŒã¶ãŒãåé¡ãã«ãŒãã«ãªã®ãããã°ã©ã ãªã®ããGoèªäœã®ãã°ãªã®ããå€æããã®ã«åœ¹ç«ã€æ å ±ãããã°ã®ããå¯èœæ§ã®ããã«ãŒãã«ã®äººã ã«æ¡å ããªãããéåžžã®å Žåã«æ£ããå®è¡ãããšããè¯ãçµã¿åãããæäŸããããšãæåŸ ãããŸãã
ããã¯ã uname
version
ãã£ãŒã«ãã«åºã¥ããŠç¹å®ã®ã«ãŒãã«ã«ããããé©çšãããŠãããã©ãããèå¥ããããã®ããè¯ãè©Šã¿ãšçµã¿åãããããšãã§ããŸãïŒçŸåšã release
ãã£ãŒã«ãã®ã¿ããã§ãã¯ããŠããŸãïŒã
ãã1ã€è©±ãåã£ãã®ã¯ãmlockã倱æããèªåèªèº«ã«ã·ã°ãã«ãéä¿¡ããããšããŠããå Žåã¯ãæåã«ã·ã°ãã«ã¹ã¿ãã¯ã«ã¿ããããããšã§ãã
çŽ æŽãããã¢ã€ãã¢ã®ããã«èããã@ianlancetaylor ïŒ
ãŸã æ€èšããŠããªãå ŽåïŒãšã©ãŒã¡ãã»ãŒãžãããã®WikiããŒãžã«ãªã³ã¯ããŸãïŒéæ¥åç §ããã1ã€ããå¯èœæ§ããããŸãïŒ
ããšãã°ãiPXEã¯http://ipxe.org/1d0c6539ã®ãããªãªã³ã¯ãä»ããŠãããè¡ããŸãïŒãããã®åºåã¯ããŒãROMãéãããäžåç£ãªã©ã«æé©åãããŠããŸãïŒ
åé¡ã説æããwikiããŒãžãæžã
ãã°ãããå¯èœæ§ã®ããã«ãŒãã«ããŒãžã§ã³ã§
mlock
ãåŒãç¶ã䜿çšãã
mlock
ã倱æããå Žåã¯ããã®äºå®ãé»ã£ãŠã¡ã¢ããå®è¡ãç¶ããŸã
éåæããªãšã³ãã·ã§ã³ãç¡å¹ã«ããã»ããããã®ã§ã¯ãªãã§ããããã asyncpreemptoff = 1ã§ãåé¡ãçºçããå¯èœæ§ãããã®ã¯äºå®ã§ããããã°ã¯éåžžã«ãŸãã§ãããããããªããšäœã¶æã誰ãæ°ä»ããŸããã§ããã
ïŒGoã©ã³ã¿ã€ã ã®å€ã§ïŒã«ãŒãã«ã«ããããé©çšãããŠãããã©ããããã¹ãããæ¹æ³ã¯ãããŸããïŒ ãã£ã¹ããã®å€ã§ç¬èªã®ã«ãŒãã«ãç¶æããŠããããããããæ©èœããŸãã
@gopherbotã¯go1.14ã«ããã¯ããŒãããŠãã ããã ããã¯åé¿çã®ãªãæ·±å»ãªåé¡ã§ãã
éãããããã¯ããŒãã®åé¡ïŒïŒ37807ïŒ1.14ã®å ŽåïŒã
https://golang.org/wiki/MinorReleasesã«ãããšããããããã¹ã¿ãŒã«éä¿¡ããããããã«ããã§ãªãŒããã¯CLãäœæããããšãå¿ããªãã§
@nemithããã«Chttps ïŒ
@ randall77 @aarzilliæ€èšã®çµæãã·ã°ãã«ã¹ã¿ãã¯ããŒãžã«mlock
ã䜿çšããããšã¯ãåžžã«æ©èœããã¯ãã®ä¿¡é Œã§ããç·©åçã§ãããããè©ŠããŠã¿ãã®ã劥åœã§ãã ããªãšã³ãã·ã§ã³ä¿¡å·ãéä¿¡ããåã«ä¿¡å·ã¹ã¿ãã¯ã«è§Šããããä¿¡å·ããªãšã³ãã·ã§ã³ãå®å
šã«ç¡å¹ã«ãããããããšã¯ãä¿¡é Œã§ããç·©åçã§ã¯ãããŸããã ä¿¡é Œã§ããªãç·©åçã«é Œãã¹ãã§ã¯ãªããšæããŸãã ã«ãŒãã«ãã¢ããã°ã¬ãŒãããããã«ãŠãŒã¶ãŒã«æ瀺ããå¿
èŠããããŸãã
ã«ãŒãã«ãã¢ããã°ã¬ãŒãã§ããªã人ã¯ã GODEBUG=asyncpreemptoff=1
ã§å®è¡ãããªãã·ã§ã³ããããŸããããã¯ãä»ã®2ã€ãšåããããå¹æçãªéšåçãªè»œæžã«ãªããŸãã
ä¿¡é Œã§ããªãç·©åçã«é Œãã¹ãã§ã¯ãªããšæããŸãã ã«ãŒãã«ãã¢ããã°ã¬ãŒãããããã«ãŠãŒã¶ãŒã«æ瀺ããå¿ èŠããããŸãã
ãã°ãåžžã«ã¯ã©ãã·ã¥ã§çŸããå Žåãç§ã¯ããªãã«åæããŸãã ããããããã§ã¯ãããŸãã-ããã¯åã«ã©ã³ãã ã«ã¡ã¢ãªãç Žå£ããŸãã ã¯ã©ãã·ã¥ãããããããŸããããããã°ã©ã ã®ããŒã¿ãã©ã³ãã ã«ç ŽæããŠå®è¡ãç¶ããå¯èœæ§ããããŸãã ããšããããå¿ èŠãªã«ãŒãã«ã®ã¢ããã°ã¬ãŒãã«ã€ããŠé »ç¹ã«ã¡ãã»ãŒãžãéããªãããšãæå³ãããšããŠããããŒã¿ã®ç Žæãé²ãããã«ã§ããéãã®å¯Ÿçãè¬ããããšã¯ç§ãã¡ã®çŸ©åã ãšæããŸãã
ããã¯ãçŸåšãšåŸã®æ±ºå®ã§ãã 䜿çšããåã«ä¿¡å·ããŒãžã«è§Šããããšã§ãããŒã¿ã®ç Žæãé²ãããšãã§ããŸãã ãŸãã¯ãã¯ã©ãã·ã¥ãçºçããå Žåã«ãŠãŒã¶ãŒã«ã¡ãã»ãŒãžãéä¿¡ããããšã§ãåŸã§ç Žæãé²ãããšãã§ããŸãã äž¡æ¹ãéžæããããšã¯ã§ããŸããã
mlockã®å€±æãæ€åºãããšãã«ãã¯ã©ãã·ã¥ããããšãªãã¡ãã»ãŒãžãéä¿¡ããããŒãžã«è§Šããããšã§è»œæžã§ããæ¹æ³ãããã°ããã®ã«ãšæããŸãã æ®å¿µãªãããGoããã°ã©ã ã§ã¯stdout / stderrã§ãããå®è¡ã§ãããšã¯æããŸããã ãã¶ããsyslogã«äœããæããããšãã§ããŸããïŒ ããã¯ããããå€ãã¯ãªãsyslogãäžç¥ãã人ã ããå©ããã§ãããã
ãã§ã¢ãã€ã³ãã
ã€ã³ã¹ããŒã«æã«ã¡ãã»ãŒãžãæçš¿ããŠã¿ãŸãããïŒ ããã«ã¯ããã€ããªãªãªãŒã¹ãšãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«æé ã®å€æŽã䌎ããŸãããããã«ãããåçŸæ©èœãå®è¡ããŠãã°ã確å®ã«ãã¹ãã§ããŸãã
@networkimprovããã¯è¯ãèãã§ãããã«ãŒãã«ã®ããŒãžã§ã³ãç°ãªãå¯èœæ§ã®ãããã·ã³éã§ã³ã³ãã€ã«æžã¿ããã°ã©ã ãéä¿¡ãã人ããããããäžèšã®ã¢ãããŒããå¿ èŠã ãšæããŸãã
https://golang.org/wiki/LinuxKernelSignalVectorBugã§wikiããŒãžãäœæããŸãã
å€æŽhttps://golang.org/cl/223121ã¯ãã®åé¡ã«èšåããŠããŸãïŒ runtime: don't crash on mlock failure
https://golang.org/cl/223121ãéä¿¡ããŸãã
ãããšã @ randall77 / @ianlancetaylor ãç§ã¯ãããgolangã®åé¡ã§ããããšã«ãŸã£ããåæããªãåŸåããããŸãã Golangã¯ã¡ã¢ãªç Žæã®åé¡ãçºèŠããŸããããããã¯éåžžã«æ·±å»ãªã«ãŒãã«ã®ãã°ã§ãã
ãã®ãããã«ãŒãã«ãã¹ãä»ããŠãšã¹ã«ã¬ãŒã·ã§ã³ããå¿
èŠããããŸãã
ãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ããããåãåããåºè·ããŸããã ããã¯ããŒããããŸããã æ°ããã€ã³ã¹ããŒã«ã¯ãã¹ãŠã圱é¿ãåããªãã«ãŒãã«ãååŸããŸãã
ç¬èªã®ã«ãŒãã«ãããŒã«ããå Žåã¯ããããèªåã§è¡ãå¿
èŠããããŸãã ãã€ãã®ããã«ã
ããããããŠãŒã¶ãŒã«åœ¹ç«ã€ããã«ããå¯èœãªéã圹ç«ã€ããã«ããŸãã
ããããã«ãŒãã«ã®ãã°ãä¿®æ£ãããããŠãŒã¶ãŒã«ãããã®é©çšã匷å¶ãããããããšã¯ãgolangã®è²¬ä»»ã§ã¯ãªããšæããŸãã
@rtrefferãããç§ãã¡ãããããšããŠããããšã§ãïŒå¯èœãªéã圹ç«ã€ããã«ããŠãã ããã
ãã°ã®ããã«ãŒãã«ã§ã¯ãGo 1.14ã§ãã«ããããGoããã°ã©ã ã¯ãäºæãããã²ã©ãåäœããŸããã ãã°ã®ããã«ãŒãã«ã§ãããããããšã¯ããããããŸããã ããã°ã©ã ãè¿ éãã€ã¯ãªãŒã³ã«å€±æããå Žåãããã¯1ã€ã®ããšã§ãã ããããç§ãã¡ãèŠãã®ã¯ããããŸããªãšã©ãŒã«ã€ãªããã¡ã¢ãªã®ç Žæã§ããã ãšããããïŒ35326ãåç §ããŠãã ããã
ç§ãã¡ãä»ããŠããããšãšã¯éãè¡åãåãã¹ãã ãšæããŸããïŒ
@rtrefferãŸããŸãã gcc9ã§ã³ã³ãã€ã«ãããŠããªãããã圱é¿ãåããªãæ¬çª5.2ã«ãŒãã«ãããã€ããããŸãããŸããä»ã«åœ±é¿ãäžããããšãªããä¿®æ£ãã«ãŒãã«ã©ã€ã³ã«ç°¡åã«ãããããŠãåé¡ãªãå®è¡ã§ããŸãã ã«ãŒãã«ã®ãã°ã¯ç§ãã¡ã®ç°å¢ã«ã¯ååšãããã¡ãžã£ãŒããŒãžã§ã³ãã¢ããã°ã¬ãŒãããã«ã¯ãããå€ãã®ãã¹ããšããªãŒãå šäœãžã®æ éãªå±éãå¿ èŠã«ãªãããããã«ãŒãã«ãã¢ããã°ã¬ãŒããããã ãã§ã¯é©åãªç¶æ³ã§ã¯ãããŸããã
å察ã«ãã«ãŒãã«ã®ããŒãžã§ã³çªå·ã«åºã¥ãåé¿çã«ãããulimitã®åé¡ãåå ã§DIDã倱æããmlockã«ç§»è¡ããŸããã ããã¯ã«ãŒãã«ã®ãã°ã§ã¯ãããŸããã
ããã¯èšã£ãŠããããã«ãã£ãšè¯ã解決çããããã©ããã¯ããããŸããããGoããŒã ã¯ããããæ£ããé»è©±ããããŸããã
@ianlancetaylorã¯ãCã«ãŒãã«ã粟æ»ããæ¹æ³ãšããŠwikiããŒãžã§ãããåç §ã§ãããããããŸããã
ã€ã³ã¹ããŒã«æã«ã¡ãã»ãŒãžãæçš¿ããŠã¿ãŸãããïŒ ããã«ã¯ããã€ããªãªãªãŒã¹ãšãã£ã¹ããªãã¥ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«æé ã®å€æŽã䌎ããŸãããããã«ãããåçŸæ©èœãå®è¡ããŠãã°ã確å®ã«ãã¹ãã§ããŸãã
ãããè¡ãã®ã«ååãªæ³šæãæã£ãŠãããã£ã¹ããªãã¥ãŒã·ã§ã³ã¯ã代ããã«ã«ãŒãã«ã«ããããé©çšããã ãã§ãã
@ianlancetaylorç§ã¯
ããããgolangsã®é害ããã°ã§ã¯ãªãããã£ã¹ããªãã¥ãŒã·ã§ã³ãåºå®ã«ãŒãã«ãåºè·ããŠããããšã匷調ããããšæããŸãã ãã§ã«æ¶ããŠããã¯ãã§ãã
çµæãšããŠãææ¡ããããã³ãïŒwiki +ãããã¯ïŒä»¥äžã®ãã®ã¯å¿ èŠãªããšæããŸãã
@rtrefferãã°ããããããããšãã
å€æŽhttps://golang.org/cl/223417ã¯ãã®åé¡ã«èšåããŠããŸãïŒ [release-branch.go1.14]runtime: don't crash on mlock failure
æ確ã«ããããã«ããŠã£ãã®å 容ã«åºã¥ããŠã1.14.1ã§mlockã倱æããå Žåãããã¯ããã°ã©ã ãã¡ã¢ãªã®ç Žæã«å¯ŸããŠè匱ã§ããããšãæå³ããŸããïŒ
ããããšã
@ smasher164å¿ ãããéããŸããã mlockåŒã³åºãã倱æãããšãã«ããmlockfailsãã¡ãã»ãŒãžãåºåããªããªããŸããã 代ããã«ã倱æãããšããäºå®ãä¿åããŸãã ããã°ã©ã ãã¯ã©ãã·ã¥ããå Žåããšã©ãŒããã¹ãã«mlockã倱æãããšããäºå®ãåºåãããŸãã ããã¯ããã«ãŒãã«ã«ãã°ãããå¯èœæ§ããããšèããŠããŸããmlockã®åé¿çãè©ŠããŸãããã倱æããŸããããšã«ããããã°ã©ã ãå®è¡ãããšãããã¯ã©ãã·ã¥ããŠããŸããŸãããã ã«ãŒãã«ã®ãã°ãåå ãããããŸããããããã°ã©ã ã®ãã°ãããããŸããã
@ randall77ãè¿ä¿¡ããã ãããããšãããããŸãã ããã§ãããªãšã³ãã·ã§ã³ä¿¡å·ãéä¿¡ããåã«ã¹ã¿ãã¯ã«è§Šãããšãã«mlockã倱æããããã°ã©ã ãã¯ã©ãã·ã¥ããªãå Žåãéåæããªãšã³ãã·ã§ã³é¢é£ã®ã¡ã¢ãªç Žæã¯ããã°ã©ã ã«ååšããªããšèšã£ãŠãå·®ãæ¯ããããŸãããïŒ
æ®å¿µãªããéããŸãã mlockã倱æããã«ãŒãã«ã«ãã°ãããå Žåã¯ãã¡ã¢ãªã®ç ŽæãçºçããŠããå¯èœæ§ããããŸãã ããã°ã©ã ãã¯ã©ãã·ã¥ããŠããªããããšãã£ãŠãã©ããã«ç Žæããªãã£ãããã§ã¯ãããŸããã ã¯ã©ãã·ã¥ã¯ã¡ã¢ãªç Žæã®å¯äœçšã§ããmlockã倱æããã ãã§ã¯ã¯ã©ãã·ã¥ã¯çºçããŸããã ïŒããã¯1.14ã§è¡ã£ãŠããŸãããããã¯ã1.14.1ã§å€æŽããããšã®1ã€ã§ããïŒ
éåæããªãšã³ãã·ã§ã³ããªãã«ããŠããã¡ã¢ãªã®ç ŽæãçºçããŠããå¯èœæ§ããããŸãã ããªãã®ããã°ã©ã ã¯ãããããŸã ä»ã®ä¿¡å·ïŒã¿ã€ããŒãªã©ïŒãåãåã£ãŠããã®ã§ãã¡ããã©äœãã¬ãŒãã§ã
@ smasher164wikiããŒãžhttps://golang.org/wiki/LinuxKernelSignalVectorBugãäžæãªå Žåã¯ãç¥ãããã ããã ããããšãã
ã©ãããã°ããããªããã¢ãŠãã§ããŸããïŒ
ç§ã¯lxdã«ãã£ãŠäœæãããéç¹æš©ã®lxcã³ã³ãããŒå ã«ããã®ã§ããã¹ããšåãã«ãŒãã«ãæã£ãŠããŸãããã·ã¹ãã å šäœã®å¶éãèšå®ã§ããŸããã
# container
$ uname -a
Linux runner-33-project-447-concurrent-0-job-25150 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ /proc/version_signature
/proc/version_signature: Permission denied
$ ulimit -l 123456
ulimit: max locked memory: cannot modify limit: Operation not permitted
# host
$ uname -a
Linux gitlab-ci-runner-lxd-2 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ cat /proc/version_signature
Ubuntu 5.4.0-31.35-generic 5.4.34
https://github.com/golang/go/issues/37436#issuecomment -595836976ã«ãããšããã¹ãïŒãã©ãŒã«ã«ïŒã«ã¯ã«ãŒãã«ããããå«ãŸããŠããŸãã
Goã¯ãæ°æ¥åã«go get golang.org/dl/go1.14
ãšgo1.14 download
ã䜿çšããŠæ§ç¯ãããŸãã
$ go version
go version go1.14 linux/amd64
ç¹°ãè¿ããŸãããã©ãããã°ããããªããã¢ãŠãã§ããŸããïŒ
ä»ã®ããã°ã©ã /ãã€ãã©ã€ã³ã圱é¿ãåããã·ã¹ãã å šäœã®ãªãã·ã§ã³ãå€æŽããåã«ãããããã¹ãŠã®å¯èœæ§ã«ã€ããŠéåçãªã³ã³ã»ã³ãµã¹ãäœæããå¿ èŠããããããã·ã¹ãã å šäœã®å¶éãå€æŽããããšã¯ã§ããªã/ããããªããããããŸããã
ãã®ãããªæ€åºãã§ããã®ã¯å£ããŠããŸãã ããã£ãŠããå Žåãã«ãŒãã«ã«ã¯ä¿®æ£ããããããããããæ€åºã¯èª€æ€ç¥ã®åŸåããããŸãã
次ã«ãgoããŒãžã§ã³ãæ瀺çã«ããŒãããŠã¿ãŸãgo get golang.org/dl/go1.14
ãææ°ã®1.14ãããŒãããããšãæåŸ
ããŠããŸããã å ±åããŸãã
ç·šéã1.14.3ã¯ä»æ¥ã®æç¹ã§ææ°ã®1.14ã®ããã§ã
æŽæ°ïŒ go get golang.org/dl/go1.14.3
ã§èŠæ ããè¯ããææ°ã®ãã®ãããŒãããŠããªããããããªããã°ãç¥ã£ãŠãããšäºæ³å€ã§ãïŒããã§ãªããã°ããã®åé¡ã«ééããããšã¯ãããŸããã§ããïŒ
泚æç¹-Go1.15ããªãªãŒã¹ãããããšããŠãããããŒã¿çã¯ãã§ã«ãªãªãŒã¹ãããŠããŸãããäžæçãªãããã¯ãŸã åé€ãããŠããŸããïŒGo1.15ã§åé€ããtodoã³ã¡ã³ãããããŸãïŒã
Ubuntu 20.04 LTSã¯ããããé©çšããã5.4.0ã«ãŒãã«ã䜿çšããŠãããããåé¿çãåé€ããããšãéèŠã ãšæããŸãã ããã¯ãUbuntu 20.04ã®ãã¹ãŠã®ãŠãŒã¶ãŒãäŸç¶ãšããŠäžå¿ èŠã«ããŒãžãmlockããããšãæå³ããDockerã³ã³ãããŒã§å®è¡ããŠããå Žåãã«ãŒãã«ãå®éã«ã¯ãã°ããªããšããäºå®ãç¡èŠããŠãã¯ã©ãã·ã¥ã®ãã³ã«èŠåã衚瀺ãããŸãã ãããã£ãŠããããã®ãŠãŒã¶ãŒã¯ããã®ãã¹ãŠã®æ å ±ãç解ããŠèªã¿èŸŒãããšãã倧ãããªè¿œè·¡ã«éãããå¯èœæ§ããããããããUbuntu 20.04ã®ã©ã€ããµã€ã¯ã«å šäœã«ããã£ãŠããã°ãšã¯äœã®é¢ä¿ããããŸããã
@DanielShaulovããããšãã ãã®ããã®æ°ããåé¡ãéãããšãã§ããŸããïŒ ããã¯1.14ã®åé¡ã«é¢ä¿ããŠããŸãã
@networkimprov sureïŒïŒ40184
å€æŽhttps://golang.org/cl/243658ã¯ãã®åé¡ã«èšåããŠããŸãïŒ runtime: let GODEBUG=mlock=0 disable mlock calls
å€æŽhttps://golang.org/cl/244059ã¯ãã®åé¡ã«èšåããŠããŸãïŒ runtime: don't mlock on Ubuntu 5.4 systems
ãã®å€æŽã§go1.14.7ããªãªãŒã¹ãããã®ã¯
ãã®ä¿®æ£ã¯ãæ°ãæåã«åºè·ããã1.14.1以éã®ãã¹ãŠã®ãªãªãŒã¹ã«å«ãŸããŠããŸãã
å€æŽhttps://golang.org/cl/246200ã¯ãã®åé¡ã«èšåããŠããŸãïŒ runtime: revert signal stack mlocking
æãåèã«ãªãã³ã¡ã³ã
ã«ãŒãã«ã®ãã°ã¯ãGo 1.13ã§ã©ã³ãã ãªã¡ã¢ãªç ŽæãšããŠçŸããŸããïŒããªãšã³ããã£ãã¹ã±ãžã¥ãŒãªã³ã°ãããšãªãã®äž¡æ¹ïŒã Go 1.14ã®æ°æ©èœã¯ããã°ã®ååšãæ€åºãããããåé¿ããããšãããããäžå¯èœãªå Žåã¯æ©æã«å€§é³éã§ã¯ã©ãã·ã¥ããããšã奜ãããšã§ãã ããªãã¯ç§ãããªãã«çŽ¹ä»ããåé¡ã§è©³çŽ°ãèŠãããšãã§ããŸãã
ããªãã¯ç§ãäžèª å®ã§åä»ã ãšåŒãã§ããã®ã§ãè¡åèŠç¯ã«ã€ããŠããäžåºŠæãåºãããŸãïŒ https ïŒ