I kärnan av Linux, med start från version 5.2, finns ett fel som leder till att innehållet i AVX-registret störs vid återgång från en signalhanterare, som hanteras vid undantagsgenerering (page-fault). Problemet uppstår när man kör flertrådade program („-pthread”) med beräkningar med AVX-registret, i fall där kärnan är kompilerad med GCC 9 (vid kompilering med tidigare versioner av GCC uppstår inte felet, eftersom GCC 9 cachar adressen till tråduppställningsvariabeln i registret, medan tidigare versioner av GCC hämtar den varje gång).
Problemet leder till att programmet avslutas i förtid med felmeddelandet för minneskorruption. Det mest påfallande och ofta observerade symptomet på felet , skrivna i Go-språket. På grund av det beskrivna problemet avslutas program skrivna i Go i förtid, vanligtvis med felen "runtime error: invalid memory address or nil pointer dereference", "runtime: unexpected return pc" och "segmentation violation". Felet i kärnan är fortfarande ofixerat. lägga till ändringar i Go-runtime för selektiv undvikande av felet på problematiska Linux-kärnor, på bekostnad av att det uppstår ytterligare overhead.
Källa: opennet.ru
