theHacker's Blog
– It's just a glitch in the Matrix –
1

Doppelt hält besser – Phantom-Busse bei der VAG

Auf der Seite start.vag.de kann man mobil bequem die Abfahrten der nächsten Linien an einer bestimmten Haltestelle abrufen. Das gibt Aufschluss, wann der nächste Bus kommt und ob bzw. wie viel Verspätung er hat. Eine schöne Sache.

Mit dem heutigen Artikel zeige ich euch, was passiert, wenn sich Datenmüll einschleicht und welche Auswirkungen er haben kann.

start.vag.de kurz erklärt

Die mobile „VAG start“-Seite der VAG ermöglicht die Ansicht der nächsten Abfahren an einer bestimmten Haltestelle. Man wählt dazu kurz die Haltestelle aus und die Seite zeigt daraufhin die Abfahren der Linien, die diese Haltestelle bedienen. Man sieht die Abfahren in beide Richtungen einer Linie in der Tabelle vereint.

Die Abfahrtszeit ist in Minuten angegeben. Das bedeutet in wie vielen Minuten von jetzt ab, die Linie abfährt. Normalerweise sind diese Angaben Echtzeitangaben, d. h. berücksichtigen eine Verspätung. Unter der Tabelle steht hierfür der Hinweis „Abfahrtsangaben in Klammern sind Abfahrten laut Fahrplan, keine Echtzeitangaben“. In obigem Beispiel sind also alles Echtzeitangaben.

Manchmal fehlen allerdings die Echtzeitangaben, dann erhält man Angaben, die sich nach dem Fahrplan richten. Aus Erfahrung weiß ich, dass bestimmte Linien grundsätzlich keine Echtzeitangaben zur Verfügung stellen. Vermutlich fehlt ihnen die nötige Technik, um ihre Position an die Leitstelle zu übermitteln, damit diese Echtzeitangaben generieren kann.

Doppelte Busse auf start.vag.de

Kommen wir nun zum Bug, den dieser Artikel zeigen will. Neulich rufe ich start.vag.de auf und sehe, dass alle Busse doppelt gelistet sind. Und zwar einmal mit geklammerten Abfahrtszeiten, d. h. Angaben nach Fahrplan und einmal ohne Klammern, d. h. eine Echtzeitangabe. Jeweils einer dieser zwei Busse ist ein Phantom-Bus, also ein Bus, der in Wirklichkeit gar nicht existiert.

Die Abfahrtszeiten der beiden Busse waren jeweils deckungsgleich. Man kann jetzt also spekulieren, was das Problem war:

  • Echtzeitgaben waren nicht verfügbar. Statt einfach nur die Fahrplanangaben ersatzweise zu zeigen, wurden zusätzlich die Fahrplanangaben als Echtzeitangaben angezeigt.
  • Fahrplanangaben wurden irrtümlich verwendet, obwohl Echtzeitangaben verfügbar waren.

Ich persönlich würde eher auf Ersteres tippen. Es ist sehr unwahrscheinlich, dass die Busse alle pünktlich auf die Minute gefahren sind. Das Problem hielt wohl den ganzen Tag an, ich konnte es morgens und abends beobachten. Wären Echtzeitangaben verfügbar gewesen, hätte ich irgendwann mal eine Abweichung der Echtzeit- von den Fahrplanangaben beobachten können. War aber nicht der Fall, also werden wohl keine Echtzeitangaben da gewesen sein.

Interessanterweise hat das Problem nur die Busse betroffen. Im Screenshot oben sieht man eine U-Bahn, die ganz normal nur einfach gelistet ist.

Weitere Auswirkungen

Mit diesem Artikel möchte ich vermitteln, welche Auswirkungen ein falscher Datenstand haben kann.

Wir haben bisher gesehen, dass eben auf der „VAG start“-Webseite falsche Informationen angezeigt werden. Die VAG verwendet diese Abfahrts-Informationen aber nicht nur für die „VAG start“-Webseite, sondern für viel mehr, wie wir gleich sehen werden.

An jenem Tag waren auch die Informationsdisplays in den Bussen, die an Knotenpunkten die Umsteigemöglichkeiten aufzeigen, betroffen. Sie haben die Phantom-Busse als Umsteigemöglichkeit angezeigt. Das Display hat nur eine begrenzte Größe. Es passen nur 6 Umsteigemöglichkeiten drauf. Auf dem Foto unten sehen wir, dass von den 6 Umsteigemöglichkeiten 2 Phantom-Busse sind. Als Fahrgast fehlen mir in diesem Moment also 2 relevante Umsteigemöglichkeiten, die ich normal noch sehen könnte.

Ein weiteres Beispiel sind die Informationsdisplays, die an den Haltestellen direkt montiert sind. Bei ihnen ist noch weniger Platz verfügbar. Wir sehen in den beiden Fotos unten, dass dort nur 2 bzw. 4 Zeilen Platz für Abfahrten sind. Auf dem zweizeiligen Display erhält der Fahrgast in diesem Moment überhaupt keine Informationen. Das Display zeigt an, dass zwei Busse grade abfahren. Einen Bus sieht der Fahrgast, dass er an der Haltestelle steht, der andere Bus ist ein Phantom-Bus. Die Info, wann der nächste Bus fährt (falls er diesen verpasst), hat keinen Platz mehr auf dem Display.

Mögliche Lösung

Wie bei allen Bugs, die uns im alltäglichen Leben so begegnen, können wir auch hier nur spekulieren, was die Ursache ist und was man besser machen kann.

Eine Idee sollte man spontan haben: Mit einem ordentlichen Primärschlüssel auf den Daten wäre das nicht passiert. Ich predige immer, dass das beste Datenmodell das ist, was die Realität abbildet. Jedes (physikalische) Fahrzeug kann es nur einmal geben. Und jedes (physikalische) Fahrzeug kann auch nur genau eine Linie in eine Richtung fahren. An der Endhaltestelle ändert sich die Richtung, vielleicht auch die Linie, aber das Fahrzeug bleibt dasselbe.

Wäre ein Schlüssel genommen worden, der zum Fahrzeug passt, wäre das nicht passiert. Busse haben IIRC teilweise/alle(?) eine Wagennummer vorne stehen. Genau das ist unser Primärschlüssel, den wir hier suchen.

21. Februar 2019

Kommentare zu diesem Artikel

  • Schön beobachtet, wäre interessant zu wissen, was jetzt wirklich das Problem war, kann mir nicht vorstellen, dass da wirklich Daten ohne Primärschlüssel verwendet werden (Anfängerfehler) 😉

Antworte auf den Kommentar von sherpadee
(Antworten abbrechen, d. h. wieder den Beitrag kommentieren.)

Deine eMail-Adresse wird nicht veröffentlicht.