Samstag, 28. September 2019

Skript-Probleme durch die Server-Updates in dieser Woche

Am Dienstag habe ich wie üblich, über die SL Server-Updates für die Woche vom 23.09.2019 gebloggt. Nachdem Caleb Linden danach noch zwei Mal den Blogpost geändert hat, wurden am Donnerstag erste Kommentare über verschiedene Probleme auf den Regionen gemeldet.

Inzwischen hat sich auch Oz Linden im Deploy Thread gemeldet und auf eine lange Erklärung im SL Grid Status verwiesen.

Die zurückgemeldeten Probleme betreffen sowohl das Rezzen von Objekten als auch verschiedene Skriptfunktionen in Objekten, die per Skript andere Objekte rezzen. Hier nur eine kleine Auswahl der gemeldeten Fehler aus der JIRA:

NeoBokrug Elytis, Owner der Wastelands Regionen, fordert von Oz Linden ein Rollback des Server-Updates für den SL-Hauptkanal auf die alte Version, da eben die Anzahl der Probleme relativ hoch ist.

Im Grid Status wurde nun die folgende Erklärung von Linden Lab gegeben:
Geskriptete Objekte - Störungsbericht für Second Life

Wir glauben, dass wir die Ursache für die Skript-Probleme identifiziert haben, die diese Woche auf den Hauptkanal ausgerollt wurden (und somit jetzt im gesamten Grid vorhanden sind). Diese Simulator-Version hatte Verbesserungen für die Skriptlaufzeit, die den Overhead reduzierten und es erlaubten, mehr Skripte pro Frame auszuführen. Leider scheint es, dass diese Änderungen auch ein bisher unerkanntes Problem verschlimmert haben, bei dem Skripte mit anderen Skripten kommunizieren.

Das offensichtlichste Beispiel für das Problem betrifft das Timing für das Ereignis "object_rez", das an ein Skript geliefert wird, welches die Erstellung eines neuen Objekts angefordert hat. Wenn ein Skript ein neues Objekt erstellt, erhält das Skript, das die Erstellung anfordert, ein object_rez Ereignis, um anzuzeigen, dass das neue Objekt bereit ist. Normalerweise sollten die Skripte im neuen Objekt ausgeführt werden, bevor das übergeordnete Skript das Ereignis object_rez erhält. Ebenso erhalten Skripte ein on_rez Ereignis, wenn das Objekt, in dem sie sich befinden, gerezzt wird. Die Reihenfolge, in der diese on_rez Ereignisse auftreten, ist nicht definiert. Aber bisher haben alle Skripte im Objekt diese Ereignisse ungefähr zur gleichen Zeit erhalten. Wir haben nun entdeckt, dass in seltenen Fällen die Ereignisse on_rez und object_rez geliefert werden, bevor alle Skripte im neuen Objekt gestartet wurden. In diesem Fall würde jede Kommunikation zwischen den Skripten nicht wie erwartet funktionieren.

Diese nicht funktionierende Ereignislieferung war bisher so selten, dass sie uns nie aufgefallen war, aber die Änderungen an der Skriptlaufzeit hatten den Nebeneffekt, dass es wahrscheinlicher wurde, dass einige Skripte die Rez-Ereignisse schneller erhalten würden, was die Wahrscheinlichkeit erhöhte, dass die Ereignisse geliefert werden, bevor die anderen Skripte, mit denen sie kommunizieren wollen, fertig sind.

Wir arbeiten jetzt an einem Fix. Wir hoffen, dass der Fix für das Wochenende auf einer Reihe von Testregionen im Beta-Grid (Aditi) installiert wird, so dass die Ersteller das testen können (beobachtet diese Grid Status Meldung). Die Rolling Restarts für die nächste Woche werden den Hauptkanal auf eine Version vor den Laufzeitänderungen zurücksetzen und die RC-Kanäle erhalten eine Version mit einer verbesserten Zeitplanung, die jedoch so modifiziert ist, dass die rez-Ereignisse nie an ein Skript geliefert werden, bevor alle Skripte im gerezzten Objekt gestartet wurden.

Wir wissen, dass dieser Fehler viele von euch und euren Freuden in Second Life betroffen hat und wir bedauern zutiefst, dass wir ihn nicht gefunden haben, bevor er so weit verbreitet wurde.

Quelle: [Grid Status] - Scripted Objects - Incident Report for Second Life

Die Erklärung ist ziemlich technisch. Wer sich jedoch selbst mit Skripten beschäftigt, wird den Text sicher verstehen. Auf einen einfachen Nenner heruntergebrochen bedeutet das Ganze, dass es bis zum kommenden Dienstag jederzeit zu Störungen mit geskripteten Objekten kommen kann. Am Dienstag wird dann wieder der alte Code von vor der Störung auf die Regionen zurückgespielt.

Update 28.09.2019:
Linden Lab hat sich kurzfristig wieder anders entschieden. Es wird nun schon am Samstag, den 28. September von 7:00 Uhr bis 19:00 Uhr MESZ Rolling Restarts für das gesamte Grid geben. Vermutlich wird dabei bereits alles auf den Stand von vor einer Woche zurückgesetzt. Scheinbar wollte Linden Lab nicht riskieren, schon wieder ein Shitstorm Wochenende zu verursachen.

Quelle: [Grid Status] - Rolling Restarts for Second Life Main and RC Channels

Siehe auch:

2 Kommentare:

  1. Kp was die da machen aber seit über einer woche lagt meine sim ohne das großartig was verändert wurde

    AntwortenLöschen
    Antworten
    1. Das könnte mit dem Problem hier oben zusammenhängen, denn allein die vielen Rolling Restarts verursachen schon im gesamten Grid etwas Lag.

      Löschen