
Go issue: memory corruption on Linux 5.3.x from async preemption - alderz
https://github.com/golang/go/issues/35777
======
alderz
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...](https://github.com/golang/go/issues/35326#issuecomment-558212984)
They have bisected the kernel and found that
[https://github.com/torvalds/linux/commit/d9c9ce34ed5c892323c...](https://github.com/torvalds/linux/commit/d9c9ce34ed5c892323cbf5b4f9a4c498e036316a)
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.

