Destiny 2 – Erneute Probleme nach Hotfix – Ursachenforschung

Am vergangenen Dienstag zum Reset wurde Hotfix 2.7.1.1 veröffentlicht. Erneute Probleme sorgten für Ärger. Denn wie beim letzten Mal kam es zu Schwierigkeiten und Problemen nach dem Download. Verschwundene Materialien und Währungen waren der Fall. Erinnerungen an den letzten Hotfix wurden wach, denn es war nicht das erste Mal das so etwas passierte. Denn am 28. Januar mit der Veröffentlichung von Hotfix 2.7.1 gingen ebenfalls bereits Währung und Materialien verloren. Beide Male führte das Ganze zu einer Zurücksetzung der Spieler-Konten. Schnell gingen dafür die Server offline für eine Notfallwartung. Über Stunden hinweg, bis in die Nacht unserer Zeit dauerte diese an. Nun öffnete sich Bungie in einem langen Bericht über die Ursachen und die Problembehebung. Absolut gläsern wie wir finden. Schauen wir uns das nun einmal näher an. Nachfolgend der Bericht vom Dev-Team.

Destiny 2 Erneute Probleme

Inventar-Verwaltung

In Destiny 2 werden Quests ähnlich behandelt wie andere Gegenstände im Inventar, z. B. Währung und Materialien. Alle Gegenstände haben einen Zeitstempel, der auf dem Zeitpunkt basiert, zu dem sie zum Inventar des Spielers hinzugefügt wurden. Mithilfe dieses Zeitstempels werden Quests in der Reihenfolge aufgelistet, in der sie angenommen wurden. Das Spiel räumt das Inventar eines Spielers bei jeder Anmeldung auf, um zu gewährleisten, dass es mit allen Änderungen am Inhalt übereinstimmt wie z. B. der maximalen Anzahl an Gegenständen eines bestimmten Typs, die der Spieler besitzen darf.

Vor einigen Monaten meldeten Spieler, dass die Quests nicht korrekt sortiert wurden. Das wollten wir beheben. Das Team untersuchte diesen Fall und fand heraus, dass der Aufräumprozess den Zeitstempel einiger Quests zurücksetzte, was die chronologische Sortierung störte. Wir entschieden uns, das Problem zu beheben, indem wir das Zurücksetzen des Zeitstempels von Quests deaktivierten. Diese Lösung war prinzipiell vernünftig, doch durch subtile Nebenwirkungen deaktivierte sie zu viele Teile des Aufräumprozesses.

Das Endergebnis war, dass das Spiel die falsche Höchstmenge für gestapelte Gegenstände (wie Währungen und Materialien) errechnete, was zum Verlust von Gegenständen oberhalb dieser Menge führte. Wir wussten, dass dieser Code wichtig war, und haben gemäß unserer üblichen Vorgehensweise die Veränderung des Codes von zwei Spezialisten begutachten lassen. Aber leider haben wir den Fehler nicht gefunden.

Ein paar Tage später fanden unsere internen Teams das Problem. Allerdings machten wir fälschlicherweise ein Versagen der Bearbeitung im Rahmen der Debug-Arbeitsabläufe verantwortlich, die wir zum Testen verwenden, statt einen Fehler innerhalb des Spiels. Trotz sorgfältiger Überprüfung ging das Problem in 2.7.1 live. Sobald der Fehler im Spiel identifiziert worden war, mussten wir im nächsten Schritt herausfinden, wie wir ihn beheben konnten, was uns zur nächsten Diskussion bringt: Spiel-Server und ihre Konfigurationen.

Destiny 2 Server

Server-Konfigurationen

Vor jeder großen Veröffentlichung (zum Beispiel „Festung der Schatten“) führen wir umfassende Belastungstests durch, bei denen wir versuchen, Nutzerverhalten und dessen Auswirkungen auf unsere Dienststruktur zu simulieren. Da es keinen Ersatz für Millionen von echten Spielern und ihr Verhalten gibt, ergänzen wir diese Tests, indem wir nach der Veröffentlichung die Leistungsmerkmale überwachen.

