Bug #116231 Router reports: Ignoring unsupported instance <host:port>, type: 'group-member'
Submitted: 25 Sep 2024 15:01 Modified: 8 Jan 16:39
Reporter: Daniel Thorell Email Updates:
Status: Closed Impact on me:
None 
Category:Shell AdminAPI InnoDB Cluster / ReplicaSet Severity:S3 (Non-critical)
Version:8.4.1 OS:Red Hat (8.9)
Assigned to: CPU Architecture:x86

[25 Sep 2024 15:01] Daniel Thorell
Description:
Starting mysql router 8.4.2 against a replicaset running 8.0.37 causes:
2024-09-25 13:27:51 metadata_cache WARNING [7f527c6eb700] Ignoring unsupported instance db-20:3306, type: 'group-member'
2024-09-25 13:27:51 metadata_cache WARNING [7f527c6eb700] Ignoring unsupported instance db-21:3306, type: 'group-member'
2024-09-25 13:27:51 metadata_cache WARNING [7f527c6eb700] Ignoring unsupported instance db-22:3306, type: 'group-member'

How to repeat:
Install mysql 8.0 series, create replicaset.

Upgrade mysql-shell to 8.4.1, 
Upgrade the replicaset metadata: dba.upgrade_metadata()

Start mysql-router 8.4, logs will have the errors above and do not accept any connections
[17 Dec 2024 11:21] Gary Broughton
I've seen exactly the same errors, though with 8.4.3 Router connecting to an 8.0.36 Replicaset.

If I move our Replicaset itself up to 8.4.3, 8.4.3 Router still displays the same errors (but 8.0.36 Router WILL work with the 8.4.3 Replicaset).

Metadata is at the latest 2.2.0, and reports itself as in a "consistent" state.
[17 Dec 2024 15:26] Miguel Araujo
When upgrading the metadata schema (mysql_innodb_cluster_metadata) of a ReplicaSet to version 2.2.0, the
'instances' table is not populated correctly. This results in
MySQL Router failing to recognize the topology and rejecting connections.

Metadata model 2.2.0 introduces the 'instance_type' column in the
'instances' table with the enum values: 'group-member', 'async-member',
and 'read-replica'. During the upgrade via 'dba.upgrade_metadata()', the
command does not determine whether the topology is an InnoDB Cluster or
a ReplicaSet. Consequently, the 'instance_type' column is assigned its
default value ('group-member'), leading to incorrect metadata.

As a workaround (while the bug exists), please update the 'instances' table and set all ReplicaSet members to `async-member`.
[18 Dec 2024 11:00] Gary Broughton
Thank you.  I'd actually found an answer by removing and re-adding each instance, and that altered the instance-type to 'aysnc-member', allowing router to connect.

Although manually altering the fields is of course much easier. :)
[8 Jan 16:39] Edward Gilmore
Posted by developer:
 
Added the following note to the MySQL Shell 8.4.4 and 9.2.0 release notes:
  
The ReplicaSet metadata schema table INSTANCES, was not populated properly when upgrading 
the metadata schema to version 2.2.0. 
As a result, MySQL Router did not recognise the topology and rejected connections to it.