sysown / proxysql

High-performance MySQL proxy with a GPL license.
http://www.proxysql.com
GNU General Public License v3.0
5.95k stars 970 forks source link

Logging reporting error #1406

Open JohnTipping opened 6 years ago

JohnTipping commented 6 years ago

this error is reporting constantly. MySQL_Monitor.cpp:808:monitor_group_replication_thread(): [ERROR] Incorrect number of rows, please report a bug. i assume this is when the backend server status is being checked. as nothing else is happening. what can i do to solve this.

renecannao commented 6 years ago

Can you please run this query on all mysql servers, and copy the output? thanks

SELECT * FROM sys.gr_member_routing_candidate_status;
JohnTipping commented 6 years ago

all 3 nodes return empty sets. so i guess i have done some thing wrong. but all nodes report as online. +--------------+---------------+--------+ | hostgroup_id | hostname | status | +--------------+---------------+--------+ | 1 | 213.40.195.98 | ONLINE | | 1 | 213.40.195.95 | ONLINE | | 1 | 213.40.195.92 | ONLINE | +--------------+---------------+--------+

renecannao commented 6 years ago

If monitoring isn't working correctly, I wouldn't trust the reported status. For reference, the query executed by Monitor is:

SELECT viable_candidate,read_only,transactions_behind FROM sys.gr_member_routing_candidate_status

As a result it expects 1 row with 3 columns:

        if (mmsd->result) {
            int num_fields=0;
            int num_rows=0;
            num_fields = mysql_num_fields(mmsd->result);
            if (num_fields!=3) {
                proxy_error("Incorrect number of fields, please report a bug\n");
                goto __end_process_group_replication_result;
            }
            num_rows = mysql_num_rows(mmsd->result);
            if (num_rows!=1) {
                proxy_error("Incorrect number of rows, please report a bug\n");
                goto __end_process_group_replication_result;
            }
            MYSQL_ROW row=mysql_fetch_row(mmsd->result);
JohnTipping commented 6 years ago

so how do you test comms between proxysql and a configured server?