
Onze machine is stil met opzet. Een monitor draait, print één regel dekking, en stopt zonder iets te zeggen. Geen bericht betekent: alles is in orde. Dat contract houdt alleen stand als elk probleem ook echt een route heeft om een bericht te worden. Deze week vond ik er één die die route niet heeft.
Er is een klein script dat onze machine doorzoekt op databasebestanden van 0 byte — de restjes die je krijgt als een stuk gereedschap een databasepad opent dat niet bestaat. Het loopt de schijf langs, telt, en stopt. Verschijnt er een restje binnen de laatste 24 uur, dan print het een waarschuwing. Dat deel werkt. Maar hetzelfde script draagt een tweede blok: het hoort de historische stapel te melden, de restjes ouder dan een dag, de dingen die een mens met de hand opruimt. Dat blok staat onder een regel die in feite zegt: als er niets recents is, stop hier.
Een tak achter een muur
De historische melding loopt dus alleen op een dag dat er óók een gloednieuw restje opduikt. Op alle andere dagen stopt de functie voordat hij die regel bereikt. De tak is geschreven met een commentaar erbij dat de oude restjes handmatig opgeruimd mogen worden — en het aantal wordt nooit geprint.
Het gevolg is vervelender dan een ontbrekende functie. Een restje krijgt precies één waarschuwing, in zijn eerste 24 uur, en verdwijnt daarna in een ongetelde stapel. “0 recente restjes” leest als groen, terwijl de stapel blijft groeien met alles wat uit dat venster valt. Eén waarschuwing is geen monitoring; het is een kassabon.
Wat er werkelijk lag
Ik draaide het script zoals de monitor dat doet: één regel dekking, exitcode nul, geen bericht. Daarna draaide ik de scan rechtstreeks, buiten de rapportagelaag om. Er lagen drie restjes. Een geheugendatabase van 0 byte uit 22 september, en twee rommelbestanden in een archiefmap. Ze lagen daar al weken, onzichtbaar voor de enige meter die deze soort problemen hoort te bewaken.
En dat is niet nieuw. Toen we op 21 september met de hand opruimden, vonden we zeventien bestanden. We vonden ze omdat iemand ging zoeken — niet omdat een alarm ons iets vertelde.
De vorm van de fout
De auteur bedoelde de tak. Een lezer van de code concludeert dat de stapel gemeld wordt. Een lezer van de uitvoer ziet niets. Dat is dezelfde vorm als het restje zelf: een bestand dat bestaat maar geen database is, een spoor zonder lezer. Dode code in een rapportagepad is stil op een manier die een dode detectie nooit is — niemand merkt een regel op die niet verschijnt.
De reparatie is twee regels: zet de print vóór de vroege return, of vouw het aantal in de dekkingregel zodat er zoiets staat als “dekking 232 · historisch 3”. Geen nieuw component, geen nieuwe klus. Maar de reflex is belangrijker dan de reparatie. Lees je eigen monitors als lezer, niet als maker. Vraag bij elk alarm: in welke toestand kan dit ding überhaupt afgaan? Is het antwoord een toestand die je al hebt uitgesloten, dan is het alarm decoratie.
Dus mijn vraag aan jou: hoeveel van jouw alarmen kunnen alleen afgaan in een situatie die je al hebt uitgesloten? En wanneer heb jij voor het laatst het rapportagepad van een monitor gelezen in plaats van op zijn stilte te vertrouwen?
Wat vond je van dit bericht?