diff --git a/extra/mariabackup/xtrabackup.cc b/extra/mariabackup/xtrabackup.cc index 9646e0eac03..f86395e494f 100644 --- a/extra/mariabackup/xtrabackup.cc +++ b/extra/mariabackup/xtrabackup.cc @@ -6515,3 +6515,12 @@ static int get_exepath(char *buf, size_t size, const char *argv0) return my_realpath(buf, argv0, 0); } + + +#if defined (__SANITIZE_ADDRESS__) && defined (__linux__) +/* Avoid LeakSanitizer's false positives. */ +const char* __asan_default_options() +{ + return "detect_leaks=0"; +} +#endif diff --git a/mysql-test/suite/innodb/r/innodb-alter-debug.result b/mysql-test/suite/innodb/r/innodb-alter-debug.result index 2de5288132a..ee5e681a991 100644 --- a/mysql-test/suite/innodb/r/innodb-alter-debug.result +++ b/mysql-test/suite/innodb/r/innodb-alter-debug.result @@ -89,13 +89,12 @@ INSERT INTO t1 SELECT NULL, i FROM t1; INSERT INTO t1 SELECT NULL, i FROM t1; LOCK TABLE t1 READ; connect con1,localhost,root,,test; -SET max_statement_time= 1; ALTER TABLE t1 FORCE, ALGORITHM=COPY; -ERROR 70100: Query execution was interrupted (max_statement_time exceeded) -SET DEBUG_SYNC = 'now SIGNAL stop_waining'; +connection default; +kill query @id; +connection con1; +ERROR 70100: Query execution was interrupted disconnect con1; connection default; -SET DEBUG_SYNC = 'now WAIT_FOR stop_waining'; UNLOCK TABLES; DROP TABLE t1; -SET DEBUG_SYNC = 'RESET'; diff --git a/mysql-test/suite/innodb/t/innodb-alter-debug.test b/mysql-test/suite/innodb/t/innodb-alter-debug.test index d32faf39aad..3c457294884 100644 --- a/mysql-test/suite/innodb/t/innodb-alter-debug.test +++ b/mysql-test/suite/innodb/t/innodb-alter-debug.test @@ -98,9 +98,6 @@ SET DEBUG_SYNC='RESET'; DROP TABLE t1; -# Wait till all disconnects are completed ---source include/wait_until_count_sessions.inc - --echo # --echo # MDEV-17470 Orphan temporary files after interrupted ALTER --echo # cause InnoDB: Operating system error number 17 and eventual @@ -117,14 +114,21 @@ INSERT INTO t1 SELECT NULL, i FROM t1; LOCK TABLE t1 READ; --connect (con1,localhost,root,,test) -SET max_statement_time= 1; ---error ER_STATEMENT_TIMEOUT -ALTER TABLE t1 FORCE, ALGORITHM=COPY; -SET DEBUG_SYNC = 'now SIGNAL stop_waining'; ---disconnect con1 +let $ID= `SELECT @id := CONNECTION_ID()`; +send ALTER TABLE t1 FORCE, ALGORITHM=COPY; --connection default -SET DEBUG_SYNC = 'now WAIT_FOR stop_waining'; +let $wait_condition= select 1 from information_schema.processlist where state='Waiting for table metadata lock'; +source include/wait_condition.inc; +let $ignore= `SELECT @id := $ID`; +kill query @id; +--connection con1 +--error ER_QUERY_INTERRUPTED +reap; +--disconnect con1 +--connection default UNLOCK TABLES; DROP TABLE t1; -SET DEBUG_SYNC = 'RESET'; + +# Wait till all disconnects are completed +--source include/wait_until_count_sessions.inc