403Webshell
Server IP : 172.67.216.182  /  Your IP : 172.70.92.247
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/src/mysql-test/extra/rpl_tests/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/src/mysql-test/extra/rpl_tests/rpl_row_empty_imgs.test
#
# BUG#49100: RBR: Unexpected behavior when AI contains no usable data 
#            for slave columns

-- connection server_1

-- let $row_img_set=server_1:MINIMAL:N,server_2:MINIMAL:Y,server_3:MINIMAL:Y
-- source include/rpl_row_img_set.inc

-- echo #### case #1: AI: no values logged

-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine
INSERT INTO t1 VALUES ();
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
DROP TABLE t1;
-- source include/rpl_sync.inc

-- echo #### case #2: AI: not empty but slave does not have usable data for its columns (INSERT)

-- connection server_3
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine

-- connection server_2
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine
SET SQL_LOG_BIN=1;

-- connection server_1
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100, c2 int, primary key(c2)) Engine=$engine
SET SQL_LOG_BIN=1;

INSERT INTO t1(c2) VALUES (1);
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
DROP TABLE t1;
-- source include/rpl_sync.inc

-- echo #### case #3: BI: usable columns on the slave, AI: no usable columns on the slave

-- connection server_3
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine

-- connection server_2
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine
SET SQL_LOG_BIN=1;

-- connection server_1
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100, c2 int) Engine=$engine
SET SQL_LOG_BIN=1;

INSERT INTO t1 VALUES (1,1);
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
UPDATE t1 SET c2=2 WHERE c1=1 AND c2=1;
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
DROP TABLE t1;
-- source include/rpl_sync.inc

-- echo #### case #4: AI, BI: no usable columns on the slave (NOOP UPDATE).
-- echo ####          

if ($verbose)
{
  ## CLEAN LOGS (to show clean events later)

  --source include/rpl_reset.inc
}

-- connection server_3
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine

-- connection server_2
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100) Engine=$engine
SET SQL_LOG_BIN=1;

-- connection server_1
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 int DEFAULT 100, c2 int, c3 int, primary key(c2)) Engine=$engine
SET SQL_LOG_BIN=1;

INSERT INTO t1 VALUES (1,1,1);
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
UPDATE t1 SET c3=300 WHERE c2=1;
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
DROP TABLE t1;
-- source include/rpl_sync.inc

if ($verbose)
{
  # show that 2nd slave does not log the update (see: BUG#52473)
  -- connection server_1
  -- echo # Master events
  -- source include/show_binlog_events.inc
  -- connection server_2
  -- echo # First slave events
  -- source include/show_binlog_events.inc
  -- connection server_1
}

-- echo #### case #5: BI: no usable columns on the slave, AI: usable columns on the slave (slave must stop).
-- echo #### 


if ($verbose)
{
  ## CLEAN LOGS
  --source include/rpl_reset.inc
}

-- connection server_3
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 INT DEFAULT 100) Engine=$engine

-- connection server_2
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 INT DEFAULT 100) Engine=$engine
SET SQL_LOG_BIN=1;

-- connection server_1
SET SQL_LOG_BIN=0;
-- replace_result $engine ENGINE
-- eval CREATE TABLE t1 (c1 INT DEFAULT 100, c2 INT PRIMARY KEY) Engine=$engine
SET SQL_LOG_BIN=1;

INSERT INTO t1 VALUES (1,1);
SELECT * FROM t1;
-- source include/rpl_sync.inc
-- connection server_2
SELECT * FROM t1;
-- connection server_3
SELECT * FROM t1;

-- connection server_1
UPDATE t1 SET c1=300 WHERE c2=1;
SELECT * FROM t1;
-- connection server_2

-- let $lower_engine= `SELECT LOWER('$engine')`
if ($lower_engine == ndb)
{
  if ($verbose)
  {
    -- echo # scenario #5 skipped in NDB  (see: BUG#52473).
    # show events logged in server_1. There will be two Write_rows events
    # instead of one Write_rows and one Update_rows log events.
    -- connection server_1
    -- source include/show_binlog_events.inc
  }
}

SET SQL_LOG_BIN=0;
call mtr.add_suppression("Slave: Can\'t find record in \'t1\' Error_code: 1032");
call mtr.add_suppression("Slave SQL for channel '': .*Could not execute Update_rows event on table test.t1; Can.t find record in .t1.* Error_code: 1032");
call mtr.add_suppression("The slave coordinator and worker threads are stopped, possibly leaving data in inconsistent state");

SET SQL_LOG_BIN=1;

# NOTE: Because of BUG#52473, when using NDB this will make the test
#       wait forever.
# 1032 = ER_KEY_NOT_FOUND
--let $slave_sql_errno= 1032
--let $not_switch_connection= 1
-- source include/wait_for_slave_sql_error_and_skip.inc

## CLEAN UP

-- connection server_1
DROP TABLE t1;
-- source include/rpl_sync.inc

-- let $row_img_set=server_1:FULL:N,server_2:FULL:Y,server_3:FULL:Y
-- source include/rpl_row_img_set.inc

Youez - 2016 - github.com/yon3zu
LinuXploit