JK

ばけ

JK

日本語Win環境だと、Timezoneが日本語で表示される罠。まさしく罠。「東京 (標準時)」って何さ。おまけにstatus workerのHTML、charsetが8859-1だ罠。まったく・・・

頭痛の種

JK

検証でトラブル発生。 一つはRHEL ES4 U3/U4 + mod_jk 1.2.20の組み合わせでのOSリブート問題。 これは、どうやらOS側の問題で、flock()にrace conditionが発生するらしい。 てか、mod_jkが1.2.20になって、リクエストを処理するたびにflock()を 使うために…

global maintenance

JK

グローバルメンテはプロセス単位。すくなくとも、各ワーカのチェックはプロセス毎に worker.maintain経過時点で実行される。 ステータスのリカバリはlb->s->last_maintain_timeを参照するので、全プロセスの うち1つのプロセス(つーかスレッド)が実行するだ…

ぱっち

JK

昨日書いたコード、かっこ悪い。 fd_set rfds; int ret = 0; tv.tv_sec = MAX_SECS_TO_LINGER; tv.tv_usec = 0; while (1) { FD_ZERO(&rfds); FD_SET(s, &rfds); ret = select(s+1, &rfds, NULL, NULL, &tv); if(ret > 0) { if(FD_ISSET(s, &rfds)) { nbytes…

patch

JK

どうやら、MAX_SECS_TO_LINGERは30らしい。 MAX_SECS_TO_LINGERは16に書き変えて、select()で受信可能になるまで 待ってみるコードを作ってみた。とりあえず、動いてるっぽい。 とりあえず、火曜日に内部で報告してみよう。 fd_set rfds; while (1) { tv.tv_…

MAX_SECS_TO_LINGER

JK

12でも16でもなくて、30なのか? 調査が必要。 apr_network_io.hだと、 #ifndef APR_MAX_SECS_TO_LINGER /** Maximum seconds to linger */ #define APR_MAX_SECS_TO_LINGER 30 #endif #ifndef MAX_SECS_TO_LINGER /** @deprecated @see APR_MAX_SECS_TO_LING…

無限ループ

JK

mod_jk 1.2.14〜1.2.15までは、reply_timeoutを設定した場合に Tomcatから応答がないと待ち続ける問題があった。 #つまり、reply_timeoutを設定しているにも関わらずワーカは開放されない。 setsockoptsでSO_RCVTIMEOを設定しているが、recvがSO_RCVTIMEOの…

待つわけじゃないの?

JK

cache_sz = connection_pool_size なきゃぁないで、ae->sd = JK_INVALID_SOCKETになってエラーとちゃうんか? セマフォ使って、空きがなきゃ待つとかって作りでも無いっぽいし。 static void ajp_next_connection(ajp_endpoint_t *ae, jk_logger_t *l) { int…