Server IP : 185.86.78.101 / Your IP : 216.73.216.124 Web Server : Apache System : Linux 675867-vds-valikoshka1996.gmhost.pp.ua 5.4.0-150-generic #167-Ubuntu SMP Mon May 15 17:35:05 UTC 2023 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 : OFF Directory : /www/server/mysql/mysql-test/t/ |
Upload File : |
############################################################################### # BUG#20748570 BOOL HA_TRX_INFO::IS_TRX_READ_WRITE() CONST: ASSERTION # `IS_STARTED()' FAILED. # Problem: Server is hitting the above mentioned assert when # commiting statements under GTID_MODE is ON + binlog disabled + autocommit # enabled combination. # # Bug#20954452 GTID IS NOT RELEASED PROPERLY WHEN PS_PROTOCOL + GTID + BINLOG OFF COMBINATION # # When a statement was executed using the PS protocol, i.e., using # COM_STMT_PREPARE + COM_STMT_EXECUTE rather than COM_QUERY, then # it would not release GTID ownership. The reason was that # update_gtids_impl was not called for COM_STMT_EXECUTE. After # fixing the bug it is called. This affected most DML and DDL, # although before this the mysqltest client tool would only use the # PS protocol for DML and CREATE TABLE. Since the server supports it, # this patch updates mysqltest to use the PS protocol for most DDL. # # Steps to reproduce: # i) SET SESSION GTID_NEXT='UUID:GNO' # ii) Execute a statement # iii) See that an entry is added in 'gtid_executed' table. # iv) Execute above three steps for all different types of statements ############################################################################### # Test is not required to run against embedded server --source include/not_embedded.inc # Should be tested against "binlog disabled" server --source include/not_log_bin.inc # Clean gtid_executed so that test can execute after other tests RESET MASTER; # Initial setup connect (connection_for_table_check,127.0.0.1,root,,test,$MASTER_MYPORT); --source include/gtid_utils.inc let $master_uuid= `SELECT @@GLOBAL.SERVER_UUID`; # Remember the current gtid_executed context --connection connection_for_table_check --source include/gtid_step_reset.inc # Check-1: CREATE TABLE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:1' CREATE TABLE t1( i INT) engine=INNODB; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-2: INSERT --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:2' INSERT INTO t1 VALUES (12); --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-3: INSERT SELECT --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:3' INSERT INTO t1 SELECT * FROM t1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-4: UPDATE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:4' UPDATE t1 SET i=13 WHERE i=12; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-5: DELETE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:5' DELETE FROM t1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-6: ALTER --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:6' ALTER TABLE t1 ADD COLUMN other_column INT; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-7: CREATE INDEX --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:7' CREATE INDEX t_index ON t1(i); --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-8: DROP INDEX --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:8' DROP INDEX t_index ON t1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-9: RENAME TABLE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:9' RENAME TABLE t1 TO t2; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-10: DROP TABLE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:10' DROP TABLE t2; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-11: CREATE TEMPORARY TABLE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:11' CREATE TEMPORARY TABLE t1(i INT); --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-12: DROP TEMPORARY TABLE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:12' DROP TEMPORARY TABLE t1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-13: CREATE VIEW --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:13' CREATE VIEW v1 as SELECT 1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-14: DROP VIEW --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:14' DROP VIEW v1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-15: CREATE USER --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:15' CREATE USER user1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-16: ALTER USER --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:16' ALTER USER user1 IDENTIFIED BY 'passwd'; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-17: GRANT --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:17' GRANT ALL ON *.* TO user1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-18: REVOKE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:18' REVOKE ALL PRIVILEGES ON *.* FROM user1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-19: DROP USER --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:19' DROP USER user1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-20: CREATE DATABASE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:20' CREATE DATABASE db1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-21: ALTER DATABASE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:21' ALTER DATABASE db1 DEFAULT CHARACTER SET utf8; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); # Check-22: DROP DATABASE --connection default --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:22' DROP DATABASE db1; --connection connection_for_table_check --source include/gtid_step_assert.inc --replace_result $master_uuid MASTER_UUID SELECT GTID_EXECUTED_FROM_TABLE(); --echo # --echo # Bug #21459999 "ASSERTION FAILURE WHEN PREVIOUSLY UNUSED TIME --echo # ZONE IS USED WITH GTID + NO BINLOG" CREATE TABLE t1(dt DATETIME) engine=INNODB; --replace_result $master_uuid MASTER_UUID --eval SET SESSION GTID_NEXT='$master_uuid:23' --echo # Below statement caused assertion failure. INSERT INTO t1 VALUES (CONVERT_TZ('2015-07-01 01:00:00', 'UTC', 'No-such-time-zone')); SET SESSION GTID_NEXT='AUTOMATIC'; DROP TABLE t1; # Cleanup --source include/gtid_utils_end.inc