mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
BUG#27998 - mysqld crashed when executing INSERT DELAYED
on a BLACKHOLE table Using INSERT DELAYED on BLACKHOLE tables could lead to server crash. This happens because delayed thread wants to upgrade a lock, but BLACKHOLE tables do not have locks at all. This patch rejects attempts to use INSERT DELAYED on MERGE tables. mysql-test/r/blackhole.result: A test case for BUG#27998. mysql-test/t/blackhole.test: A test case for BUG#27998. sql/ha_blackhole.h: Removed HA_CAN_INSERT_DELAYED flag from table_flags(). The insert delayed thread upgrades the lock. Hence it is incapable to handle BLACKHOLE tables, which do not have locks at all.
This commit is contained in:
parent
a4bfd85414
commit
0eaf97393d
3 changed files with 14 additions and 2 deletions
|
@ -123,3 +123,7 @@ master-bin.000001 # Query 1 # use `test`; create table t3 like t1
|
|||
master-bin.000001 # Query 1 # use `test`; insert into t1 select * from t3
|
||||
master-bin.000001 # Query 1 # use `test`; replace into t1 select * from t3
|
||||
drop table t1,t2,t3;
|
||||
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
|
||||
INSERT DELAYED INTO t1 VALUES(1);
|
||||
ERROR HY000: Table storage engine for 't1' doesn't have this option
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -126,4 +126,13 @@ show binlog events;
|
|||
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# BUG#27998 - mysqld crashed when executing INSERT DELAYED on a BLACKHOLE
|
||||
# table
|
||||
#
|
||||
CREATE TABLE t1(a INT) ENGINE=BLACKHOLE;
|
||||
--error 1031
|
||||
INSERT DELAYED INTO t1 VALUES(1);
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
|
|
@ -46,8 +46,7 @@ public:
|
|||
{
|
||||
return(HA_NULL_IN_KEY | HA_CAN_FULLTEXT | HA_CAN_SQL_HANDLER |
|
||||
HA_DUPP_POS | HA_CAN_INDEX_BLOBS | HA_AUTO_PART_KEY |
|
||||
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_READ_RND_SAME |
|
||||
HA_CAN_INSERT_DELAYED);
|
||||
HA_FILE_BASED | HA_CAN_GEOMETRY | HA_READ_RND_SAME);
|
||||
}
|
||||
ulong index_flags(uint inx, uint part, bool all_parts) const
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue