RacerD: Facebook veröffentlicht statische Prüfung für Datenrennen

Facebook hat am 19. Oktober 2017 RacerD als Open-Source-Prüfer in der Analyseplattform Infer vorgestellt. Der Entwicklungsbericht beschreibt die Suche nach Datenrennen in Java, ohne das untersuchte Programm auszuführen. Dabei geht es um ungeschützte Speicherzugriffe, von denen mindestens einer schreibt.

Fehler finden statt vollständige Freiheit von Datenrennen beweisen

RacerD berücksichtigt Sperren, Thread-Zuordnung und Besitzverhältnisse. Die Analyse einzelner Programmteile lässt sich zu größeren Prüfungen zusammensetzen. Facebook priorisiert wenige Fehlalarme und nimmt dafür übersehene Konflikte in Kauf. Ein unauffälliger Lauf ist deshalb kein Beweis, dass sämtliche nebenläufigen Zugriffe sicher sind.

Facebook nennt über 1.000 bearbeitete Analysehinweise im Android-Code. Dazu zählen funktionale Korrekturen und zusätzliche Annotationen. Die Zahl belegt keine 1.000 Abstürze. Infer prüfte Codeänderungen im CI-System parallel zu Builds und Tests.

Infer 0.13.0 führt mehrere Prüfer gleichzeitig aus

Die Release-Notes von Infer 0.13.0 vom selben Tag führen RacerD unter den standardmäßig aktiven Prüfern auf. Die Sprachliste nennt Java sowie C, C++ und Objective-C. Der detaillierte Einsatzbericht und seine Beispiele beziehen sich auf Java; daraus folgt keine identische Abdeckung aller Sprachmerkmale. Die Version enthält außerdem Clang 5.0 und geänderte Kommandozeilenaufrufe.

Für technische Teams ist die Trennung zwischen statischer Prüfung und Ausführung wichtig. Auch ShellCheck untersucht Quelltext vor der Ausführung, richtet sich aber an Shell-Skripte statt an nebenläufigen Java-Code. Solche Prüfer ergänzen Tests um eine andere Sicht auf das Programm. Sie ersetzen weder Laufzeittests noch die Prüfung der gemeldeten Stellen durch Entwickler.

Archivhinweis: Der Beitrag beschreibt die Ankündigung und Infer-Version vom Oktober 2017. Die heute fortgeschriebene Dokumentation wird nicht als Beleg für den damaligen Funktionsstand verwendet.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein