Ein seltsamer Node-Image-Patch: Das Geheimnis der JAR-Reihenfolge

2025-04-09

Ein Node-Image-Patch-Update verursachte einen längeren Ausfall von JVM-Produktionsanwendungen. Die Ursache war die Verwendung eines Platzhalters `/jars/*` im JVM-Classpath. Der Directory-Hash-Seed eines ext4-Dateisystems änderte sich nach dem Patch-Update, wodurch sich die Ladeordnung der JAR-Dateien veränderte. Dies verhinderte, dass eine Client-Bibliothek, die von einer bestimmten Version der Bouncy-Castle-Bibliothek abhängt, ordnungsgemäß initialisiert wurde, was zu einem `NoSuchFieldError` führte. Der Autor untersuchte das Problem und schloss Buildah-Layer-Komprimierung und Probleme mit der OverlayFS-Layer-Reihenfolge aus. Das Problem wurde schließlich auf die Änderung des Directory-Hash-Seeds des ext4-Dateisystems zurückgeführt. Das Ändern des Hash-Seeds in der ext4-Disk-Image-Datei bestätigte dies. Dieser Vorfall zeigt, wie scheinbar kleine Systemdetails schwerwiegende Folgen haben können, und unterstreicht die Bedeutung eines tiefen Verständnisses der zugrundeliegenden Systemkomplexitäten.

Mehr lesen
Entwicklung