Dans le noyau Linux, depuis la version 5.2, une erreur provoquant la corruption du contenu du registre AVX lors du retour d'un gestionnaire de signaux, traité lors de la génération d'une exception (page-fault). Ce problème survient lors de l'exécution de programmes multithread (« -pthread ») contenant des calculs avec le registre AVX, dans le cas où le noyau est compilé avec GCC 9 (dans les versions antérieures de GCC, l'erreur ne se manifeste pas, car GCC 9 met en cache l'adresse de la variable thread-local dans le registre, tandis que les versions antérieures de GCC la chargent à chaque fois).
Le problème entraîne une terminaison prématurée du programme avec une erreur de corruption de mémoire. Le symptôme le plus visible et fréquemment observé de l'erreur , écrits en Go. En raison du problème signalé, les programmes en Go se terminent prématurément, généralement avec les erreurs « runtime error : invalid memory address or nil pointer dereference », « runtime : unexpected return pc » et « segmentation violation ». L'erreur dans le noyau ne reste pour l'instant pas corrigée. d'ajouter des modifications au runtime du langage Go pour contourner sélectivement l'erreur sur les noyaux Linux problématiques, au prix de frais supplémentaires.
Source : opennet.ru
