DigiLoog

PC関係の事なら何でもいけるそんな処

Squid4.0(Beta ver)でException Error

2015年11月03日(火) - 23:27 | カテゴリ: Linux

先日、自鯖の内向けシステムを更新していた時、次々とOSSのバージョンを確認していたら、
Beta版だがSquid4.0が公開されていたので興味がそそられてしまい、
ns-labに3台あるProxyの内、1台をSquid4.0に更新をしてみた。

更新直後は特に問題も無く、httpもhttpsも見られるしセッション管理とかも出来ていたので
「このまま全台をSquid4.0に上げるか?」と画策していた矢先、
よくわからないエラーが出てしまい、少しだけ調査をしてみた。

まぁ、Beta版な次点でバグがある事は予測済み。
むしろ、今回の件で色々とパケットキャプチャしたり、
HTTP通信を勉強し直す良い機会になったと前向きに考える事にしよう… _:(´ཀ`」 ∠):_

※ここから先は、解釈・解説を間違えていてもあしからず(´・ω・`)

↑の通り、https(SSL)とかも問題無かったので安堵していたのだが、
毎週の楽しみであるエ○ゲブランドのサイトを巡回していた時に問題は起きた。

それは、SquidでHTTPのChunked Transferを処理するのにミスってしまい、
cache.logに「Exception error:corrupted chunk extension value」が出るという物。

ちなみに、これが発生したサイトは↓

サイトが悪いのでは無く、Squidの処理でコケてしまっている模様な点に注意

………

Squidを介さないとサイトを普通に見れるので、原因がSquidにあるのは明白。
という事で、パケットキャプチャとか、Web開発ツールを駆使してヘッダ情報を見ていくと、
どうやら、特定条件下で「Transfer-Encoding: chunked」になると、
Squid4.0がおかしくなるという所までは判明。

同様のエラーだと「Exception error:corrupted chunk size」という物は見たことがあるのだが、
今回は「extension value」なので↑のエラーとは別物だし当初は色々と情報を仕入れるのに大変だった。
しかし、ソース見たりとかググったりしていると、Beta版故のエラーという事がなんとなく判明。

Squid3.5とSquid4.0のソースをdiffすれば、該当箇所の修正方法もわかるのだろうが、
ここまでトラブルシュートする中で、そこまでやる気力が無くなってしまい、
最終的にはSquid3.5に戻して、ns-labのGatewayProxyは正常系に戻ったのでしたとさ。

………

Squidはメジャーバージョンが上がる毎に、様々な箇所の仕様が変更されるので、
本来はちゃんとテストした上で上げるべきなのだろうが、そこは自鯖という事でご愛敬。

何はともあれ、BetaはBeta故の理由があるという事を改めて学習した昨今でした。
…以前はBetaデバッガーやっていたが、そんな気力も何処かへ吹き飛んでしまった





  • 応援中

    はじめるセカイの理想論 -goodbye world index-