В ядрото на Linux, започвайки от версия 5.2, грешка, която води до нарушаване на съдържанието на регистра AVX при възврат от обработчика на сигнал, обработван при генериране на изключение (page-fault). Проблемът възниква при стартиране на многонишкови програми („-pthread“), които включват изчисления с регистра AVX, в случай на компилиране на ядрото с GCC 9 (при компилиране с по-стари версии на GCC грешката не се проявява, тъй като GCC 9 кешира адреса на променливата thread-local в регистра, докато по-ранни версии на GCC го зареждат всеки път).
Проблемът води до преждевременно приключване на програмата с грешка за повреда на паметта. Най-забележимото и често наблюдавано проявление на грешката , написани на езика Go. Поради отбелязания проблем, програмите на езика Go преждевременно приключват, обикновено с грешки „runtime error: invalid memory address or nil pointer dereference“, „runtime: unexpected return pc“ и „segmentation violation“. В ядрото проблемът все още не е отстранен. да се добавят в runtime на езика Go промени за селективно заобикаляне на грешката на проблематичните ядра на Linux, цената на появата на допълнителни разходи.
Източник: opennet.ru
