MDEV-7754: innodb assert "array->n_elems < array->max_elems" on a huge blob update

Replace static array of thread sync levels with std::vector.
This commit is contained in:
Jan Lindström 2015-03-17 16:03:05 +02:00
parent c41e4d3b49
commit 0563f49ba3
5 changed files with 33 additions and 0 deletions

View file

@ -0,0 +1,7 @@
call mtr.add_suppression("Resizing redo log from *");
call mtr.add_suppression("Starting to delete and rewrite log files.");
call mtr.add_suppression("New log files created, LSN=*");
create table foo (id varchar(37) not null, content longblob) engine=INNODB;
insert into foo (id, content) values('xyz', '');
update foo set content=repeat('a', 43941888) where id='xyz';
drop table foo;

View file

@ -0,0 +1,2 @@
--max-allowed-packet=128M
--innodb-log-file-size=210M

View file

@ -0,0 +1,20 @@
-- source include/have_innodb.inc
-- source include/big_test.inc
-- source include/not_embedded.inc
--disable_query_log
let $status_orig=`SELECT @@innodb_status_output`;
--enable_query_log
call mtr.add_suppression("Resizing redo log from *");
call mtr.add_suppression("Starting to delete and rewrite log files.");
call mtr.add_suppression("New log files created, LSN=*");
create table foo (id varchar(37) not null, content longblob) engine=INNODB;
insert into foo (id, content) values('xyz', '');
update foo set content=repeat('a', 43941888) where id='xyz';
drop table foo;
--disable_query_log
EVAL SET GLOBAL innodb_status_output = $status_orig;
--enable_query_log

View file

@ -47,6 +47,8 @@ Created 9/5/1995 Heikki Tuuri
#include "ha_prototypes.h"
#include "my_cpu.h"
#include <vector>
/* There is a bug in Visual Studio 2010.
Visual Studio has a feature "Checked Iterators". In a debug build, every
iterator operation is checked at runtime for errors, e.g., out of range.

View file

@ -48,6 +48,8 @@ Created 9/5/1995 Heikki Tuuri
#include "ha_prototypes.h"
#include "my_cpu.h"
#include <vector>
/* There is a bug in Visual Studio 2010.
Visual Studio has a feature "Checked Iterators". In a debug build, every
iterator operation is checked at runtime for errors, e.g., out of range.