Bug #98218 Undocumented behavior of --report_port in InnoDB Cluster
Submitted: 14 Jan 2020 9:14 Modified: 14 Jan 2020 10:58
Reporter: Tsubasa Tanaka (OCA) Email Updates:
Status: Verified Impact on me:
None 
Category:Shell AdminAPI InnoDB Cluster / ReplicaSet Severity:S3 (Non-critical)
Version:8.0.19 OS:Debian
Assigned to: CPU Architecture:Any

[14 Jan 2020 9:14] Tsubasa Tanaka
Description:
When I set different value between `--port` and `--report-port` , MySQL Shell's dba.checkInstanceConfiguration (and createColuster, addCluster too) fails.

Is this undocumented limitation or unexpected behavior?

I seem this is unexpected behavior, because I found this in Bug#84710

> The same direct use can be done with --report-port and MEMBER_PORT
> value on each server before joining the group.

And some code exists which takes care report_port in MySQL Shell and Group Replication.

ex. https://github.com/mysql/mysql-shell/blob/8.0.19/mysqlshdk/libs/mysql/instance.cc#L88-L100

ex. https://github.com/mysql/mysql-server/blob/mysql-8.0.19/sql/rpl_group_replication.cc#L298-...

How to repeat:
MySQL  127.0.0.1:33062 ssl  JS > \sql SELECT @@port, @@report_port;
+--------+---------------+
| @@port | @@report_port |
+--------+---------------+
|   3306 |         33062 |
+--------+---------------+
1 row in set (0.0010 sec)

 MySQL  127.0.0.1:33062 ssl  JS > dba.checkInstanceConfiguration()
Validating local MySQL instance listening at port 33062 for use in an InnoDB cluster...
This instance reports its own address as 127.0.0.1:33062
Checking whether existing tables comply with Group Replication requirements...
No incompatible tables detected
Checking instance configuration...
NOTE: Some configuration options need to be fixed:
+-------------+---------------+----------------+----------------------------+
| Variable    | Current Value | Required Value | Note                       |
+-------------+---------------+----------------+----------------------------+
| report_port | 33062         | 3306           | Update the server variable |
+-------------+---------------+----------------+----------------------------+
NOTE: Please use the dba.configureInstance() command to repair these issues.
{
    "config_errors": [
        {
            "action": "server_update",
            "current": "33062",
            "option": "report_port",
            "required": "3306"
        }
    ],
    "status": "error"
}

Suggested fix:
If this is expected behavior, add description into Document.
If unexpected, please fix to handle report-port.
[14 Jan 2020 10:58] MySQL Verification Team
Hello  Tanaka-San,

Thank you for the report and feedback!

regards,
Umesh