|tekstenstek   |wielrennen   |muziek   |indisch   |stukjes   |contact

De opdracht om de tabel semaphore te creëren volgens the geekunleashedRaadpleeg uw systeembeheerder

Mijn beeldscherm ging op wit. Dat was schrikken! Thuis roepen ze mij erbij als ze problemen met de computer hebben. Nu had ik ze zelf. Meestal staat er dan een raadselachtige melding op het beeldscherm, a message from outer space. Met het advies 'raadpleeg uw systeembeheerder'. Die beheerder, dat ben ik dus. Maar nu was er helemaal geen boodschap te lezen. Geen woord, geen letter. Niets.

Vaak zijn het 'gewoon' verbindingsproblemen met internet. Om ze te herstellen is een fluitje van een cent. Soms is Hyves vastgelopen door een of ander gadget op de pagina van een zogenaamde vriend. Dan moet er eventjes een programma opnieuw worden gestart. Dat is een recept dat nog steeds heel goed werkt. Als je tenminste weet om welk programma het gaat. En anders ga je simpelweg de computer opnieuw starten.

Nu was er iets anders aan de hand. Een vervolgpagina op een website – van eigen makelij zeg ik er voor de beeldvorming maar bij – liet zich niet zien. Dat gebeurde ook niet met enkele andere pagina's van dezelfde website. Lekker vaag, toch? Het leek verband te houden met het moment van wijzigen van iets op de website, de content, als ik het me goed voor de geest haal. Een blanco tabblad binnen de browser was iedere keer het resultaat.

Verder bleef alles gewoon werken. Met de optie 'een pagina terug gaan' kwam ik weer uit op het punt voordat het fout ging. Zo kon ik nog netjes uitloggen.

Ik pijnigde mijn hersens. Wat kon er aan de hand zijn? De website was nu alleen nog maar beschikbaar om te kunnen raadplegen. Dat bood in elk geval een houvast bij het speuren naar de oorzaak. In dergelijke gevallen roep je natuurlijk de applicatiebeheerder er bij. Die beheerder ben ik dus ook.

De website is gemaakt met Drupal, een content management system (cms). Onlangs heb ik de 'kernel' geupdate van versie 5.15 naar 5.17. Versie 5.16 had ik dus overgeslagen, die was geheel aan mijn aandacht ontsnapt. Maar dat mag het probleem niet zijn. Zekerheid hierover heb je echter nooit, dus zocht ik op het internet naar gelijksoortige gevallen. Daarbij herinnerde ik mij vaag dat er tijdens de update een paar meldingen voorbij flitsten. Ik snapte ze toen niet. De praktijk wijst vaak uit dat je ondanks zulke gewichtige mededelingen gewoon verder kunt werken.

Ik vond de bewuste foutboodschappen terug in een logfile. Het was voor mij nog steeds abacadabra, maar wel maakte ik er uit op dat er sprake was van een ontbrekende tabel met de naam semaphore. Een ontbrekende tabel? Dat moet wijzen op een fout in de update naar Drupal versie 5.17 (of 5.16).

Fouten in een update-procedure, dat mag natuurlijk niet gebeuren. Die updates zijn er juist om fouten te herstellen. Het is net schulden aflossen met geleend geld. Maar goed. Als een tabel ontbreekt in de database dan moet je de databasebeheerder er bij halen. Mag ik mij even voorstellen?

Met slimme zoektermen ging ik googelen. Vele hits kreeg ik terug. Tussen de eerste antwoorden las ik een reactie van thegeekunleashed op een forum van Drupal. Prachtige namen altijd op zulke fora! Deze thegeekunleashed had bij eerdere updates al problemen gehad. Hij had er een vaste oplossing voor gevonden. Na elke update van Drupal liet hij bij wijze van toetje een SQL-opdracht op de software los. Tot nu toe had dit commando hem niet in de steek gelaten. Ik vond het een uitdaging.

Ik dook onder de motorkap van een website gebaseerd op een cms. Het sql-commando werkte bij mij niet onmiddellijk. Ik moest – heel spannend en niet gehinderd door kennis– op basis van foutmeldingen net zo lang sleutelen tot de meldingen uitbleven. Uiteindelijk bleek de fout van het geleende commando te zitten in het gebruik van de enkele aanhalingstekens rondom de velden name, value en expire. Die horen daar niet!

Voor de wanhopige lieden die met hetzelfde probleem op internet googelen en toevallig op deze pagina uitkomen geef ik hieronder het goede commando.

CREATE TABLE semaphore ( name VARCHAR(255) NOT NULL DEFAULT '', value VARCHAR(255) NOT NULL DEFAULT '', expire DOUBLE NOT NULL, PRIMARY KEY (name), INDEX expire (expire) ) /*!40100 DEFAULT CHARACTER SET UTF8 */

Na het uitvoeren van de onmisbare opdracht update.php in Drupal werkte gelukkig alles weer als vanouds. Ik kon al mijn petten weer afzetten.

[9 juni 2010]

Tekstenstek
tekstbureau voor tekst en webstek