[MXS-1897] Replication Error : The slave I/O thread stops because a fatal error is encountered when it tried to SELECT @master_binlog_checksum Created: 2018-06-03  Updated: 2019-09-04  Resolved: 2019-09-04

Status: Closed
Project: MariaDB MaxScale
Component/s: binlogrouter
Affects Version/s: 2.2.7
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Khorshed Alam Assignee: markus makela
Resolution: Won't Fix Votes: 0
Labels: replication
Environment:

Debian 8, virtualBox, MariaDB v10.0.32 and MaxScale installed inside single VM



 Description   

I am trying to setup Real-time Data Streaming to Kafka with MaxScale CDC with MariaDB veriosn 10.0.32. After configuring replication, I am getting the status:

"The slave I/O thread stops because a fatal error is encountered when it tried to SELECT @master_binlog_checksum".

Below are all of my configurations:

MariaDB - Configuration

server-id               = 1
#report_host            = master1
#auto_increment_increment = 2
#auto_increment_offset  = 1
log_bin                 = /var/log/mysql/mariadb-bin
log_bin_index           = /var/log/mysql/mariadb-bin.index
binlog_format           = row
binlog_row_image        = full
# not fab for performance, but safer
#sync_binlog            = 1
expire_logs_days        = 10
max_binlog_size         = 100M
# slaves
#relay_log              = /var/log/mysql/relay-bin
#relay_log_index        = /var/log/mysql/relay-bin.index
#relay_log_info_file    = /var/log/mysql/relay-bin.info
#log_slave_updates
#read_only

MaxScale Configuration

[server1]
type=server
address=192.168.56.102
port=3306
protocol=MariaDBBackend
 
[replication]
type=service
router=binlogrouter
version_string=10.0.32-log
user=myuser
passwd=mypwd
server_id=3
router_options=binlogdir=/var/lib/maxscale,mariadb10-compatibility=1
filestem=master-binlog
 
[Replication Listener]
type=listener
service=replication
protocol=MySQLClient
port=5308
authenticator_options=inject_service_user=true
 
#CDC Service & Listener
#
[CDC-Service]
type=service
router=avrorouter
source=replication
router_options=filestem=binlog
user=myuser
passwd=mypwd
 
[CDC Listener]
type=listener
service=CDC-Service
protocol=CDC
port=4001

User Grants

GRANT SHOW DATABASES, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'myuser'@'192.168.56.102' IDENTIFIED BY PASSWORD
GRANT SELECT ON `mysql`.`tables_priv` TO 'myuser'@'192.168.56.102'                                                                                                 
GRANT SELECT ON `mysql`.`db` TO 'myuser'@'192.168.56.102'                                                                                                          
GRANT SELECT ON `mysql`.`user` TO 'myuser'@'192.168.56.102' 

Starting Replication

CHANGE MASTER TO MASTER_HOST='192.168.56.102', MASTER_PORT=5308, MASTER_USER='myuser', MASTER_PASSWORD='mypwd', MASTER_LOG_POS=328, MASTER_LOG_FILE='mariadb-bin.000018';
START SLAVE;

Replication Status

Master_Host: 192.168.56.102
                  Master_User: myuser
                  Master_Port: 5308
                Connect_Retry: 60
              Master_Log_File: mariadb-bin.000018
          Read_Master_Log_Pos: 328
               Relay_Log_File: mysqld-relay-bin.000002
                Relay_Log_Pos: 4
        Relay_Master_Log_File: mariadb-bin.000018
             **Slave_IO_Running: No**
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 328
              Relay_Log_Space: 248
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 1593
                Last_IO_Error: **The slave I/O thread stops because a fatal error is encountered when it tried to SELECT @master_binlog_checksum. Error:**
               Last_SQL_Errno: 0
               Last_SQL_Error:
  Replicate_Ignore_Server_Ids:
             Master_Server_Id: 0
               Master_SSL_Crl:
           Master_SSL_Crlpath:
                   Using_Gtid: No
                  Gtid_IO_Pos:

MaxScale Log

