No núcleo do Linux, a partir da versão 5.2, um erro que resulta na corrupção do conteúdo do registrador AVX ao retornar de um manipulador de sinal, que é processado durante a geração de uma exceção (page-fault). O problema ocorre ao executar programas multithreaded ("-pthread") que realizam cálculos com o registrador AVX, na versão do núcleo compilada no GCC 9 (na compilação em versões anteriores do GCC, o erro não se manifesta, pois o GCC 9 armazena em cache o endereço da variável thread-local no registrador, enquanto versões anteriores do GCC carregam esse endereço toda vez).
O problema leva ao término prematuro do programa com um erro de corrupção de memória. A manifestação do erro mais notável e comumente observada , escritos na linguagem Go. Devido ao problema identificado, programas escritos em Go encerram prematuramente, normalmente com os erros "runtime error: invalid memory address or nil pointer dereference", "runtime: unexpected return pc" e "segmentation violation". No núcleo, o erro ainda permanece não corrigido. adicionar ao runtime da linguagem Go alterações para contornar o erro em núcleos problemáticos do Linux, à custa do surgimento de uma sobrecarga adicional.
Fonte: opennet.ru
