Um bug foi identificado no kernel do Linux que causa o mau funcionamento de alguns programas que usam AVX

No kernel Linux desde a versão 5.2, manifesta-se Um erro que faz com que o conteúdo do registro AVX seja violado ao retornar de um manipulador de sinal que é tratado quando uma exceção é lançada (falha de página). O problema ocorre ao executar programas multithread ("-pthread") que envolvem cálculos com o registro AVX, se o kernel for compilado no GCC 9 (se construído em versões anteriores do GCC, o erro não aparece, pois o GCC 9 armazena cache o endereço da variável local do thread no registro e versões anteriores do GCC carregam-no sempre).

O problema faz com que o programa seja encerrado prematuramente com um erro de corrupção de memória. A manifestação mais perceptível e frequentemente observada do erro aço falhas aplicações, escrito na linguagem Go. Devido ao problema observado, os programas Go terminam prematuramente, geralmente com os erros “erro de tempo de execução: endereço de memória inválido ou desreferência de ponteiro nulo”, “tempo de execução: retorno inesperado do pc” e “violação de segmentação”. O bug no kernel permanece sem correção por enquanto. A possibilidade está sendo considerada adicionar alterações ao tempo de execução da linguagem Go para ignorar seletivamente erros em kernels Linux problemáticos, ao custo de sobrecarga adicional.

Fonte: opennet.ru

Adicionar um comentário