Bug #106937 | Emergency Failover after Network Split Invalidates Primary in ClusterSet | ||
---|---|---|---|
Submitted: | 6 Apr 2022 23:43 | Modified: | 13 May 2022 21:17 |
Reporter: | Hamza Ahmed | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | Shell AdminAPI InnoDB Cluster / ReplicaSet | Severity: | S2 (Serious) |
Version: | 8.0.28 | OS: | CentOS |
Assigned to: | CPU Architecture: | x86 | |
Tags: | InnoDB Cluster, InnoDB ClusterSet, mysqlrouter |
[6 Apr 2022 23:43]
Hamza Ahmed
[15 Apr 2022 10:35]
MySQL Verification Team
Hi, Thanks for the report
[15 Apr 2022 15:47]
MySQL Verification Team
Hi, Thanks for the report
[13 May 2022 21:17]
Philip Olson
Posted by developer: Fixed as of the upcoming MySQL Router 8.0.30 release, and here's the proposed changelog entry from the documentation team: Router no longer updates the v2_routers.last_check_in metadata field with an active timestamp, when before it updated it every 10th metadata refresh. Those updates to the metadata schema became errant transactions when a split-brain occurred, and it became impossible to rejoin the old primary back to a ClusterSet. Router instances in a partition could not understand that a failover happened so it continued updating. Now v2_routers.last_check_in is only updated when Router starts; so its value now represents the last time Router was launched. This coincides with lastCheckIn from MySQL Shell AdminAPI's listRouters() method. Thank you for the bug report.
[16 May 2022 9:53]
Andrzej Religa
Posted by developer: The decision was made to not fix this bug by disabling the runtime updates to last_check_in field. This will instead be configurable in the metadata and there will be worklogs for that in both Router and Shell.
[10 Oct 2023 15:45]
Jan Kneschke
Posted by developer: Fixed by WL#15230 in 8.0.31 See https://dev.mysql.com/doc/relnotes/mysql-router/8.0/en/news-8-0-31.html
[10 Oct 2023 15:52]
Edward Gilmore
Posted by developer: Fixed as part of WL#15230