30 nov - 13 dec: de ramp was... NIET over

in
Translation Note: The Dutch version of this content is being displayed because the English translation is unavailable.

30 nov - 6 dec:

(Van dag tot dag had ik korte notities gemaakt voor een 'blog' -- hoewel het er nu al anderhalve maand niet van kwam om een blog-site goed te installeren zoals ik het wilde. Voor deze week heb ik dat niet gedaan.)

Het was niet constant doorwerken omdat iemand bij Panini deels met vakantie was, en ze dus een paar dagen niet testten. Ook omdat ik alle beloofde functionaliteit afgemaakt had.

Ik heb wel gewerkt aan extra functies die we niet beloofd hadden ('views integration'), om Panini te vriend te houden; we hadden duidelijk genoeg gecommuniceerd dat dit buiten de oorspronkelijke functionaliteit lag en dat we dit gratis voor ze deden... om hopelijk wat goodwill terug te krijgen, en het project goed af te sluiten.
In deze week kwamen er nog wel diverse bugreports door, waarvan sommige niet aan ons lagen maar aan de brakke installatie van Panini's server -- die ongeschikt was als testserver, maar die ze weigerden aan te passen. Ik werd het zat en heb ze maar gewoon gezegd dat die dingen niet aan ons lagen.

De volgende maandag zou Panini weer contact opnemen.

Verder was er deze week ook werk aan ILAC nodig, en had Jens een ander klein Drupal-opdrachtje gestrikt dat ons elk 175 Euro zou opleveren. Dat kwam Jens goed uit, want hij was totaal blut. Natuurlijk duurde het programmeren van mijn deel van de opdracht, omdat ik het netjes wilde doen, weer langer dan verwacht. Maar het kwam wel af.

Zondag 7:

doorgewerkt, tot maandagochtend 10 uur. Ik dacht nu dus dat alles af was: alle details, bugfixes èn extra functionaliteit.

Maandag 8 - Woensdag 10:

Precies toen ik naar bed wilde gaan om 10 uur 's ochtends, kreeg ik Marth op Skype, dat Bluebox er weer uitlag, net als een maand eerder. (Alweer precies na publiciteit door SKS.) Dit keer zag ik echt niet wat er aan de hand was; ik kon Bluebox in via de console en alles leek te draaien als een zonnetje, maar toch deed de webserver deed het gewoon niet. Dat had ik nog nooit meegemaakt; misschien was het een zeer grote DDoS aanval, maar ik zat te tollen van de slaap dus kon het niet meer beredeneren. Ik zei dat ik moest slapen en dat ik het later wel zou bekijken. Om 4 uur 's middags was ik weer op en keek ik verder, maar nu kon ik de bak helemaal niet meer in. Het leek dus toch geen DDoS te zijn...?

Pas na meer dan een uur hoorde ik via Marth dat Norbert op de server heeft zitten kloten en hem vast heeft laten lopen -- het was dus wel een DDoS en ik had nu een uur verspild met in de verkeerde richting zoeken. Ik was net te laat (net buiten kantoortijden) met XS4ALL bellen voor hulp bij het resetten van de server, en nu moest er dus tot morgenochtend gewacht worden.

Die dag en dinsdag heel veel Bluebox-gerelateerde communicatie gedaan (want er moet redelijk wat afgepraat worden, als ongeveer 10 websites op de server die je beheert, een dag lang offline zijn). Inmiddels was Jens die hele maandag pleite, en dinsdag weer aan het bijkomen van een enorme kater. Zijn "ik drink niet meer" voornemen had dus iets minder dan 3 weken geduurd. (En dan was een 'pauze' in het weekend van de 29e toen zijn vriendin kwam, nog niet eens meegerekend.)

Maargoed, ik had die maandag en dinsdag dus niet gewerkt. Woensdag ook nauwelijks. Ik kon me toch niet losrukken van het werk dat een reserve Bluebox-admin intussen aan het doen was - namelijk het afslaan van de DDoS aanval. Het bleek een 'syn attack' van een groot botnet op 1 IP adres van Bluebox te zijn. We hebben de websites martijn.org en pnvd.nl verhuisd naar verschillende IP adressen, maar na enkele uren bleken ook die twee nieuwe IPs vol aangevallen te worden. De admin was iets aan het opzetten waarmee we selectief IP-ranges konden blocken... Toen we martijn.org en pnvd.nl hadden geblockt voor 'de hele wereld behalve de Benelux' kon de server het verkeer aan en waren de andere websites dus allemaal weer bereikbaar. (Na enkele dagen tot weken bleek de aanval permanent over en hebben we de IP-blocks allemaal weer weggehaald.)

