SquidでTCP_MISS_ABORTED

2月5日のエントリで現象を発見して、どうやらSquid3.2が悪いらしいってことでSquid3.1.23へダウングレードした件。
解決したかと思っていたら全然現象が解決できていませんでした。

TCP_MISS_ABORTEDというログはSquid3.2から追加されたもので、Squid3.1では単なるTCP_MISSというログ出力。
TCP_MISS/000で、ビヘイビアとしてはTCP_MISS_ABORTED/000と同じ。
こんなログです。

1360141065.933   8008 172.16.25.57 TCP_MISS/000 0 GET http://localhost:3128/hoge/fuga - FIRST_UP_PARENT/Zope -

なのでSquid3.2は無罪。


当該のリクエストをSquidに投げているのはpythonのプログラムで、urllibをつかって指定されたURLでバックエンドサーバからデータを取り出しています。
このフェッチしている部分だけを抜き出してエラーになったURLを全部食わせてみると、urllib.open()が500エラーで例外を吐いていることが分かりました。
バックエンド側もPloneのプロダクトだったりするんですが、500エラーってZ2.logには出ないのかな。event.logにはなにか出ていたのかもしれません。

そこでurllib.open()での例外をキャッチして、数回リトライするように改修。いまのところ現象は治まったようです。よかった。