În nucleul Linux, începând cu versiunea 5.2, o eroare care duce la coruperea conținutului registrului AVX la revenirea din handler-ul semnalului, procesat la generarea unei excepții (page-fault). Problema apare la rularea programelor multi-threaded („-pthread”), în care sunt incluse calcule cu registrul AVX, în cazul compilării nucleului cu GCC 9 (la compilarea cu versiuni anterioare de GCC, eroarea nu se manifestă, deoarece GCC 9 stochează adresa variabilei locale de fir în registru, iar versiunile anterioare de GCC o încarcă de fiecare dată).
Problema duce la încheierea prematură a programului cu o eroare de corupție a memoriei. Cel mai evident și frecvent observat efect al erorii , scrise în limbajul Go. Din cauza problemei semnalate, programele scrise în Go se încheie prematur, de obicei, cu erorile „runtime error: invalid memory address or nil pointer dereference”, „runtime: unexpected return pc” și „segmentation violation”. În nucleu, eroarea rămâne nerezolvată. adăugării în runtime-ul limbajului Go de modificări pentru a ocoli selectiv eroarea pe nucleele problematice Linux, costul fiind apariția unor cheltuieli suplimentare.
Sursa: opennet.ro