Er was maandagochtend wel allerlei test-feedback van Panini -- die ik dus had genegeerd omdat ik steeds voorrang gaf aan Bluebox-gerelateerde communicatie.

De meeste waren vragen die ik gewoon moest beantwoorden, en uitleggen hoe dingen werkten. Er was 1 nieuw bugreport: plaatjes werden wel goed geüpload, maar soms niet direct (zonder refresh) op het scherm getoond. Bij mij ging het nooit fout maar als zij het testten blijkbaar wel af en toe. Dat was dus lastig testen. Ik dacht dat het weer aan de bug in SWFUpload lag en dat het wel over zou zijn als SWFUpload voor Flash 10 binnenkort 'niet meer beta' zou zijn. Ik heb hem (mede door alle Bluebox gedoe) pas woensdagavond terug-geantwoord hierover, en geschreven dat ik wat debug-code zou invoegen om voorlopig om het probleem heen te werken. Helaas zou dat niet alleen in onze module moeten, maar ook in de 'imagefield.module'.

Nouja.. zei ik woensdagavond? Eigenlijk was het donderdagochtend half 10 toen ik dit schreef. En toen ging ik slapen.

...donderdag 11?

Net naspeuren en patchen van code in de imagefield module duurde natuurlijk wel even. Ik heb expres wat 'debug code' in die module laten zitten die om het (niet perfect test-bare) probleem heen zou werken als het bij hun toch weer zou optreden. Daarmee zou hopelijk het probleem uit de wereld zijn. Dit heb ik vrijdagochtend om 7 uur aan Panini gemaild. Daarna heb ik hun andere mailtjes van maandagochtend beantwoord, en ben weer om half 10 gaan slapen.

Met in mijn hoofd het prettige gevoel dat ik zelfs die tweede klote-bug-die-alleen-bij-hun-voorkwam had opgelost, en dat we nu echt veilig waren.

...vrijdag 12!?

Ik kwam om ongeveer half 3 uit bed en ging rustig douchen. Alleen dacht ik dat het donderdag was... en was het vrijdag, had Panini met Jens gemaild dat er nog steeds problemen waren en had hij gezegd dat hij om 3 uur a half 4 zou terugbellen! Ik was in mijn hoofd volledig een dag kwijtgeraakt.

De workaround voor mijn 'display bug' bleek bij hun totaal niet te werken, en had de boel zelfs erger gemaakt. Ondanks dat alles functioneel af was en er met de upload zelf geen problemen was, zat er dus juist een (nauwelijks traceerbare) bug in de scherm-updates van de webbrowser, waardoor het leek alsof bijna niets meer werkte. Leg dat maar eens uit. Ik had geen weerwoord, ik was totaal verslagen dat de boel nog steeds niet werkte en ik wist niet wat ik er nu aan kon doen.

Er werd nu heel serieus met een rechtszaak gedreigd, maar uiteindelijk kregen we tot maandagochtend uitstel om dit ene item te repareren.

Het enige wat we konden doen was Mark bellen. Die zou zaterdagochtend weer bij ons thuis langs komen om het probleem te bekijken, en ons hopelijk voor de tweede keer uit deze situatie te redden. Ik heb verder weinig gedaan, alleen een beetje mail (met Panini over de bugs) uitgewisseld; ben vroeg naar bed gegaan.

Zaterdag 13

Weer wat e-mail gedaan. Mark heeft ons inderdaad gered. Hij had na onze uitleg al een redelijk idee wat er moest gebeuren. Zijn eerste poging om de boel te repareren was direct raak: het bleek een bug in Drupal Core 'session handling' bij parallelle uploads, die dus alleen opgelost kon worden door session.inc te patchen. Mark vreesde dat de boel daarmee misschien traag zou worden, maar dat bleek niet het geval.

We hebben Mark weer uitgebreid bedankt. Hij leek het allemaal geen probleem te vinden.

Deze fout was vrijdag een hele lelijke hobbel geweest, maar het was (nu eindelijk echt?) wel de laatste geweest. Het project was over. Ik zou alleen nog documentatie voor 3 modules moeten schrijven en opleveren.