| | |
|
|
|
|
Pseudo-Endlosschleifen und Kommentare |
|
|
|
Bei den diesjährigen Änderungen am SC:Banner bzw. SC:HAPPYTEC System kam es zu großen Umbauten im Programmcode. Der Grund dafür war unter anderem - aber nicht ausschließlich, dass Greentube die offizielle Ski-Challenge Website komplett auf den Kopf gestellt hat. Der große Vorteil daran ist, dass nun endlich schönes XML abgerufen werden kann und man den DOM-Parser und die diversen regulären Ausdrücke für die Verarbeitung der alten HTML-Seiten endlich mit Freude in die Tonne treten kann. Da sich daraus aber auch gleich viele neue Möglichkeiten ergeben, wurde nicht nur das Abrufsystem komplett neu programmiert. Große Teile wurden umstrukturiert und angepasst, da die Codebasis bereits mehr als fünf Jahre alt ist und an vielen Stellen nicht gerade zum Weiterentwickeln einlud.
Hunderte Zeilen alter Code wurden deshalb auskommentiert, entfernt oder angepasst. So leider auch ein sehr wichtiger Teil, der überprüft, ob die Daten erneut aktualisiert werden müssen. In der Testphase fällt so ein Fehler kaum auf, da hier beim Debug-Modus logischerweise die Daten immer neu geladen wurden, um Fehler im gesamten Ablauf einfacher finden zu können und neue Erweiterungen sofort ohne Zwischenspeicher zu testen. Selbst in den ersten Stunden des Regelbetriebs fiel diese Problematik nicht auf. Erst dann, als es ruhiger in der Warteschleife wurde und nur noch 1-2 Spieler zur Aktualisierung anstanden. Jetzt protokollierte das System unübersehbar immer die gleichen Aufrufe, die aber jedes Mal sogar erfolgreich waren...
Code: [20:35:30] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950
[20:35:31] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950
[20:35:32] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950
[20:35:33] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950
[20:35:34] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950
[20:35:35] [BACKEND] Loaded: http://www.ski-challenge.com:80/gm-proxy.php?service=1&function=GetPlayerProfileByNick&nick=spartacus&gameId=950 |
Das ging etwa eine halbe Stunde so, bis ich einen prüfenden Blick auf mein Kontrollterminal warf.
In den ersten Stunden/Tagen nach dem Launch läuft z.B. das Log permanent über den Bildschirm.
Gut, zuerst einmal ein kleiner Schock und sofortige Deaktivierung des auslösenden Dienstes. Denn das kommt einer Endlosschleife gleich und ist wohl die Katastrophe schlecht hin bei einem Daemon, der externe Daten abfragt. Endlosschleife war es dann zwar keine, zumindestens nicht im eigentlichen Sinne. Eine weitere halbe Stunde später war der Bug behoben und das System lief wieder normal weiter.
Die Ernüchterung ist aber die Ursache für diesen Fehler. Ich hatte zu viel vom alten Programmcode auskommentiert. Genau den Teil, der eine Überprüfung durchführt, ob die Daten erneut geladen werden müssen. Dabei war er unmissverständlich gekennzeichnet:
Code: // Prüfen, ob die Daten überhaupt schon aktualisiert werden müssen. |
Was lernt man daraus? Dem System eine zweite Schutzbarriere an anderer Stelle einbauen, die solche Überflutungen verhindert, und noch deutlichere Kommentare
Code: // !!! __NICHT__ ENTFERNEN/ÄNDERN/WASAUCHIMMER !!!
// LASS DIE FINGER VOM NACHFOLGENDEN CODE DU N00B! |
Das Ende vom Lied: Der Bug wurde "Spartacus-Bug" getauft und als #1640 im Bugtracker archiviert
|
|
Kommentare: 0 |
Kommentare sind deaktiviert |
|
Autor |
Nachricht |
Für diesen Beitrag können zur Zeit keine neuen Kommentare verfasst werden. Kontaktiere den Autor des Beitrages, falls du Fragen dazu hast. |
Verwendete Zeitzone: CET (Europe/Berlin ) Aktuelles Datum & Uhrzeit: 22.01.2025, 10:14 |
Nach oben |
|
|
|
|
|
|
| | |