2018-06-03 12:33:55   notice : Working directory: /var/log/maxscale
2018-06-03 12:33:55   notice : The collection of SQLite memory allocation statistics turned off.
2018-06-03 12:33:55   notice : Threading mode of SQLite set to Multi-thread.
2018-06-03 12:33:55   notice : MariaDB MaxScale 2.2.7 started
2018-06-03 12:33:55   notice : MaxScale is running in process 2303
2018-06-03 12:33:55   notice : Configuration file: /etc/maxscale.cnf
2018-06-03 12:33:55   notice : Log directory: /var/log/maxscale
2018-06-03 12:33:55   notice : Data directory: /var/lib/maxscale
2018-06-03 12:33:55   notice : Module directory: /usr/lib/x86_64-linux-gnu/maxscale
2018-06-03 12:33:55   notice : Service cache: /var/cache/maxscale
2018-06-03 12:33:55   notice : Loading /etc/maxscale.cnf.
2018-06-03 12:33:55   warning: Whitespace in object names is deprecated, converting to hyphens: Replication Listener
2018-06-03 12:33:55   warning: Whitespace in object names is deprecated, converting to hyphens: CDC Listener
2018-06-03 12:33:55   notice : /etc/maxscale.cnf.d does not exist, not reading.
2018-06-03 12:33:55   notice : [cli] Initialise CLI router module
2018-06-03 12:33:55   notice : Loaded module cli: V1.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libcli.so
2018-06-03 12:33:55   notice : [readwritesplit] Initializing statement-based read/write split router module.
2018-06-03 12:33:55   notice : Loaded module readwritesplit: V1.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libreadwritesplit.so
2018-06-03 12:33:55   notice : [readconnroute] Initialise readconnroute router module.
2018-06-03 12:33:55   notice : Loaded module readconnroute: V1.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libreadconnroute.so
2018-06-03 12:33:55   notice : Loaded module avrorouter: V1.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libavrorouter.so
2018-06-03 12:33:55   notice : [binlogrouter] Initialise binlog router module.
2018-06-03 12:33:55   notice : Loaded module binlogrouter: V2.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libbinlogrouter.so
2018-06-03 12:33:55   notice : [mariadbmon] Initialise the MariaDB Monitor module.
2018-06-03 12:33:55   notice : Loaded module mariadbmon: V1.5.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmariadbmon.so
2018-06-03 12:33:55   notice : Loaded module MariaDBBackend: V2.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmariadbbackend.so
2018-06-03 12:33:55   notice : Loaded module MySQLBackendAuth: V1.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmysqlbackendauth.so
2018-06-03 12:33:55   notice : Loaded module maxscaled: V2.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmaxscaled.so
2018-06-03 12:33:55   notice : Loaded module MaxAdminAuth: V2.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmaxadminauth.so
2018-06-03 12:33:55   notice : Loaded module MariaDBClient: V1.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmariadbclient.so
2018-06-03 12:33:55   notice : Loaded module MySQLAuth: V1.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libmysqlauth.so
2018-06-03 12:33:55   notice : Loaded module CDC: V1.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libcdc.so
2018-06-03 12:33:55   notice : Loaded module CDCPlainAuth: V1.1.0 from /usr/lib/x86_64-linux-gnu/maxscale/libcdcplainauth.so
2018-06-03 12:33:55   warning: Protocol module 'mysqlclient' has been deprecated, use 'mariadbclient' instead.
2018-06-03 12:33:55   notice : Monitor 'MariaDB-Monitor' is missing the 'journal_max_age' parameter, using default value of 28800 seconds.
2018-06-03 12:33:55   notice : Monitor 'MariaDB-Monitor' is missing the 'script_timeout' parameter, using default value of 90 seconds.
2018-06-03 12:33:55   notice : No query classifier specified, using default 'qc_sqlite'.
2018-06-03 12:33:55   notice : Loaded module qc_sqlite: V1.0.0 from /usr/lib/x86_64-linux-gnu/maxscale/libqc_sqlite.so
2018-06-03 12:33:55   notice : Encrypted password file /var/lib/maxscale/.secrets can't be accessed (No such file or directory). Password encryption is not used.
2018-06-03 12:33:55   notice : Starting a total of 5 services...
2018-06-03 12:33:55   notice : [binlogrouter] replication: storing binlog files in 'flat' mode
2018-06-03 12:33:55   notice : [binlogrouter] replication: Service has MariaDB GTID otion set to ON
2018-06-03 12:33:55   warning: [binlogrouter] replication: master.ini file not found in /var/lib/maxscale. Master registration cannot be started. Configure with CHANGE MASTER TO ...
2018-06-03 12:33:55   notice : [MySQLAuth] [replication] No users were loaded but 'inject_service_user' is enabled. Enabling service credentials for authentication until database users have been successfully loaded.
2018-06-03 12:33:55   notice : Listening for connections at [::]:5308 with protocol MySQL
2018-06-03 12:33:55   notice : Service 'replication' started (1/5)
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] Using configuration options from service 'replication'.
2018-06-03 12:33:55   warning: [avrorouter] Router options for Avrorouter are deprecated. Please convert them to parameters.
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] Reading MySQL binlog files from /var/lib/maxscale
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] Avro files stored at: /var/lib/maxscale
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] First binlog is: binlog.000001
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] Using existing GTID index: //var/lib/maxscale/avro.index
2018-06-03 12:33:55   notice : [avrorouter] [CDC-Service] Loading stored conversion state: /var/lib/maxscale/avro-conversion.ini
2018-06-03 12:33:55   notice : [avrorouter] Loaded stored binary log conversion state: File: [binlog.000001] Position: [4] GTID: [0-0-0:0]
2018-06-03 12:33:55   warning: [CDC-Service] Failed to load users for listener 'CDC-Listener', authentication might not work.
2018-06-03 12:33:55   notice : Listening for connections at [::]:4001 with protocol CDC
2018-06-03 12:33:55   notice : Service 'CDC-Service' started (2/5)
2018-06-03 12:33:55   notice : [MySQLAuth] [Read-Only-Service] Loaded 8 MySQL users for listener Read-Only-Listener.
2018-06-03 12:33:55   notice : Listening for connections at [::]:4008 with protocol MySQL
2018-06-03 12:33:55   notice : Service 'Read-Only-Service' started (3/5)
2018-06-03 12:33:55   notice : Loaded server states from journal file: /var/lib/maxscale/MariaDB-Monitor/monitor.dat
2018-06-03 12:33:55   notice : [MySQLAuth] [Read-Write-Service] Loaded 8 MySQL users for listener Read-Write-Listener.
2018-06-03 12:33:55   notice : Listening for connections at [::]:4006 with protocol MySQL
2018-06-03 12:33:55   notice : Service 'Read-Write-Service' started (4/5)
2018-06-03 12:33:55   notice : Listening for connections at [/tmp/maxadmin.sock]:0 with protocol MaxScale Admin
2018-06-03 12:33:55   notice : Service 'MaxAdmin-Service' started (5/5)
2018-06-03 12:33:55   notice : Started REST API on [127.0.0.1]:8989
2018-06-03 12:33:55   notice : MaxScale started with 1 worker threads, each with a stack size of 8388608 bytes.
2018-06-03 12:33:55   notice : [MySQLAuth] [replication] No users were loaded but 'inject_service_user' is enabled. Enabling service credentials for authentication until database users have been successfully loaded.
2018-06-03 12:33:55   notice : Started MaxScale log flusher.
2018-06-03 12:36:29   notice : [binlogrouter] replication: Slave ::ffff:192.168.56.102, server id 0, disconnected after 0 seconds. 5 SQL commands

Also, I have executed both "SET @master_binlog_checksum = @@global.binlog_checksum" and "SELECT @master_binlog_checksum" from both mysql and MaxScale (mysql -h 192.168.56.102 -P6004 -u myuser -p mypwd) and it shows identical output. like below:

-------------------------

@master_binlog_checksum

-------------------------

NONE

-------------------------

It would be great if you cold help me in this regard.



 Comments   
Comment by Johan Wikman [ 2019-09-04 ]

Current binlog router will be deprecated and replaced with new functionality in 2.5.

Generated at Thu Feb 08 04:10:12 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.