mirror of
https://github.com/MariaDB/server.git
synced 2025-01-20 14:02:32 +01:00
7a9670218b
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.
21 lines
590 B
Text
21 lines
590 B
Text
#
|
|
# MDEV-6082 Assertion `0' fails in TC_LOG_DUMMY::log_and_order on DML after installing TokuDB at runtime on server with disabled InnoDB
|
|
#
|
|
--source include/not_embedded.inc
|
|
|
|
if (!$HA_INNODB_SO) {
|
|
--skip Need InnoDB plugin
|
|
}
|
|
install plugin innodb soname 'ha_innodb';
|
|
select engine,support,transactions,xa from information_schema.engines where engine='innodb';
|
|
create table t1 (a int) engine=innodb;
|
|
start transaction;
|
|
insert t1 values (1);
|
|
insert t1 values (2);
|
|
commit;
|
|
--source include/show_binlog_events.inc
|
|
drop table t1;
|
|
uninstall plugin innodb;
|
|
|
|
--source include/restart_mysqld.inc
|
|
|