Deterministisches Simulationstesten in celld: Wie ein Simulator einen zuvor unbekannten Alarm-Race-Bug aufdeckte
Deterministic Simulation Testing in Celld

celld, eine Laufzeitumgebung für Cloudflare Workers und Durable Objects, setzt auf deterministisches Simulationstesten (DST), um schwer reproduzierbare Fehler in verteilten Systemen zu finden. Der Simulator steuert die Reihenfolge von Ereignissen, Speicherzugriffen und Fehlern mithilfe eines Seeds, sodass fehlschlagende Läufe exakt wiederholt werden können. So entdeckte das Team einen Alarm-Race: Ein verspäteter Cleanup löschte einen Wake-Eintrag, der für einen neuen Alarm noch benötigt wurde. Der Fehler wurde behoben und als Regressionstest festgehalten.
Wenn der Knoten vor 10:05 neu startete, konnte der fehlende Wake-Eintrag verhindern, dass der Alarm ausgeführt wurde – trotz der zuvor gemeldeten Erfolgsantwort.