När jag av misstag sänkte mail-servern på KTH

6 maj 2021

Tags
history email

En berättelse från en "svunnen tid" om vådan av auto-mail handlers

Det jag ska berätta om denna gång hände för 30 år sedan och är glömt och förlåtet. Det var en tid då e-post fortfarande var en relativt ny företeelse och webben (så som vi känner den) inte startat ännu.

KTH / TDS / PPS

Vid denna tid jobbade jag som adjunkt på institutionen TDS vid KTH i Stockholm och undervisade cirka 300 teknologer per termin i konsten att skriva trådbaserade program med hjälp av Concurrent C (en Ada klon i C) respektive Erlang. Kursen hette PPS (Programmering av Parallella System), om nu någon läsare skulle tycka något lät bekant.

Flytten till Elektrum

Våra lokaler var i den äldsta delen av KTH, där man riktigt kunde känna av historiens vingslag. Vårt datorrum hade tidigare använts som studio och kontrollrum för de första experimenten med TV sändningar i Sverige. Det var därför ett måttligt roande besked att vår institution skulle förflyttas ut till nybyggda Elektrum i Kista.

Ett problem som behövde lösas

Detta skapade ett praktiskt problem beträffade kommunikationen med teknologerna. Vad som hade fungerat utmärkt i ~100 års tid att sätta upp meddelanden och listor på anslagstavlan; utmanades nu. Inför utsikten att behöva sätta sig på tunnelbanan från Kista till KTH vid Östra Station för att sätta upp en lista och sen tillbaka igen, så började jag fundera på en lösning.

Perl Auto-Mail Handler

Det gick (redan då) att koppla ett program för behandling av inkommande e-brev. Jag hackade då ihop ett Perl-skript som läste igenom inkommande e-brev till min egen brevlåda, men skickat till ett alias för kursen ifråga. Tanken var att en teknolog skickade ett tomt e-brev till kursens e-postadress och fick tillbaka en instruktionstext som beskrev alla kommandon. Exempel på kommandon, var att registrera sig på kursen med namn och personnummer eller fråga om resultatet på senaste laborationen eller tentan. System fungerade till belåtenhet för både mig och mina elever.

Vacation Auto-Mail Responder

Jag brukade skicka ut information om innehållet på nästa föreläsning och med en uppmaning att läsa på i kurslitteraturen. Så och denna kväll, då händelsen utspelade sig.

En av mina elever hade kopplat på en auto-svarsfunktion med information om att denna var bortrest. Så efter att jag skickat informationen om nästa föreläsning, så kom det tillbaka ett svar om "Hej, jag är på semester...". Mitt Perl-skript tolkade det som en önskan om att få ut menyn med alla kommandon. Varpå det kom ett nytt svar med information om elevens semester.

Så där höll det på ett tag, helt utan min vetskap, eftersom jag redan åkt hem för kvällen. Dvs, skicka meny och respondera, skicka meny och respondera, osv.

Fork UNIX system call

SMTP servern på KTH var Sendmail, som var standard i UNIX-världen. Sendmail-servern var designad, åtminstone på denna tid, att avlasta sig själv vid för hög last genom att skapa en kopia av sig själv (fork). Så, plötsligt var det då två servrar som skickade menyer och fick tillbaka semestersvar. Det dröjde inte länge förrän även dessa två servrar insåg att de behövde hjälp och fork:ade sig själva. Snart hade det blivit 8 instanser, sen 16 st, osv.

Kraschen

Medan detta pågick noterade systemövervakningspersonalen på KTH att e-posthanteringen gradvis blev långsammare och långsammare. Dessa personer var i regel doktorander eller sista-års-studenter, som knäckte extra som systemövervakare. När UNIX operativet hamnar i en omöjlig situation, så gör den en sk kernel panic, vilket innebär att den stoppar allt arbete och väntar på att bli omstartad. Vilket också var det som inträffade denna kväll, cirka kl 11 på kvällen.

Mailbox full

Lyckligt ovetande kom jag till jobbet morgonen efter och fann ett meddelande på mitt skrivbord att jag omgående skulle komma till övervakningscentralen. Där fick jag veta vad som hänt och jag berättade om mitt Perl skript. Vi fick oss alla ett gott skratt och jag återvända till mitt skrivbord, loggade in och såg att jag hade oläst e-post. När jag öppnat MH klienten såg jag att det fanns en sisådär 100.000 olästa e-brev, alla med information om den stackars elevens semesterplaner.

Länkar