Vielleicht habt ihr mitbekommen, dass Schwalbe sich seit etwa einem Monat nicht besonders mit Ruhm beckleckert: Schwalbe hat längere Zeit überhaupt keine Daten mehr angezeigt, und Kandidaturen zeigte sie zwei Monate lang auch nicht an. Grund dafür ist, dass sich Schwalbe die Datenbank mit anderen Anwendungen teilt. Warum das so ist, und wie ich die Probleme aus der Welt schaffen möchte, beschreibe ich in diesem Artikel.
Was war los?
Vom 7. November 2025 bis zum 6. Januar 2025, ca. 06:00 zeigte die Schwalbe unter https://schwalbe.stura.uni-heidelberg.de/candidacies nur noch eine leere Seite, anstatt den eingegangenen Kandidaturen.
Bis zum 12. Dezember 2025, ca. 16:40 war die Schwalbe zeitweise gar nicht mehr erreichbar.
Warum?
Die Ursache für diese Probleme war größtenteils eine Designsünde: Schwalbe teilt sich seine Datenbank mit anderen Anwendungen. Das war eine pragmatische Entscheidung bei der Einführung von Schwalbe, denn es gibt ja noch einige andere Anwendungen im StuRa, die Wahl-bezogene Informationen verarbeiten:
- Kandidaturformulare (Fachschaftsrat, Fachrat, potenziell weitere)
- Mitgliederliste des StuRa
- (vermutlich noch weitere)
Diese Anwendungen sind in unterschiedlichen Programmiersprachen auf unterschiedlichen Plattformen deployet, und kommunizieren direkt über die Datenbank. Wem jetzt Übles schwant, der hat genau Recht: Für diesen und fast alle historischen Aussetzer von Schwalbe, an die ich mich erinnern kann, sind inkompatible Änderungen der verschiedenen Anwendungen verantwortlich.
Die Kandidaturformulare schreiben aktuell die Kandidaturen in eine Datenbanktabelle, die Schwalbe nicht kennt, daher zeigt Schwalbe nichts an.
Die URL, unter der die Datenbank erreichbar ist, hat sich geändert (ebenfalls nötig geworden durch eine andere Anwendung), ab dann konnte Schwalbe auf gar keine Datenbanktabellen mehr zugreifen (und zeigte nur noch eine Fehlermeldung).
Dass Schwalbe zeitweise gar nicht mehr erreichbar war, lag ausnahmsweise mal nicht an der Datenbank, sondern an einem Ubuntu-Update, das dazu geführt hat, das Docker nicht mehr startete, da es irgendwelche Probleme mit dem Storage-Driver gab (die ich jetzt behelfsmäßig gepatcht habe).
Was ist die Lösung?
Die Lösung ist einfach formuliert, nur etwas aufwändiger umzusetzen: Schwalbe muss alleinige Kontrolle über die Datenbank erhalten. Andere Anwendungen können die Daten natürlich immer noch nutzen und auch ändern, aber nur über eine von Schwalbe zur Verfügung gestellte Schnittstelle.
Ab dann kann es nicht mehr passieren, dass eine Anwendung Schwalbe-inkompatible Änderungen auf der Datenbank macht, denn da würde Schwalbe nicht mitspielen.
Wann passiert das?
In einigen Monaten. Leider ist die Umstellung etwas komplizierter, da nicht nur die Schwalbe danach wieder funktionieren muss (leicht), sondern auch alle anderen Anwendungen, die aktuell die Datenbank nutzen (kompliziert).
Den Fortschritt tracke ich in Issue #285.