これもエンジニアの仕事

※  以下これまた日頃「イヤな仕事にも笑顔で応え」な苦労をされているエンジニア以外には面白くもなんともないであろう「ただのグチ」なのでお許しを。

あるサイトで500(Internal Server Error)が出ているので調べて欲しい、との依頼。Apache+PHPではよくある話で、発生箇所はすぐにわかった。システムで自動生成される.phpの中にあるXMLタグの書式がダメで、PHPのパーサがエラーで落ちているのだ。

が、そのシステムは「既にいないどこかの誰か」が何年も前に作ったもの。対策を講じようとソースを眺めてもサッパリわからないし、そもそもこういうのに安直に手を入れたら別の問題を引き起こしかねない。

そこで現場と相談の末、苦肉の策として

  1.  .phpが生成もしくは更新されるのを監視する
  2.  それを検知したらsedで.phpから問題のタグを削除する
  3.  1に戻る

という処理をバックグラウンドで動かす事にした。これなら利用者には影響ゼロだし、負荷も軽い(だろう)し。監視にはLinuxのinotify-waitを使う事にした。

だがこんなの、典型的な対症療法(=ボロ隠し)である。ファイルの監視もsedもかつてはもっと有益なところで使ったもんだが、それをこのような非生産的、かつ屈辱的な局面で使う事になろうとは orz …

まあそれもどうにか目論見どおりに機能している様だし、これは一過性のものと、あまり深く考えない事にした。今はその「既にいないどこかの誰か」が何年も前に作ったやつをそっくり捨てるという、次の展開に期待するのみである。