FATAL invalid sequence 8 != 1

Offen
#1,415 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 10 Tagen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
30/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
go, mysql
Bereich
databases

Rechercherichtung

Beginne mit dem Stacktrace in vendor/github.com/go-mysql-org/go-mysql/packet/conn.go und replication/binlogsyncer.go und verfolge anschließend die gh-ost-Einstiegspunkte in go/binlog/gomysql_reader.go und go/logic/streamer.go. Reproduziere den Befehl gegen MySQL 8 und ermittle, warum das Binlog-Streaming eine ungültige Paketsequenz meldet; abgeschlossen ist die Aufgabe, wenn gh-ost eine Verbindung herstellen und ohne den fatalen Fehler mit dem Streaming beginnen kann.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Ubuntu 20.04.6 LTS (GNU/Linux 5.15.0-1058-aws x86_64)
MySQL verison 8.0.36-28
Ghost Version - gh-ost-1.1.6-1.x86_64.rpm

ghost command:

gh-ost
--max-load=Threads_running=25
--critical-load=Threads_running=1000
--chunk-size=1000
--max-lag-millis=1500
--user="myusername"
--password="mypassword"
--host=10.0.8.34
--database="test_db"
--table="test_table"
--verbose
--alter="CHANGE COLUMN first_col VARCHAR(100) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci' AFTER second_col"
--approve-renamed-columns
--switch-to-rbr
--allow-master-master
--cut-over=default
--exact-rowcount
--concurrent-rowcount
--default-retries=120
--initially-drop-ghost-table
--initially-drop-socket-file
--execute

error log:

2024-05-08 11:12:09 INFO starting gh-ost 1.1.6
2024-05-08 11:12:09 INFO Migrating test_db.test_table
2024-05-08 11:12:09 INFO Alter statement has column(s) renamed. gh-ost finds the following renames: map[first_col:VARCHAR(100)]; --approve-renamed-columns is given and
so migration proceeds.
2024-05-08 11:12:09 INFO inspector connection validated on 10.0.8.34:3306
2024-05-08 11:12:09 INFO User has SUPER, REPLICATION SLAVE privileges, and has ALL privileges on test_db.*
2024-05-08 11:12:09 INFO binary logs validated on 10.0.8.34:3306
2024-05-08 11:12:09 INFO Restarting replication on 10.0.8.34:3306 to make sure binlog settings apply to replication thread
2024-05-08 11:12:09 INFO Inspector initiated on ip-10-0-8-34:3306, version 8.0.36-28
2024-05-08 11:12:09 INFO Table found. Engine=InnoDB
2024-05-08 11:12:09 INFO Estimated number of rows via EXPLAIN: 256891
2024-05-08 11:12:09 INFO Recursively searching for replication master
2024-05-08 11:12:09 INFO Master found to be 10.0.9.34:3306
2024-05-08 11:12:09 INFO log_slave_updates validated on 10.0.8.34:3306
2024-05-08 11:12:09 INFO streamer connection validated on 10.0.8.34:3306
[2024/05/08 11:12:09] [info] binlogsyncer.go:148 create BinlogSyncer with config {99999 mysql 10.0.8.34 3306 myusername false false false UTC true 0 0s 0s 0 false false 0 }
2024-05-08 11:12:09 INFO Connecting binlog streamer at mysql-bin.322844:89692163
[2024/05/08 11:12:09] [info] binlogsyncer.go:374 begin to sync binlog from position (mysql-bin.322844, 89692163)
2024-05-08 11:12:09 INFO Tearing down inspector
2024-05-08 11:12:09 INFO Tearing down streamer
2024-05-08 11:12:09 FATAL invalid sequence 8 != 1
github.com/go-mysql-org/go-mysql/packet.(*Conn).ReadPacketTo
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/packet/conn.go:140
github.com/go-mysql-org/go-mysql/packet.(*Conn).ReadPacketReuseMem
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/packet/conn.go:98
github.com/go-mysql-org/go-mysql/client.(*Conn).readResult
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/client/resp.go:218
github.com/go-mysql-org/go-mysql/client.(*Conn).exec
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/client/conn.go:298
github.com/go-mysql-org/go-mysql/client.(*Conn).Execute
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/client/conn.go:158
github.com/go-mysql-org/go-mysql/replication.(*BinlogSyncer).registerSlave
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/replication/binlogsyncer.go:266
github.com/go-mysql-org/go-mysql/replication.(*BinlogSyncer).prepare
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/replication/binlogsyncer.go:346
github.com/go-mysql-org/go-mysql/replication.(*BinlogSyncer).prepareSyncPos
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/replication/binlogsyncer.go:617
github.com/go-mysql-org/go-mysql/replication.(*BinlogSyncer).StartSync
/home/meiji163/Documents/projects/gh-ost/vendor/github.com/go-mysql-org/go-mysql/replication/binlogsyncer.go:383
github.com/github/gh-ost/go/binlog.(*GoMySQLReader).ConnectBinlogStreamer
/home/meiji163/Documents/projects/gh-ost/go/binlog/gomysql_reader.go:64
github.com/github/gh-ost/go/logic.(*EventsStreamer).initBinlogReader
/home/meiji163/Documents/projects/gh-ost/go/logic/streamer.go:126
github.com/github/gh-ost/go/logic.(*EventsStreamer).InitDBConnections
/home/meiji163/Documents/projects/gh-ost/go/logic/streamer.go:116
github.com/github/gh-ost/go/logic.(*Migrator).initiateStreaming
/home/meiji163/Documents/projects/gh-ost/go/logic/migrator.go:1056
github.com/github/gh-ost/go/logic.(*Migrator).Migrate
/home/meiji163/Documents/projects/gh-ost/go/logic/migrator.go:353
main.main
/home/meiji163/Documents/projects/gh-ost/go/cmd/gh-ost/main.go:315
runtime.main
/usr/lib/go-1.18/src/runtime/proc.go:250
runtime.goexit
/usr/lib/go-1.18/src/runtime/asm_amd64.s:1571

We've been getting this error since having migrated from MySQL 5.7 to MySQL 8. What could be the issue? Any advice on what we can try to get gh-ost working again.

Vorherrschende Sprache
Go
Sterne
13.6k
Forks
1.4k
Ø Merge
9 T. 19 Std.
Gemergte PRs (30 T.)
1

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus github/gh-ost

Alle Issues in github/gh-ost

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.