Im Oktober haben wir zusätzliche Server (in diesem Fall „Weltenserver“ genannt) eingespannt, um die erhöhte Prozessor- und Spieler-Belastung für den Start von „Festung der Schatten“ zu kompensieren; mehr Server, als wir je zuvor für diese Aufgabe verwendet haben. Die Verwendung so vieler Server hat ein paar kleinere Nebenwirkungen, die wir verfolgten, aber generell war sie für Spieler unsichtbar. Ein Problem war beispielsweise, dass ein kleiner Anteil dieser Server (weniger als 1%) beim Start abstürzte, weil die Anzahl der Server eine der unterstützenden Datenbanken überforderte.

Unser Lösungsansatz war es, die abgestürzten Server einfach manuell neu zu starten, wann immer wir das Problem hatten, und dies schien es zu beheben, ohne sich störend auf die Spieler auszuwirken.

Rückblick

Springen wir zum Update von vor zwei Wochen. Das 2.7.1-Update enthielt den zuvor erwähnten Fehler, der Charakterdaten beschädigte und zu unserer allerersten Zurücksetzung von Charakterdaten führte. Wir versuchten, das Problem schnell mit einem Patch an den Servern zu beheben, statt einen vollständigen Build des Spielcodes einzusetzen.

Dazu mussten wir eine Server-Einstellung ändern, um den Spielcode zu überschreiben, der Charakterdaten verarbeitet, und anschließend die Weltenserver neu starten, um diese Veränderung anzunehmen. 
Springen wir zum 11. Februar, als wir das 2.7.1.1-Update zusammen mit dem Start der Scharlach-Woche veröffentlicht haben. Nach der Veröffentlichung stürzten einige der Weltenserver aufgrund der hohen Anzahl an gleichzeitig startenden Servern beim Hochfahren erneut ab. Abermals starteten wir diese Server manuell neu und dachten, dass alles gut wäre. Das war es nicht. 

Ohne unser Wissen führte dieser Absturz dazu, dass diese Weltenserver die vorangegangene Korrektur der Beschädigung der Charakterdaten nicht übernahmen. Das führte dazu, dass ein kleiner Prozentsatz der Weltenserver den alten Code verwendeten und somit auch den Fehler, der die Charakterdaten beschädigte. Wir haben Prüfsysteme, die diese Art von Versionsfehlkonfigurationen entdecken, aber die Weltenserver-Abstürze und die folgenden manuellen Neustarts haben die Server die Prüfprozess überspringen lassen. Bis zu diesem Moment dachten wir, dass es unmöglich sei, diese Überbrückungen und Prüfungen zu überspringen.

Im Rahmen unserer Standardverfahren beim Überprüfen eines neuen Builds lassen wir unsere Test-Teams sich mit einer Reihe von Test-Konten anmelden, um die Spieler-Erfahrung nachzuvollziehen. Da wir hunderte von Servern in unserer Verbraucherumgebung haben, traf (leider) jeder manuelle Test, den wir durchgeführt haben, die „guten“ Server, und alle verfehlten sie den geringen Prozentsatz an Servern, die Probleme hatten. Also haben wir grünes Licht gegeben.

Erneute Probleme

Als das Spiel am 11. Februar nach der Anwendung von 2.7.1.1 wieder online ging, meldeten Spieler den Verlust von Währung. Das Team begann sofort mit der Untersuchung und nahm das Spiel um 19:30 Uhr MEZ offline. In diesem Zeitraum hatten sich hunderttausende von individuellen Spielern im Spiel angemeldet oder über einen Drittanbieter auf ihre Charaktere zugegriffen. Unsere Untersuchung deckte auf, was wir für unmöglich gehalten hatten: eine kleine Anzahl unserer Weltenserver war ohne die richtige Konfiguration geladen worden, die das Problem aus 2.7.1 behoben hatte. Leider war jeder, auf dessen Charaktere über einen dieser veralteten Server zugegriffen worden war, von diesem Problem der Charakterschädigung betroffen.

