[前][次][番号順一覧][スレッド一覧]

mysql:5787

From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Fri, 12 Jul 2002 09:14:34 +0900
Subject: [mysql 05787] MySQL 3.23.51 のレプリケーションがタイムアウトする

とみたです。

MySQL 3.23.51 で、レプリケーションを行なうと、30秒毎に次のようなメッセー
ジがエラーファイルに出てきます。

020711 21:20:41  Error reading packet from server:  (server_errno=1159)
020711 21:21:41  Slave: Failed reading log event, reconnecting to retry, log 'master-bin.001' position 114
020711 21:21:41  Slave: reconnected to master 'repl@master:3306',replication resumed in log 'master-bin.001' at position 114

レプリケーション自体はうまくできているのですが、エラーが鬱陶しいです。

mysqladmin variables で見ると slave_net_timeout は 3600 になっているの
に、それが効いてなくて、net_read_timeout の 30 が有効になっているみた
いです。

net_read_timeout を 3600 にしたとしても、マスタ側で更新がかからなけれ
ば、結局一時間毎にエラーが出てしまうので、根本的な解決にはなってないよ
うな…。

ソースを見てみたところ、3.23.49 では slave.cc は次のようになっていて、
タイムアウトは無視するようになっていたのですが、

  while (!abort_loop && !abort_slave && len == packet_error &&
	 read_errno == EINTR )
  {
    len = mc_net_safe_read(mysql);
    read_errno = errno;
  }

3.23.51 では単純に

  len = mc_net_safe_read(mysql);

だけになっていて、タイムアウトエラー状態のまま次の処理にいくのが問題み
たいです。

わざわざ変更したってことは何か意味があるんだと思うんですが、その意図が
わかりません…。

とりあえず 3.23.49 を使うことにしました。

-- 
とみたまさひろ <tommy@xxxxxxxxxx>
日本MySQLユーザ会 http://www.mysql.gr.jp

[前][次][番号順一覧][スレッド一覧]

->    5787 2002-07-12 09:14 [とみたまさひろ <tomm] MySQL 3.23.51 のレプリケーションがタイムアウトする
      5949 2002-08-17 22:39 ┗[とみたまさひろ <tomm]