Εντοπίστηκε ένα σφάλμα στον πυρήνα του Linux που προκαλεί δυσλειτουργία ορισμένων προγραμμάτων που χρησιμοποιούν AVX

Στον πυρήνα του Linux από την έκδοση 5.2, εκδηλώνεται Σφάλμα που προκαλεί παραβίαση των περιεχομένων του καταχωρητή AVX κατά την επιστροφή από ένα πρόγραμμα χειρισμού σήματος, το οποίο αντιμετωπίζεται όταν γίνεται εξαίρεση (σφάλμα σελίδας). Το πρόβλημα παρουσιάζεται κατά την εκτέλεση προγραμμάτων πολλαπλών νημάτων ("-pthread") που περιλαμβάνουν υπολογισμούς με τον καταχωρητή AVX, εάν ο πυρήνας είναι ενσωματωμένος στο GCC 9 (εάν είναι ενσωματωμένος σε προηγούμενες εκδόσεις του GCC, το σφάλμα δεν εμφανίζεται, καθώς το GCC 9 αποθηκεύει προσωρινά τη διεύθυνση της τοπικής μεταβλητής νήματος στον καταχωρητή και προηγούμενες εκδόσεις του GCC τη φορτώνουν κάθε φορά).

Το πρόβλημα προκαλεί τον πρόωρο τερματισμό του προγράμματος με ένα σφάλμα καταστροφής μνήμης. Η πιο αισθητή και συχνά παρατηρούμενη εκδήλωση του σφάλματος ατσάλι συντρίβεται εφαρμογές, γραμμένο στη γλώσσα Go. Λόγω του προβλήματος που σημειώθηκε, τα προγράμματα Go τερματίζονται πρόωρα, συνήθως με τα σφάλματα "Σφάλμα χρόνου εκτέλεσης: μη έγκυρη διεύθυνση μνήμης ή μηδενική αναφορά δείκτη", "χρόνος εκτέλεσης: απροσδόκητη επιστροφή υπολογιστή" και "παραβίαση τμηματοποίησης". Το σφάλμα στον πυρήνα παραμένει αδιόρθωτο. Το ενδεχόμενο εξετάζεται προσθήκη αλλαγών στο χρόνο εκτέλεσης της γλώσσας Go για την επιλεκτική παράκαμψη σφαλμάτων σε προβληματικούς πυρήνες Linux, με κόστος επιπλέον επιβάρυνση.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο