| 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
