В ядрото на 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
