mysql:16632
From: yoku0825 <yoku0825 <yoku0825@xxxxxxxxxx>>
Date: Thu, 28 Jan 2021 18:43:10 +0900
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」のメッセージについて