In the Linux kernel, starting from version 5.2, there is a bug that causes corruption of the AVX register contents when returning from a signal handler triggered by an exception (page-fault). The issue occurs when running multithreaded applications (ā-pthreadā) that perform calculations with the AVX register, particularly with kernels built using GCC 9 (this error does not manifest when using earlier versions of GCC, as GCC 9 caches the thread-local variable address in the register while earlier versions load it each time).
The problem leads to premature termination of the application with a memory corruption error. The most noticeable and commonly observed manifestation of the bug , primarily in programs written in Go. Due to the identified issue, Go programs terminate prematurely, usually with errors such as āruntime error: invalid memory address or nil pointer dereferenceā, āruntime: unexpected return pcā, and āsegmentation violationā. The bug remains unfixed in the kernel. adding changes to the Go runtime for selectively bypassing the bug on problematic Linux kernels is being considered, at the cost of introducing additional overhead.
Source: opennet.ru
