[pgsql-jp: 37862] Re: kind mismatch between backends

Tatsuo Ishii ishii @ sraoss.co.jp
2006年 12月 26日 (火) 13:35:56 JST


石井です.

> 石田です。嘘でした。
> 
> 06/12/26 に ISHIDA Akio<iakio @ mono-space.net> さんは書きました:
> > それよりちょっと気になったのは、
> > replication_timeout = 5000
> > で、
> >
> > 2006-12-22 08:39:02 ERROR: pid 22580: pool_check_fd: data is not ready
> > tp->tv_sec 5 tp->tp_usec 5000000
> >
> > という、tp->tp_usecの値がおかしいのですが、
> > これはnotimeoutが渡されてtimeoutが初期化されていなかった
> > ということでしょうかね。
> >
> > だとしたら、タイムアウトがNULLでselectが0を返すことって
> > あるんでしょうか。
> 
> selectがtimeoutの値を更新するんですね。

はい.

> だとしたらこの時点でnotimeoutは0だったということですね。

すみません.このあたりエラーメッセージが混乱してまして,

	pool_error("pool_check_fd: data is not ready tp->tv_sec %d tp->tp_usec %d", 
			   pool_config.replication_timeout / 1000,
			   (pool_config.replication_timeout - (timeout.tv_sec * 1000))*1000);

のような何をしたいのかわからない意味不明なコードになっていました.タイ
ムアウトした時点でおそらくtimeout構造体の中身はtv_sec, tv_usecともに0
となり,上記の間違った計算から,

tp->tv_sec 5 tp->tp_usec 5000000

と表示されてしまっただけだと思われます.
# 今度直しておきます.
--
Tatsuo Ishii
SRA OSS, Inc. Japan



pgsql-jp メーリングリストの案内