En el núcleo de Linux, a partir de la versión 5.2, hay un error que causa la corrupción del contenido del registro AVX al regresar de un controlador de señales, procesado al generar una excepción (page-fault). El problema ocurre al ejecutar programas multihilo («-pthread») que tienen cálculos con el registro AVX, en el caso de una compilación del núcleo en GCC 9 (en compilaciones con versiones anteriores de GCC, el error no se manifiesta, ya que GCC 9 almacena en caché la dirección de la variable local de hilo en el registro, mientras que las versiones anteriores de GCC la cargan cada vez).
El problema provoca la finalización anticipada del programa con un error de corrupción de memoria. La manifestación más notable y comúnmente observada del error , escritos en el lenguaje Go. Debido al problema mencionado, los programas en Go suelen finalizar anticipadamente con errores como «runtime error: invalid memory address or nil pointer dereference», «runtime: unexpected return pc» y «segmentation violation». En el núcleo, el error aún no se ha corregido. agregar cambios al runtime del lenguaje Go para eludir selectivamente el error en los núcleos problemáticos de Linux, a expensas de la aparición de costos adicionales.
Fuente: opennet.ru
