The Go team has found that recent Linux kernels break the recently integrated goroutine preemption logic.
There is deep analysis here https://github.com/golang/go/issues/35326#issuecomment-55821... They have bisected the kernel and found that https://github.com/torvalds/linux/commit/d9c9ce34ed5c892323c... is the culprit. Apparently, it introduces changes in the signal handling behavior only visible when compiled with GCC 9, presumably because it uses AVX registers.
The entire discussion is a nice read.
The Go team has found that recent Linux kernels break the recently integrated goroutine preemption logic.
There is deep analysis here https://github.com/golang/go/issues/35326#issuecomment-55821... They have bisected the kernel and found that https://github.com/torvalds/linux/commit/d9c9ce34ed5c892323c... is the culprit. Apparently, it introduces changes in the signal handling behavior only visible when compiled with GCC 9, presumably because it uses AVX registers.
The entire discussion is a nice read.