Go 1.14 の主なregressionです。1.14.1で修正されると思われます。
-
runtime: mlock of signal stack failed: 12 #37436
- 現象: mlockに失敗した時にメッセージ (increase the mlock limit (ulimit -l) or update your kernel to 5.3.15+, 5.4.2+, or 5.5+) を表示してpanicする
- 根本原因: Linuxカーネルのバグ (https://bugzilla.kernel.org/show_bug.cgi?id=205663)
- 影響範囲: Linux 5.2.x, 5.3.0-5.3.14, 5.4.0-5.4.1
- Go側の原因: golang/go#35777 https://go-review.googlesource.com/c/go/+/209899/ https://go-review.googlesource.com/c/go/+/210098
- 修正: mlockで失敗したらwiki page (https://golang.org/wiki/LinuxKernelSignalVectorBug) へのリンクを表示して継続する、予期しないSIGSEGV, SIGBUGを受けてmlockに失敗していたらstack traceにwiki pageへのリンクを表示する https://go-review.googlesource.com/c/go/+/223417 golang/go#37436 (comment)
- Go 1.14.1で修正されました
-
SIGILL: illegal instruction on any go tool under macOS #37459
- 現象:
runtime.asyncPreempt()
でSIGILL: illegal instruction
が起きてpanicする - 原因:
darwin/amd64
にてVZEROUPPER
を呼ぶようになった https://go-review.googlesource.com/c/go/+/219131 - 影響範囲: Sandy Bridgeよりも古いCPU (Advanced Vector Extensions (以下AVX) をサポートしていないCPU) のmacOS (darwin/amd64)で、あらゆるGoのコードが対象
- 修正: AVXをサポートしていないCPUでは
VZEROUPPER
を呼ばない https://go-review.googlesource.com/c/go/+/221058 - Go 1.14.1で修正されました
- 現象:
-
runtime: crash on 1.14 with unexpected return pc, fatal error: unknown caller pc #37664
- 現象: 再帰的な関数呼び出しで、
defer
内のrecover
後にpanic
があるときにfatal error: unknown caller pc
エラーとなりpanicする - 原因:
defer
の実装の改善 https://go-review.googlesource.com/c/go/+/190098 - 修正:
panic
の実装の修正 https://go-review.googlesource.com/c/go/+/222420 - Go 1.14.1で修正されました
- 現象: 再帰的な関数呼び出しで、
-
math/big: panic in big.ParseFloat (off by one access) #37499
- 現象:
big.ParseFloat
でpanicする - 原因: 割り算のアルゴリズムの変更 golang/go#21960 https://go-review.googlesource.com/c/go/+/172018
- 修正:
nat#divBasic
の実装の修正 https://go-review.googlesource.com/c/go/+/221980 - Go 1.14.2で修正されました
- 現象:
-
cmd/cgo: fails to generate certain types with Go 1.14 #37621
- 現象:
cgo -godefs
で意図したコードが生成されない - 原因: golang/go#31891 https://go-review.googlesource.com/c/go/+/181857
- Go 1.14.2で修正されました
- 現象:
-
runtime: sometimes 100% CPU spin during init phase in Go 1.14 with preemptive scheduler #37741
- 現象:
init()
の実行時にCPUが100%になることがある - 原因: preemptive scheduler
- 影響範囲: macOSで再現しているが原因の箇所はsignal_unix.go
- 修正: https://go-review.googlesource.com/c/go/+/223737/
- Go 1.14.1で修正されました
- 現象: