Infos zum Serverproblem vom 29. Januar

  • Zwischen 11:22 und 11:44 gab es einen Stromausfall im Rechenzentrum Nürnberg wo unser Server steht. Aufgrund dessen stürzte der Server ab und dabei wurden diverse Datenbanken des Spiels beschädigt. Um 15 Uhr wurde ein Backup der Runde 2 von 10:17 Uhr eingespielt, und um 17 Uhr ein Backup der Runde 4 von 10:33 Uhr.

    Alle Aktionen welche ihr NACH HALB ELF heute morgen gemacht habt, sind dadurch verloren gegangen, es sollten aber wieder alle Schiffe etc vorhanden sein wie heute morgen. Kämpfe die um halb elf bereits geplant waren, d.h. die Flotten waren bereits in der Luft, wurden nachträglich berechnet. Bei einigen Spielern soll es zu Flottenverlusten ohne Kampf gekommen sein, wir hoffen das wir dies durch das Backup in Grenzen halten konnten.

    Es werden (ausser in groben Fällen und wenn dies klar Beweisbar ist) KEINE Flotten zurückerstattet!

    Solltet ihr aber sonst ein technisches Problem mit eurem Account haben (zu viele Planeten, fehlende Updates etc), dann schreibt mir eine E-Mail an mail@etoa.ch mit eurem ACCOUNT-NAMEN, dem RUNDENNAMEN und einer GENAUEN Beschreibung des Problems. Ich werde mich dann heute Abend diesen Sachen annehmen.

    Diskussion hier: Infos zum Serverproblem vom 29. Januar: Diskussion

  • Hier ein kleiner Rückblick auf die Probleme mit dem Server am 29. Januar 2009:

    Synopsis

    Am 29. Januar gab ab zwischen Mittag und Abend massive Probleme mit dem Gameserver; diverse Spieler verloren ihre Flotten welche in diesem Zeitraum landen sollten.

    Was geschah genau?

    Um 11:20 Uhr gab es im Rechenzentrum unseres Hosters Hetzner in Nürnberg einen Stromausfall aufgrund eines Fehlers bei Wartungsarbeiten am Stromnetz (Murphy). 12'000 Server stürzten ab, darunter auch unser Gameserver. Ca eine Stunde später konnte der Server wieder hochgefahren werden. Durch den plötzlichen Stromverlust gabe es grössere Schäden an den Datenbanken von Runde 2 und Runde 4, da diverse Tabellendateien noch offen waren.

    Das Spiel lief zwar wieder, jedoch gab es haufenweise Fehlermeldungen, da auf diverse Tabellen wie z.B. die Schiffliste, nicht zugegriffen werden konnte. Deshalb konnte der Eventhandler welcher alle Flotten und Bauten aktualisiert viele Sachen nicht korrekt speichern. Um 15 Uhr konnte ich die Tabellen dann reparieren. Da sich jedoch die Meldungen häuften, dass Schiffe und Aufträge verlorengegangen waren, entschloss ich mich, um 17 Uhr ein Backup von 10 Uhr morgens einzuspielen, welches die Probleme beheben sollte.

    Wieso gingen trotzdem Flotten verloren?

    Seltsamerweise hatten nach dem Restore viele andere Spieler ihre Flotten nicht mehr, ich konnte mir aber nicht erklären wieso. Ich begann darum mit der Wiederherstellung der Schiffe und Resourcen "von Hand" gemäss Anfragen welche per Mail kamen. Es dauerte einige Zeit bis ich realisierte weshalb trotz Backup so viele Schiffe verlorengeganden waren.

    Beim Einspielen des Backups kam es zu einer sog. Race Condition; einem ungewollten Zugriff von mehreren Prozessen auf eine Resource. Da die Datenbank inzwischen recht gross ist (so um die 500MB) dauerte es einige Minuten bis alle Daten ins Spiel kopiert waren. Während dieser Zeit lief aber der Eventhandler trotzdem weiter, da ich nicht daran dache diesen Abzuschalten und wir auch noch keinen einfachen Mechanismus hatten diesen global zu stoppen. Während dem Backup wurden zuerst die Flotten kopiert, danach kamen viele grössere Sachen wie zb Logs und Nachrichten und gegen Schluss die Schiffe (das geschieht alphabetisch). Nachdem die Flotten kopiert waren sprang aber zufällig der Eventhandler an, der alle Kämpfe und Landungen berechnete und dies in die Schifftabelle schrieb; diese wurde aber einige Sekunden später von den Schiffen aus dem Backup überschrieben => Daraus folge, dass alle Flotten welche zwischen 10 und 17 Urh landeten, ins Nirwana verschwanden.

    Ich realisierte dies zu spät und bis ich eine Lösung für das Problem entwickelt haben würde wäre schon wieder zuviel im Uni passiet und ein erneues Einspielen eines Backups hätte wohl auch teilweise zu Protesten geführt. Lieder habe ich es etwas verpasst, die Kampfsperre einzuschalten; da muss ich beim nächsten solchen Fall sicher besser reagieren.

    Wie sieht es nun aktuell aus

    Inzwischen habe ich alle Anfragen von Spielern beantwortet und entsprechend Flotten wiederhergestellt. Ich ging auch selbst noch mal das Backup der Flotten durch und habe verliebene grössere Flotten wiederhergestellt. Eine Kampfsperre ist noch bis Montag morgen aktiv, danach sollte alles wieder normal laufen.

    Was macht ihr, damit so ein Problem nicht mehr vorkommt?

    Probleme im Serverraum kann es immer wieder geben. Ich habe aber bereits den Eventhandler und die Backup- und Restore-Skripte angepasst, so dass keine gleichzeitigen Aktionen mehr stattfinden können; von dem her sollte es keine Überschreibungen mehr geben. Ebenfalls habe ich das Admin-Tool an einigen Stellen verbessert, so dass Flottenwiederherstellungen viel schneller gehen sollten. Auch bin ich gerade dran ein Tool zu programmieren mit welchem man in allen Runden gleichzeitig zb eine Kampfsprerre oder Updates ein- und ausschalten kann.

    Ich plane noch, ein Überprüfungsmechanismus einzubauen, der im Fall eines Serverneustarts zuerst die Tabellen prüft und Fehler behebt (momentan läuft dies autmatisch jede nach durch, aber nicht bei einem Neustart). Ebenfalls wird es im Backupsystem noch eine Erweiterung geben, ein zweites Backup welches viel kleiner ist nur nur Spieler, Schiffe, Gebäude etc ohne Logs und Nachrichten beinhaltet.

    Sobald diese Tools fertig sind werde ich das auch noch mit den Admins anschauen, so dass diese im Notfall schnell reagieren können falls ich mal nicht da bin.

    Ich entschuldige mich nochmals für die Störungen und wünsche euch weiterhin viel Spass und Erfolg in der Galaxie Andromeda!

  • Lieber Mrcage!

    Stellvertretend für die gesamte Community, deren Leitung mir obliegt, möchte ich mich bei dir für deinen Einsatz sehr herzlich bedanken.

    Dass du dich abends hinsetzt, die Probleme der User löst, und das Ganze noch wenn man am Tage danach 3h Prüfungen schreiben muss verdient höchsten Respekt.

    Auch deine Geduld den Forderungen der Community gegenüber und der selbstlose Einsatz deiner Freizeit verdient Anerkennung.

    Hervorheben möchte ich auch die Angriffsperre, damit niemand weiter zu Schaden kommt.

    Bleibt noch dieser Post, in dem DU dich für etwas entschuldigst, was noch nicht einmal deine Schuld war. Find ich echt gut.
    Denn du hast all das getan, obwohl in den Regeln steht das es keinerlei Anspruch auf irgendetwas gibt.

    Vielen Dank,

    Raffsack

    ..........................................

    "Liebe" Community.

    Da ja offensichtlich keiner in der Lage ist, sich bei cage zu bedanken, ---immerhin ist der Post hier schon 36h alt---- hab ich mich entschlosen dass zu tun. Obwohl mir gar nix verloren ging........

    Diese Aktion ist ein Spiegelbild dafür, wo EtoA, bzw die meisten Spieler hier stehen. Nur den eigene Vorteil bedenken, andere sind mir scheissegal, und bloss nicht mal weiter als von 12 bis Mittag denken.
    Ansprüche stellen bis zum Abwinken, aber nicht in der Lage sein, mal ein wenig Großmut zu zeigen.

    Passt alles. Ich bin langsam nicht mehr stolz darauf, der Mittler zwischen Community und Entwicklern zu sein, wenn ich mich bedanken muss weil kein anderer auf den Gedanken kommt.

    Ich schrieb in meinem 1. Post "Macht euch Gedanken" Langsam keimt in mir die Frage auf, ob das Gedanken-Machen an sich nicht schon zuviel verlangt ist.

    Gibt es den Begriff schämen eigentlich noch ?

    Ich bin dein Gott in dieser Welt. Ein Klick von mir und du bist Geschichte........
    raffsack7ap.gif
    "Manchmal sieht man den Post vor lauter Buchstaben nicht" © by raffsack@yahoo.de

  • Raffsack, woher willst du denn wissen das sich andere nicht via msn / email bedankt haben? Ich jedenfalls habe das, dann brauch ich nicht hiernochmal alles groß anprangern. Ich jedenfalls bin Cage sehr dankbar und das habe ich ihm auch geschrieben, mich als "keiner" anzuprangern ist dann aj wohl die härte zumal:

    Zitat

    Leute entspannt euch, das was Cage da macht ist nicht gerade einfach, ihr werdet eure Fleet alle wiederbekommen sofern beweise vorhanden sind und das müssen sie sein weil sonst würde sie nicht verschwinden Das was Cage da macht ist nicht mal eben so gemacht und wenn er sagt ca 10 mins pro user * 15 = 150 minuten das sind mal locker 2 1/2 std das würde bedeuten das er bis mitten in die nacht damit beschäftgigt ist die fleet wiederherzustellen. Also ruhig Blut

    von mir Stammt, zudem hab ich mich während deas ganze passiert ist mich eher um die wiederherstellung anderer Spieler gekümmert als um meine eigene, da es sonst evt zu spät geworden wäre ( Mit den Beweisen usw)

    Anyway du bist auf jedenfall nicht der einzige der sich bei Mr. Cage bedankt hat und auch mir ist nichts kaputt gegangen ;)

  • Um das Thema jetzt abzuschliessen, --was ja auch sicher im Sinne von mrcage ist--....
    Du hast natürlich recht, es haben sich bestimmt einige bedankt, egal auf welchem Wege. Und ja ich habe auch gelesen, dass du dich eingesetzt hast für andere.

    Ich gehe allerdings auch davon aus, dass sich die betreffende Personen dann nicht angesprochen fühlen, im Sinne eines "reinen Gewissens".

    Und da ich naturgemäss nicht wissen kann, wer sich bedankt hat und wer nicht, spreche ich die Allgemeinheit an.

    Und wem wäre jetzt wirklich ein Zacken aus der Krone gebrochen, wenn er hier drin geschrieben hätte, "Danke Cage". ;)

    Sollte ich als jemanden zu Unrecht des Undankes beschuldigt haben entschuldige ich mich jetzt öffentlich bei ihm dafür.
    Beim Rest natürlich nicht.

    Raffsack

    PS: MrCages Post wurde von mir mit seinem Einverständnis gelöscht und durch diesen hier ersetzt. (Nicht das es heisst der Raffsack macht hier was er will.)

    Ich bin dein Gott in dieser Welt. Ein Klick von mir und du bist Geschichte........
    raffsack7ap.gif
    "Manchmal sieht man den Post vor lauter Buchstaben nicht" © by raffsack@yahoo.de

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!