Sobald wir bestätigt hatten, dass es das gleiche Problem wie am 28. Januar war, und verstanden hatten, wie es dazu gekommen war, entschied das Team, dass es am sinnvollsten wäre, sämtliche Charakterdaten aus der Sicherung wiederherzustellen, die wir direkt vor dem 2.7.1.1-Patch durchgeführt hatten – statt zu versuchen, jedes einzelne betroffene Konto zu identifizieren und dabei zu riskieren, etwas zu übersehen. 

Destiny 2 Server

Vorkehrungen gegen erneute Probleme

Das Team hat eine Reihe von zusätzlichen Sicherheitsvorkehrungen identifiziert, die verhindern sollten, dass dieses spezifische Problem zukünftig erneut auftritt. 

  • 1) Wir haben unserem Prozess für „spontane Reparaturen“ an unseren Servern weitere Sicherheitsvorkehrungen hinzugefügt, die gewährleisten, dass sie nicht mit einer unerwarteten Version starten können. Diese Veränderung ist ab sofort aktiv.
  • 2) Wir haben das Problem behoben, durch das ein kleiner Teil der Weltenserver beim Start abstürzt. Diese Korrektur wird mit Saison 10 eingeführt. 
  • 3) Die dauerhafte Behebung der Charakterschädigung kommt mit dem nächsten Update als ausführbare Veränderung, die den Bedarf der Konfigurationsüberbrückung aufhebt. (Leider war der 2.7.1.1-Hotfix schon zu weit umgesetzt, um davon zu profitieren).
  • 4) In Zukunft suchen wir nach Möglichkeiten, unsere Zurücksetzungs- und Wiederherstellungsmechanismen zu beschleunigen.
  • 5) In einer kommenden Veröffentlichung kümmern wir uns um das Problem, das Server dazu bringt, das Laden von Konfigurationsdaten zu überspringen.
  • 6) Zudem werden wir den Aufräumcode bei der Konto-Anmeldung besser schützen, um zu verhindern, dass sich in Zukunft Fehler in diesen kritischen Bereich einschleichen können.7) Wir aktualisieren unsere Entwicklungsverfahren, um Probleme wie dieses früher im Verlauf der Veröffentlichung zu entdecken. 
Destiny 2 Erneute Probleme

Schlußwort

  • Mit der Zurücksetzung vom 11. Februar befinden sich alle Charakter-Konten in dem Zustand, den sie am 11. Februar um 19:30 Uhr MEZ hatten. Das Team arbeitet zudem fieberhaft an Hotfix 2.7.1.2, der am 13. Februar erscheinen soll. Dieser Hotfix wird außerdem auch eine Lösung für das Problem der endlosen Dämmerklinge enthalten.
  • Uns ist bewusst, wie frustrierend der Ausfall und die Charakter-Zurücksetzung vom 11. Februar für euch alle gewesen sein muss, insbesondere wegen des Starts der Scharlach-Woche, vermutlich mindestens so frustrierend wie es für uns die Tatsache war, dass wir dieses Problem hätten vermeiden können. Wir entschuldigen uns für den dadurch entstandenen Ärger und die Unannehmlichkeiten und werden uns weiterhin bemühen, diese Art von Problemen in Zukunft gar nicht erst auftreten zu lassen. Und nicht vergessen, wenn ihr Probleme mit Destiny habt, könnt ihr uns auf unserer Bungie-Hilfeseite und auf Twitter @BungieHelp kontaktieren. Danke für eure Geduld!

Quelle: Bungie

Erneute Probleme nach Updates oder Hotfixes sind denkbar ungünstig für ein Spiel. Natürlich kann es immer wieder zu unvorhergesehen Problemen führen. Da ist Destiny sicher nicht das einzige Spiel. Umso erfreulicher ist hierbei aber die Tatsache, das Bungie derart offen über diese erneuten Probleme redet und Stellung nimmt.

Was ist eure Meinung dazu? Seid ihr mit der Erklärung zufrieden oder ist euch das Ganze noch nicht transparent genug? Schreibt uns eure Meinungen in die Kommentare oder besucht uns auf Facebook oder Twitter

Was euch noch interessieren könnte:

Weitere Beiträge
Destiny 2 – Hüter kämpfen mit Game2give für kranke Kinder