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

mysql:16633

From: 内村健司 <内村健司 <uchimura.kenji@xxxxxxxxxx>>
Date: Thu, 28 Jan 2021 21:15:40 +0900
Subject: [mysql 16633] RE: [mysql 16632] Re: [mysql 16631] 「Semi-sync master failed on net_flush() before waiting for slave reply」のメッセージについて

yoku0825さん

沼の中からコンバンハ、インタービレッジ内村です。
助言ありがとうございます。

ご指摘いただいた内容はもとに試行錯誤してみます。

いつもありがうございます!!

うち

-----Original Message-----
From: yoku0825 [mailto:yoku0825@xxxxxxxxxx] 
Sent: Thursday, January 28, 2021 6:43 PM
To: ml@xxxxxxxxxx
Subject: [mysql 16632] Re: [mysql 16631] 「Semi-sync master failed on net_flush() before waiting for slave reply」のメッセージについて

内村さん
沼の中からコンニチハ、yoku0825です。

おっしゃっているエラーはER_SEMISYNC_MASTER_FAILED_ON_NET_FLUSHという名前で定義されています(おっ、1万番台のエラーコードですね)

$ grep "Semi-sync master failed on" include/mysqld_ername.h
{ "ER_SEMISYNC_MASTER_FAILED_ON_NET_FLUSH", 11161, "Semi-sync master
failed on net_flush() before waiting for slave reply.","HY000", "",
2470 },

タグジャンプして探してみると、↓のコードが引っ掛かりました。

```
  if (net_flush(net)) {
    LogErr(ERROR_LEVEL, ER_SEMISYNC_MASTER_FAILED_ON_NET_FLUSH);
    goto l_end;
  }
```

- https://github.com/mysql/mysql-server/blob/mysql-8.0.19/plugin/semisync/semisync_master.cc#L1107-L1113

ここから先は長いので割愛しますが、net_flushが失敗するのは compress_packetに失敗した時かsend(2)に失敗した時です。

net_flush -> net_write_packet -> compress_packet
                              -> net_write_raw_loop -> vio_write ->
mysql_socket_send -> send(2)

というわけで、

1. その時間にマシンのリソースはサチっていませんでしたか?
  - NICのエラーカウンタとかも見ると良いかも知れません
  - NICがサチるよりはCPUがサチる方がよく起こる気がします
    - ストレージに引きずられてCPUが埋まってサチることもあるので俯瞰的に見るのが良いと思います

2. --slave_compressed_protocol に心当たりはありますか?
  - 8.0.4で直ったと言ってはいますが、別種のバグが埋まっているのかも知れません
    - https://bugs.mysql.com/bug.php?id=86230
  - もし心当たりがあるようならON/OFFを切り替えてみてください

あたりでどうでしょうか!


yoku0825,

2021年1月27日(水) 14:37 内村健司 <uchimura.kenji@xxxxxxxxxx>:
>

> お世話になります。

> インタービレッジ内村と申します。

>

> 本番環境において、

> 表題のメッセージが出力し、原因を解析する必要があるのですが、

> グーグル先生に聞いても有益な回答が得られませんでした。

>

> ご存じの方がいらっしゃいましたら、助言頂けますと幸いです。

>

> 表題のメッセージがマスター側のMySQLのエラーログに出力されました。

>

> <知りたいこと>

> ・どういったときに本メッセージが出力されるか。

> ・原因は何か(原因追及の手がかりなども大歓迎です)

>

>

> 【環境】

> ・OSはマスター/スレーブともにRHEL7.7。

> ・マスター/スレーブともにMySQL8.0.19。

> ・準同期設定済み

>

> 【参考】

> https://bugs.mysql.com/bug.php?id=88578

>

> 以上、よろしくお願いいたします。

>

>

> ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞

> 内村健司

> インタービレッジ株式会社

> http://www.intervillage.co.jp

> ∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞


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

   @ 16627 2021-01-25 17:31 [Yoshiaki Yamasaki <y] [告知] 2/2(火) HeatWaveの検証報告セミナー
     16631 2021-01-27 14:37 ┗[内村健司 <uchimura.k] 「Semi-sync master failed on net_flush() before waiting for slave reply」のメッセージについて
     16632 2021-01-28 18:43  ┗[yoku0825 <yoku0825@x] Re: [mysql 16631] 「Semi-sync master failed on net_flush() before waiting for slave reply」のメッセージについて
->   16633 2021-01-28 21:15   ┗[内村健司 <uchimura.k] RE: [mysql 16632] Re: [mysql 16631] 「Semi-sync master failed on net_flush() before waiting for slave reply」のメッセージについて