In de Linux-kernel, beginnend met versie 5.2, is er een fout die leidt tot een beschadiging van de AVX-registerinhoud bij terugkeer uit een signaalhandler, die wordt verwerkt bij het genereren van een uitzondering (page-fault). Dit probleem doet zich voor bij het uitvoeren van multithreaded programma's ('-pthread'), waarbij berekeningen met het AVX-register worden gedaan, in het geval van een kernelbuild in GCC 9 (bij builds in eerdere versies van GCC manifesteert de fout zich niet, aangezien GCC 9 het adres van de thread-locale variabele in het register cachet, terwijl eerdere versies van GCC dit elke keer laden).
Dit probleem leidt tot voortijdige beƫindiging van het programma met een geheugenbeschadigingsfout. De meest opvallende en vaak waargenomen manifestatie van de fout , geschreven in de programmeertaal Go. Vanwege het genoemde probleem worden programma's in de programmeertaal Go voortijdig beƫindigd, doorgaans met fouten zoals 'runtime error: invalid memory address or nil pointer dereference', 'runtime: unexpected return pc' en 'segmentation violation'. In de kernel is de fout voorlopig nog niet opgelost. om veranderingen in de runtime van de programmeertaal Go toe te voegen om de fout selectief te omzeilen op problematische Linux-kernels, ten koste van extra overhead.
Bron: opennet.ru
