Im Rahmen des Frühjahrs-Updates haben wir die Baustatik ja auch auch eine neue Plattform umgezogen und verwenden nun statt Microsoft Framework (wie all die Jahre zuvor) das moderne Microsoft NET Core. Dabei ist und zunächst nichts aufgefallen, aber nach der Installation der ersten Versionen bei Kunden gab es einige komische Vorgänge, die wir uns zunächst nicht erklären konnten. Das Programm stürzte offenbar unversehens ab (natürlich sind diese Abstürze zu 100% von uns nicht nachvollziehbar) und lieferte uns aber obendrein auch keinerlei brauchbare Daten über den Absturz.

Im Laufe der Jahre haben wir einen ziemlich gut funktionierenden Telemetrie-Mechanismus in die Baustatik eingebaut. Dazu zählt unter anderem der Mechanismus, mit dem Sie die aktuellen Datei (mit ein paar Fehlerdaten) übers Datei-Menü an uns senden können, wir bekommen aber bei “Totalabstürzen” auch eine Information über den Absturz: Spezielle für das Auffinden von seltenen Randproblemfällen ist das massiv hilfreich: Ohne diese Daten ist es praktisch nicht möglich, derartige Fehler zu bereinigen.

Speziell bei den “spontan” auftretenden Abstürzen mit der neuen Framework-Variante bekamen wir aber gar keine Informationen. Nada. Zero. Nichts. Und es hat ein bisschen gedauert, bis wir der Sache auf die Spur gekommen sind. Dazu mussten wir erstmal herausfinden, dass das neue Framework in einigen Fällen keine Fehler mehr produziert, die wir selbst im Programm behandeln können, sondern die Anwendung statt dessen einfach sofort und vollständig beendet. Damit war klar, warum wir keine brauchbaren Daten über diese Abstürze hatten: Die Baustatik konnte keine mehr liefern, weil es vor der Anlieferung der Fehlermeldung bereits beendet wurde.

Nachdem wir das herausgefunden hatten (und das kam wirklich sehr überraschend, denn diese Vorgehensweise macht m.a.n. auch nicht besonders viel Sinn) mussten wir einen Weg finden, trotzdem irgendwie an Daten zu gelangen. Und auch den Weg haben wir gefunden – darum war eines der letzten Updates nötig: Die Baustatik konnten nun aus dem Ereignisprotokoll des Rechners vorhergehende Abstürze von sich selbst auslesen und diese statt der bisher gewohnten Daten melden. Und um es klar zu sagen: Wir bekommen diese Daten auch noch in einer schlechten Form und die internen Tools um damit umzugehen sind auch noch alles andere als ausgereift. Aber immerhin: Wir bekommen jetzt seit etwa 3 Wochen auch wieder Fehlerdaten zu den spontanen Abstürzen und es stellte sich heraus: Die resultieren alle aus der gleichen Codestelle. Und die ist gar nicht bei uns im Programm, sondern bei Microsoft.

Herzlichen Dank.

Jedenfalls glauben wir, dass wir das Problem lokalisiert haben und haben einen entsprechenden Fall im zugehörigen Projekt auf Github angelegt und tatsächlich hat sich inzwischen auch jemand der Sache angenommen und das offenbar beseitigt. Es stehen da aber wohl noch ein paar Tests an. Wir müssen jetzt noch herausfinden, wie wir an die geänderte Version des Frameworks drankommen und dann kann es mit der “Verteilung” davon losgehen: Es ist also zu hoffen, dass die spontanen Abstürze in Kürze ein Ende haben werden.

update