Mehr als 2.500 Python-Pakete könnten unter bestimmten Umständen
falsche Ergebnisse bei numerischen Berechnungen liefern - davon
berichtet der Informatiker und Assistant Professor an der NYU Tandon,
Brendan Dolan-Gavitt, in
seinem Blog. Ursache für die Fehler sei eine Compiler-Option
zur Beschleunigung der Berechnungen, die von einigen wenigen Paketen
verwendet werde.
Aufgefallen sei das Problem durch eine Fehlermeldung der sogenannten
Numpy-Bibliothek,
welche darauf hinweise, dass sogenannte subnormale oder nichtnormalisierte
Gleitkommazahlen wie Null behandelt werden. Die wohl für den
Fehler verantwortliche Compiler-Option -ffast-math führe dazu,
dass die CPU-Flags für FTZ (Flush to Zero) und DAZ (Denormals
are zero) gesetzt werden - auch, wenn eine mit der Option Bibliothek
erstellte Bibliothek dynamisch geladen wird. Die Flags sollen jedoch
nicht nur das Verhalten der Bibliothek, sondern des gesamten Prozesses
beeinflussen.
Dolan-Gavitt konnte als Verursacher letzlich die Netzwerkbibliothek
Gevent identifizieren, welche die Compiler-Option implizit nutze.
Er durchsuchte in einem weiteren Schritt das gesamte Python-Paketarchiv
auf Binärdateien, die ebenfalls mit der Option erstellt wurden.
Insgesamt seien 49 Pakete jemals mit der möglicherweise fehlerverursachenden
Option erstellt worden. Weiterhin sollen rund 2.500 Python-Pakete
von einem dieser Pakete abhängen.
In seinem Blog warnt Dolan-Gavitt vor den möglichen Folgen
der unter Umständen fehlerhaften Berechnungen. Darüber
hinaus weist er auch darauf hin, dass das Verhalten der Compiler
angepasst werden sollte - ein GCC-Bugreport
hierzu sei bereits 10 Jahre alt.
(jb, hannover)
(siehe auch: golem.de)
Hannover
· EDV-Beratung · Linux · Novell · Microsoft ·
Seminar · IT-Consult · Netzwerk · LPIC · CLE
|