[MDEV-31033] ER_KEY_NOT_FOUND upon online COPY ALTER on a partitioned table Created: 2023-04-10  Updated: 2023-08-16  Resolved: 2023-08-16

Status: Closed
Project: MariaDB Server
Component/s: Data Definition - Alter Table, Partitioning
Affects Version/s: N/A
Fix Version/s: 11.2.1

Type: Bug Priority: Critical
Reporter: Elena Stepanova Assignee: Nikita Malyavin
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
PartOf
includes MDEV-31040 Server crashes in MYSQL_LOG::is_open ... Closed
Problem/Incident
causes MDEV-31040 Server crashes in MYSQL_LOG::is_open ... Closed
is caused by MDEV-16329 Engine-independent online ALTER TABLE Closed
Relates
relates to MDEV-28808 Test MDEV-16329 (ALTER ONLINE TABLE) ... Stalled

 Description   

It appears that the "online" alter gets confused when concurrent DML moves rows between partitions.

--source include/have_partition.inc
--source include/have_debug_sync.inc
 
create table t (a int) partition by hash(a) partitions 2;
insert into t values (1),(3);
set debug_sync= 'alter_table_online_progress WAIT_FOR goforit';
--send
  alter table t force, algorithm=copy, lock=none;
 
--connect (con1,localhost,root,,)
update t set a = a + 1;
set debug_sync= 'now SIGNAL goforit';
 
--connection default
--reap
 
select * from t;
 
# Cleanup
set debug_sync= RESET;
drop table t;

bb-11.0-oalter 90cf6464fa

mysqltest: At line 15: query 'reap' failed: ER_KEY_NOT_FOUND (1032): Can't find record in 't'



 Comments   
Comment by Sergei Golubchik [ 2023-06-24 ]

cf2212791b6 is ok to push

Generated at Thu Feb 08 10:20:46 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.