カレンダー

2021/05
      
     

広告

Twitter

記事検索

ランダムボタン

100%使い切る

by 唐草 [2023/05/26]



 ずっと問題なく動いていた自作のWebカレンダープログラムが、急に何も表示しなくなった。ぼくのスケジュール帳のように真っ白なカレンダーの枠だけがある。
 調べてみると、スケジュール定義ファイルがおかしい。「 [ 」で始まり「 ] 」で終わるはずなのに終わりの「 ] 」がない。明らかに途中で切れている。
 自作のプログラムが書き出す定義ファイルが尻切れになるのは、指定期間のスケジュール取得に失敗しているせいとも、変換や保存に失敗しているせいとも考えられる。書いたのは自分自身なのでまったく信用できない。
 試しに1日分のデータ取得は正常に動作した。しかし、3ヶ月分をまとめて取得すると尻切れエラーを起こす。どうも容量が多いとエラーになるようだ。
 テストを繰り返すうちに気づいたことがある。
 エラーファイルは必ず8192文字になる。16進数で書くと0x2000になる。
 コンピュータにとってキリの良い数だ。
 ゴーストとでも呼びたい長年の勘が、キリの良さがヤバいと囁いている。意図的に容量や文字数を制限しない限り、切りのいい数字が現れることなんてまず無いからだ。
 ゴーストの囁きに従ってハードディスクの空き容量を確認する。
 そこに現れたのも切りのいい数字だった。

 0

 この数字には、良いニュースと悪いニュースが同時に存在している。
 良いニュースは、問題の原因がぼくのプログラムではなかったこと。やったぜ!
 しかし、そんな良い知らせに喜ぶ余裕もないほどに悪いニュースが大きすぎた。問題の起きているサーバでは、ハードディスクの最後の1セクタまで余すことなく完全に使い切っているのだ。毎回同じサイズになったのは、書き出しファイル自身の8KB(2セクタ)しかハードディスクに空きがなかったから。
 また、やっちまったぜ。
 この手のミスはこれで4度目。ハードディスクって大容量なのでついつい無限に使えると油断しがち。でも、限界は確かに存在する。
 4度目となればもう慣れたもの。慌てることなく消して構わないログとキャッシュを削除。取り急ぎ3.5GBを確保して、慣れたピンチを切り抜けた。