[MDEV-14203] rpl.rpl_extra_col_master_myisam, rpl.rpl_slave_load_tmpdir_not_exist failed in buildbot with a warning Created: 2017-10-29  Updated: 2023-11-27  Resolved: 2020-07-23

Status: Closed
Project: MariaDB Server
Component/s: Tests
Affects Version/s: 10.2, 10.4
Fix Version/s: 10.2.33, 10.3.24, 10.4.14, 10.5.5

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Sujatha Sivakumar (Inactive)
Resolution: Fixed Votes: 0
Labels: binlog_checksum, master-slave-protocol

Issue Links:
Blocks
Duplicate
duplicates MDEV-13258 rpl.rpl_skip_replication, rpl.rpl_set... Closed
Relates
relates to MDEV-23372 rpl.rpl_skip_replication still fails ... Stalled

 Description   

http://buildbot.askmonty.org/buildbot/builders/kvm-deb-jessie-x86/builds/3095/steps/mtr/logs/stdio

rpl.rpl_extra_col_master_myisam 'row'    w2 [ fail ]  Found warnings/errors in server log file!
        Test ended at 2017-10-25 12:17:47
line
2017-10-25 12:17:46 2948291392 [Warning] Master is configured to log replication events with checksum, but will not send such events to slaves that cannot process them
^ Found warnings in /dev/shm/var/2/log/mysqld.1.err
ok
 
 - saving '/dev/shm/var/2/log/rpl.rpl_extra_col_master_myisam-row/' to '/dev/shm/var/log/rpl.rpl_extra_col_master_myisam-row/'
 
Retrying test rpl.rpl_extra_col_master_myisam, attempt(2/3)...

http://buildbot.askmonty.org/buildbot/builders/kvm-fulltest/builds/10412

rpl.rpl_slave_load_tmpdir_not_exist 'stmt' w3 [ fail ]  Found warnings/errors in server log file!
        Test ended at 2017-09-27 20:34:55
line
2017-09-27 20:34:55 140341914171136 [Warning] Master is configured to log replication events with checksum, but will not send such events to slaves that cannot process them
^ Found warnings in /mnt/buildbot/build/mariadb-10.2.10/mysql-test/var/3/log/mysqld.1.err
ok
 
 - saving '/mnt/buildbot/build/mariadb-10.2.10/mysql-test/var/3/log/rpl.rpl_slave_load_tmpdir_not_exist-stmt/' to '/mnt/buildbot/build/mariadb-10.2.10/mysql-test/var/log/rpl.rpl_slave_load_tmpdir_not_exist-stmt/'
 
Retrying test rpl.rpl_slave_load_tmpdir_not_exist, attempt(2/3)...



 Comments   
Comment by Andrei Elkin [ 2019-12-13 ]

alice Could you please verify a possibility that the tests run in environments left by preceding tests. I checked rpl.rpl_extra_col_master_myisam to not see any manipulation of with @@global.binlog_checksum (e.g setting it OFF) in the test which would explain the warning. I am guessing such setting happens in a previous test by that mtr worker.
Thank you!

Comment by Timofey Turenko [ 2020-01-27 ]

I do not see such failure any more in Azure. I guess, it can be closed

Comment by Andrei Elkin [ 2020-02-11 ]

sujatha.sivakumar: could the failure relate to a preceding test of the same mtr worker?

Comment by Sujatha Sivakumar (Inactive) [ 2020-03-03 ]

When slave tries to connect to master 'get_master_version_and_clock' function
is invoked to perform elaborated slave-master handshake. During this process
slave server queries master server, to know if it is checksum aware and at the
same time master is notified about its CRC-awareness. The master's side
instant value of @@global.binlog_checksum is stored in the dump thread's
uservar area as well as cached locally to become known in consensus by master
and slave.

Post hand-shake slave requests master for binlog dump. It sends
'COM_BINLOG_DUMP'. This command is sent to master by 'cli_advanced_command'
call.

if (net_write_command(net,(uchar) command, header, header_length,
      arg, arg_length))
  {
    DBUG_PRINT("error",("Can't send command to server. Error: %d",
      socket_errno));
      if (net->last_errno == ER_NET_PACKET_TOO_LARGE)
    {
      set_mysql_error(mysql, CR_NET_PACKET_TOO_LARGE, unknown_sqlstate);
      goto end;
    }
    end_server(mysql);
    if (mysql_reconnect(mysql) || stmt_skip)
      goto end;

If there is some temporary network failure during this request_dump call,
'end_server' is invoked to close the current connection between master and
slave. Upon connection close the dump thread on the master gets terminated
and it clears the 'uservar' data it got through master-slave handshake.

The 'COM_BINLOG_DUMP' command is sent once again without master-slave
handshake. Since the checksum data is not available with new dump thread a
warning gets reported.

Comment by Sujatha Sivakumar (Inactive) [ 2020-07-23 ]

Patch is reviewed and approved by Elkin

Fix is implemented in 10.2.33.

Patch has been tested on higher versions.

In 10.3: Minor merge conflict is observed in "sql/net_serv.cc"
Patch: https://github.com/MariaDB/server/commit/c35133084cb7d6f41f1208fa822b9da1bed282cd

10.4: https://github.com/MariaDB/server/commit/9994afef39fa31ae6839c1b62176d6c3000c1c46
10.5: https://github.com/MariaDB/server/commit/50dac0cbcf472f3db59e5534cacbde236ba01b26

Generated at Thu Feb 08 08:11:43 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.