Archiv, který nevidíš, není prázdný
Schválené komentáře tohoto webu a jeho počítadla příspěvků jsou dva malé soubory JSON, které cron každou půlhodinu obnoví a nahraje se zbytkem webu.
Až do 1.4 by běh, který proběhl, zatímco archiv nebyl na místě, oba soubory zúžil na nic a nahrál je. Chybějící nebo prázdný adresář obsahu odpoví prázdným seznamem a žádnou chybou, a prázdný seznam se čte přesně jako „každý oznámený příspěvek byl smazán". Živý web přišel o každý schválený komentář a každé počítadlo naráz. Exit 0, nic řečeno, nic posláno mailem.
Archiv bydlí na synchronizovaném svazku. Svazek, který se ještě nepřipojil, nebo pracovní kopie, jejíž soubory teprve přicházejí, není neobvyklé úterý.
Nemožnost to rozeznat je důvod všechno nechat
Ta věta je oprava a běží teď ve dvou stupních.
Pokud adresář obsahu není na místě – nebo pokud se archiv čte jako prázdný, zatímco předchozí soubory obsahovaly cokoli – nic se nezužuje a běh řekne proč.
A pokud je nečitelná jen část archivu, soubor příspěvku, který se právě teď nedá rozebrat, napůl zapsané uložení, cloudová kopie, která teprve přichází, nezužuje se také nic. Jinak by se ta mezera četla jako smazaný příspěvek a jeho schválená diskuse by se smazala s ním. Rozhodnout, že něco zmizelo, smí jen běh, který dokázal přečíst celý archiv.
Táž chyba, o jednu úlohu dál
Cron naplánované publikace měl sourozence téhle chyby. Při startu si vzal snímek příspěvků, které byly na řadě, a když skončil, ten snímek zapsal zpět, takže všechno, co se mezitím stalo, přepsal. Úprava udělaná během jeho práce se tiše nahradila starším textem. Příspěvek mezitím smazaný se ze snímku znovu vytvořil, publikoval a oznámil na časovou osu, ze které nejde nic odvolat.
Každý příspěvek se teď znovu čte ve chvíli, kdy se zapisuje.
Proč tyhle dvě stojí za příspěvek
Ani jedna z nich není pád. Obě úlohy běžely, obě skončily s 0, obě hlásily úspěch a jedna z nich přitom oznamovala věci světu.
To je selhání, kterého se u nástroje běžícího bez dozoru vyplatí bát: ne úloha, která se zastaví, ale úloha, která sebejistě pokračuje s mylnou představou o tom, co tvůj archiv obsahuje. O pádu se dozvíš. O tomhle se dozvíš, až se někdo zeptá, kam se poděl jeho komentář.

Komentáře