diff options
author | Jan Lindström <jan.lindstrom@mariadb.com> | 2015-07-21 12:12:58 +0300 |
---|---|---|
committer | Jan Lindström <jan.lindstrom@mariadb.com> | 2015-07-21 12:12:58 +0300 |
commit | 7a9670218b2d1b5673432ebf4e0f028a7c963494 (patch) | |
tree | 20a3f1b93dd71d62dbe869ac3b925eaf4b57eeb0 /mysql-test/mysql-test-run.pl | |
parent | a63d873861c2ed2e1155850ad0d4a48b7bf79a9c (diff) | |
download | mariadb-git-7a9670218b2d1b5673432ebf4e0f028a7c963494.tar.gz |
MDEV-8474: InnoDB sets per-connection data unsafely
Analysis: At check_trx_exists function InnoDB allocates
a new trx if no trx is found from thd but this newly
allocated trx is not registered to thd. This is unsafe,
because nothing prevents InnoDB plugin from being uninstalled
while there's active transaction. This can cause crashes, hang
and any other odd behavior. It may also corrupt stack, as
functions pointers are not available after dlclose.
Fix: The fix is to use thd_set_ha_data() when
manipulating per-connection handler data. It does appropriate
plugin locking.
Diffstat (limited to 'mysql-test/mysql-test-run.pl')
-rwxr-xr-x | mysql-test/mysql-test-run.pl | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/mysql-test/mysql-test-run.pl b/mysql-test/mysql-test-run.pl index 566423a1c07..26b31d34d3c 100755 --- a/mysql-test/mysql-test-run.pl +++ b/mysql-test/mysql-test-run.pl @@ -4806,6 +4806,7 @@ sub extract_warning_lines ($$) { qr|Plugin 'FEEDBACK' registration as a INFORMATION SCHEMA failed|, qr|Failed to setup SSL|, qr|SSL error: Failed to set ciphers to use|, + qr/Plugin 'InnoDB' will be forced to shutdown/, ); my $matched_lines= []; |