1
0
mirror of https://github.com/MariaDB/server.git synced 2025-08-07 00:04:31 +03:00

MDEV-35420 Server aborts while deleting the record in spatial index

- This issue caused by commit a032f14b342c782b82dfcd9235805bee446e6fe8(MDEV-33559).
In MDEV-33559, matched_rec::block was changed to pointer
and assinged with the help of buf_block_alloc(). But patch
fails to check for the block can be nullptr in
rtr_check_discard_page().

rtr_cur_search_with_match(): Acquire rtr_match_mutex before
creating shadow block for the matched records

rtr_pcur_move_to_next(): Copy the shadow block to page cursor
block under rtr_match_mutex
This commit is contained in:
Thirunarayanan Balathandayuthapani
2025-03-14 13:45:09 +05:30
committed by Sergei Golubchik
parent 56bc6901d6
commit f1deebbb0b
3 changed files with 44 additions and 8 deletions

View File

@@ -412,3 +412,16 @@ update t1 set a=point(5,5), b=point(5,5), c=5 where i < 3;
ERROR HY000: Lost connection to MySQL server during query
insert into t1 values(5, point(5,5), point(5,5), 5);
drop table t1;
#
# MDEV-35420 Server aborts while deleting the record
# in spatial index
#
CREATE TABLE t1 (c POINT NOT NULL, SPATIAL(c)) engine=InnoDB;
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
SET STATEMENT unique_checks=0,foreign_key_checks=0 FOR
START TRANSACTION;
INSERT INTO t1 SELECT ST_GeomFromText('POINT(114368751 656950466)') FROM seq_1_to_512;
ROLLBACK;
DROP TABLE t1;