Slave UUID in replica for gh-ost shows java.lang.ArrayIndexOutOfBoundsException

オープン
#1,492 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 10 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
go, mysql
領域
databases

調査の方向性

まず、gh-ost v1.1.5を使用して、記載されているAurora MySQL 5.7のセットアップでSHOW SLAVE HOSTSを再現し、その後、報告されたSlave_UUIDの失敗をMariaDB JDBCのスタックトレースと比較します。失敗がgh-ost、JDBCドライバー、データベースのセットアップのいずれにあるのかを特定し、関連するバージョンとレプリケーション設定を添えて結果を記録します。

索引モデルが issue の本文から書いたものです。

説明

While using v.1.1.5 (due to compatibility issues of gh-ost's latest version with MySQL 5.7) everything runs fine, but we noticed, after issuing a

show slave hosts ;

command in the replica gh-ost uses to read the binlog, that the "Slave_UUID" column shows an error message rather than a proper value

Server_id 99999
Host ip-10-0-0-113.ec2.internal
Port 3306
Master_id 1778116519
Slave_UUID  <failed to load>
java.lang.ArrayIndexOutOfBoundsException: Index 49 out of bounds for length 49
	at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.setPosition(TextRowProtocol.java:135)
	at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.checkObjectRange(SelectResultSet.java:635)
	at org.mariadb.jdbc.internal.com.read.resultset.SelectResultSet.getString(SelectResultSet.java:943)
	in JdbcHelperImpl.getObject(JdbcHelperImpl.java:337)

Is this a known issue that is fixed in newer versions? Or maybe a DBMS issue rather than a gh-ost issue?

Again, migrations run fine, we've moved several tables and around 700M rows with no issues so far.

We're using AWS RDS, our setup is as follows:

Master cluster, hosting the master writer and 3 Aurora read replicas
binglog format is MIXED
Engine is 5.7.mysql_aurora.2.11.3
5.7.12-log

Replica cluster, set up manually to replicate via binlog from the master writer, only 1 writer
binlog format is ROW
filtering is OFF (0)
Engine is 5.7.mysql_aurora.2.11.3
5.7.12-log

I'll gladly give more info on the issue if needed.

主要言語
Go
スター
13.6k
フォーク
1.4k
平均マージ
9日 19時間
マージ済み PR(30日)
1

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

github/gh-ost のほかの issue

github/gh-ost の issue をすべて見る

似ている issue

Go の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。