Kategorien
Microblog

Gnah! Erst verschlafen, dann beeilt, jetzt vom Tie…

Gnah! Erst verschlafen, dann beeilt, jetzt vom Tiefgaragentor gefangen. #

Eine Antwort auf „Gnah! Erst verschlafen, dann beeilt, jetzt vom Tie…“

dentaku sagt:

Eine Ausführliche Version der Geschehnisse habe ich im Techniktagebuch aufgeschrieben:

Zum zweiten mal in den sieben Jahren, in denen ich den Tiefgaragenplatz gemietet habe, hält mich der Garagentormechanismus gefangen.

Die Garage ist — obwohl zumindest tagsüber öffentlich zugänglich — zusätzlich zu den Schranken mit Rolltoren (oder eher: Rollgittern) gesichert. Um herein oder herauszufahren muss ich eine RFID-Karte vor einen Kartenleser halten. Die Schranke fährt hoch und das Rolltor geht gegebenenfalls auch auf. Nachdem das Auto durchgefahren ist, schließt sich die Schranke sofort und das Rolltor etwa zwei Minuten später. Der ganze Ablauf wird — wie am 3270-Terminal in der meistens unbesetzten Hausmeisterloge zu erkennen ist — von einem Großrechner gesteuert. Der steht bei der Betreibergesellschaft und steuert noch einige weitere Tiefgaragen.

Der Fehler passiert auf genau die gleiche weise wie beim ersten mal: ich komme an der Ausfahrt an, kurz nachdem ein anderes auto das Tor passiert hat. Die Schranke ist unten, das Rolltor ist oben. Ich halte meine Karte vor den Leser, sie wird überprüft, und die Anzeige schreibt “Gute Fahrt”. Die Schranke öffnet sich, und im gleichen Moment fährt das Rolltor herunter. Das System wartet jetzt darauf, dass das Auto durch die Schranke fährt — was nie passiert, weil es dazu nun das Rolltor durchbrechen müsste. Das System ist blockiert.

Als Softwareentwickler stelle ich mir die Ursache ungefähr so vor (Achtung! Spekulation!): immer wenn das Rolltor oben ankommt, wird ein Zähler gestartet. Nach Ablauf des Zählers fährt das Rolltor wieder herunter. Wenn die Schranke hingegen oben ankommt, dann wird der Rolltorzähler auf 0 zurückgesetzt. Das klappt fast immer, nur dann nicht, wenn der Rolltorzähler genau während des Öffnens der Schranke abläuft.

Eine klassische Race Condition, aber ich weiß nicht, wie gut die Unterstützung für nebenläufige Programmierung auf Großrechnern so ist. Ein paar Semaphoren hätten hier jedenfalls ganz gut getan.

Der Telefonnotdienst befreit mich schließlich durch direkten Computereingriff in die Steuerung.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert