Bug #87464 | GTID restriction on temporary tables may be too heavy-handed | ||
---|---|---|---|
Submitted: | 18 Aug 2017 2:19 | Modified: | 23 Aug 2017 6:38 |
Reporter: | Andrew Garner | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: Replication | Severity: | S3 (Non-critical) |
Version: | 5.7, 5.7.19 | OS: | Any |
Assigned to: | CPU Architecture: | Any |
[18 Aug 2017 2:19]
Andrew Garner
[21 Aug 2017 6:21]
Andrew Garner
This behavior is still broken in MySQL 5.7.19 without the patch for https://bugs.mysql.com/bug.php?id=85258. My testing here was sloppy and done against Percona Server 5.7.18 which has the patch from bug 85258 applied and so no longer requires the additional guard against temporary tables in a multi-transaction context. At this point, I suppose this is a feature request that if bug 85258 is fixed then also relax the GTID constraints on temporary tables.
[23 Aug 2017 6:38]
MySQL Verification Team
Hello Andrew Garner, Thank you for the report. Verifying this as a feature request for relaxing the GTID constraints on temporary tables post bug 85258 fix. Thanks, Umesh
[23 Aug 2017 6:39]
MySQL Verification Team
-- 5.7.19 [umshastr@hod03]/export/umesh/server/binaries/GABuilds/mysql-5.7.19/mysql-test: ./mtr rpl_bug77354 Logging: ./mtr rpl_bug77354 MySQL Version 5.7.19 Checking supported features... - SSL connections supported Collecting tests... Checking leftover processes... Removing old var directory... Creating var directory '/export/umesh/server/binaries/GABuilds/mysql-5.7.19/mysql-test/var'... Installing system database... Using parallel: 1 ============================================================================== TEST RESULT TIME (ms) or COMMENT -------------------------------------------------------------------------- worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 13000..13009 include/master-slave.inc [connection master] CREATE FUNCTION `test_func` () RETURNS varchar(30) CHARSET utf8 BEGIN DROP TEMPORARY TABLE IF EXISTS test_func_1; DROP TEMPORARY TABLE IF EXISTS test_func_2; DROP TEMPORARY TABLE IF EXISTS test_func_3; DROP TEMPORARY TABLE IF EXISTS test_func_4; RETURN "hello"; END// main.rpl_bug77354 [ fail ] Test ended at 2017-08-23 08:33:00 CURRENT_TEST: main.rpl_bug77354 mysqltest: At line 26: query 'SELECT test_func()' failed: 1787: Statement violates GTID consistency: CREATE TEMPORARY TABLE and DROP TEMPORARY TABLE can only be executed outside transactional context. These statements are also not allowed in a function or trigger because functions and triggers are also considered to be multi-statement transactions. safe_process[6713]: Child process: 6714, exit: 1 - the logfile can be found in '/export/umesh/server/binaries/GABuilds/mysql-5.7.19/mysql-test/var/log/main.rpl_bug77354/rpl_bug77354.log' -------------------------------------------------------------------------- The servers were restarted 0 times Spent 0.000 of 4 seconds executing testcases Completed: Failed 1/1 tests, 0.00% were successful. Failing test(s): main.rpl_bug77354 The log files in var/log may give you some hint of what went wrong. If you want to report this error, please read first the documentation at http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html mysql-test-run: *** ERROR: there were failing test cases