メッセージ。 - diary

2010-03-16

# [日記] 朝の進捗

昨夜はご飯を食べると急激に眠くなって寝てしまった。その代わり、今朝は早めに起きて作業中。Amazon S3のテストがうまく動かない原因を調べていて、ちょっと変なところがあると分かってきた。クライアントとプロキシの間をパケットキャプチャをして調べているのだが、HTTPのHEADメソッドでデータを取りにいった際の戻りとして、HTTPボディが返ってきている。

正確には、HTTPのHEADメソッドではHTTPボディを取得しないはずなんだが、プロキシがそのへんを無視してというか混乱していてボディを無理矢理取得しようとしている(コード的にはport->stringが動いていて、一応content-length分のデータ(NULLストリング)が取得できている)。これはHTTPシーケンスとしてはおかしいので、このへんの問題が、Amazon S3のテストを止める原因になっていると思われる。

なお、どうしてこうなってしまったかというと、プロキシサーバーの実装で、HTTPでソケットからデータを読み込む部分(下位からのリクエストと上位からのレスポンス)を単に共用してしまっていることが原因だと思われる。下位からのリクエストと上位からのレスポンスは、フォーマットが非常に似ている。だから当初は、同じロジックでデータを取得できるんじゃないかと考えたのだ。

ところが実際には、HEADメソッドの場合はcontent-lengthが0より大きい数値であってもHTTPボディを取得しないとか、content-lengthやtransfer-encodingが指定されていないときにHTTPボディはどう扱うのかといった部分で、いくつかの条件分岐をしなければならない。この「条件」に相当する部分について、ぼくの理解が曖昧になっていることが原因になって今回の問題が起こっているということが分かった。

で、修正なのだが、やっぱり2~3日ぐらいかかるかなという感じ。コードの修正量じたいは少ないと思うんだけど、あまりad hocにコードをいじっても良くない気がする。プロトコル実装のコアな部分だから、フラグプログラミングみたいに、ちょっと変なコードを書くとはまってしまう感じ。
2010-03-16 07:02:03 / ふじさわ / Comment: 0 / Trackback: 0

2010-03-15

# [日記] 進捗…

今朝は、プロキシサーバーとクライアントの間をパケットキャプチャしてみた。すると、なんか問題なくテストが動いている。うーむ。パケットキャプチャするために、プロキシサーバーを(物理的に)別のサーバーに置いて動かしたので、メモリ量とかそのへんの問題なんだろうか。とりあえず朝は時間切れ。
2010-03-15 08:35:54 / ふじさわ / Comment: 0 / Trackback: 0

2010-03-14

# [日記] 進捗なし

んー。Amazon S3の負荷テストでプロキシーを通したときに問題が起きる件、原因がよく分からない。(まぁ、そもそも今日もあまり調べる時間が取れていないのだけど。)16KByteまでは正常に動くが、32KBのデータを通そうとすると、Error occurred in error handlerが出てプロキシサーバーが落ちる。この落ち方はやっぱり、HTTPシーケンス上の問題かな。明日の朝調べてみよう。亀のようにのろい歩みだ。
2010-03-14 23:39:19 / ふじさわ / Comment: 0 / Trackback: 0

2010-03-13

# [日記] 進捗なし

明日TOEICの試験があるので、今日は基本的にその勉強ばかりしていた。ま、一応コードも書いていたんだけど、基本的にTOEICの勉強で疲れたとき気分転換としてコードを書くという感じて、書いたコードは軽いものばかり。ということで、今日のコーディング方面の進捗はありませんでした。
2010-03-13 23:23:53 / ふじさわ / Comment: 0 / Trackback: 0

2010-03-12

# [日記] 夜の進捗(なし)

うーん、眠い。会社から帰ってご飯を食べるとやけに眠くなる。ということで、もうそろそろ寝ます。いまNHKで、『日本の、これから「いま考えよう日米同盟」』というのをやってて見たい気もするけど、起きていられそうにない。今日も進捗なし。
2010-03-12 22:15:23 / ふじさわ / Comment: 0 / Trackback: 0

# [日記] 朝の進捗

ほとんど進んでいないのだけど、バグの原因はなんとなく分かった。今回はネットワークポートに対してread-block!を使ってvectorを取得しているのだが、そのvectorを外部に出力する際適切なフォーマットに変換していなかったのだ。「適切なフォーマット」とは何か?という部分で、ちょっと調べたり考えたりが必要そう。
2010-03-12 08:26:46 / ふじさわ / Comment: 0 / Trackback: 0

# [日記] 夜の進捗(なし)

なんか、帰ってくると非常に眠くて、あまり仕事ができない。本当のことをいえば、実は今年確定申告をしたほうがよいとかしないでもよいとかそういう話もあるのだが、疲れてできてない…。まぁ確定申告は来週の月曜が締め切りだから、それまでに頑張ろう…。あと、帰宅後に作業日報を書いて送っているのだが、それを帰宅後に書くのにも時間と労力がかかってて、その作業時間はどこに付けるの?みたいな話があって、いろいろややこしい。on top of that、今週末はTOEICを受けようと思ってて、その勉強もしなければいけないのだ。
2010-03-12 00:41:11 / ふじさわ / Comment: 0 / Trackback: 0
recent days<< | >>old days