В ядрото на Linux е открито грешка, която води до нарушаване на функционирането на някои приложения, използващи AVX

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster