Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)' failed in cmp_rec_rec_simple_field #3656

Open
wants to merge 1 commit into
base: 10.11
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions mysql-test/suite/innodb/r/alter_copy_bulk.result
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,28 @@ SELECT COUNT(*) FROM t;
COUNT(*)
2
DROP TABLE t1, t2, t;
#
# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
# failed in cmp_rec_rec_simple_field
#
CREATE TABLE t1(a BLOB, b VARCHAR(2048), PRIMARY KEY (b)) ENGINE=InnoDB;
INSERT INTO t1 VALUES
(REPEAT('x',4805),'a'), (REPEAT('x',16111),'b'),
(REPEAT('x',65535),'c'), (REPEAT('x',11312),'d'),
(REPEAT('x',35177),'e'), (REPEAT('x',65535),'f'),
(REPEAT('x',1988),'g'), (NULL,REPEAT('x',2048)),
(REPEAT('x',2503),'h'), (REPEAT('x',33152),'i'),
(REPEAT('x',65535),'j'), (REPEAT('x',1988),'k'),
(REPEAT('x',65535),'l'), (REPEAT('x',65535),'m'),
(REPEAT('x',65535),'n'), (REPEAT('x',65535),'o'),
(REPEAT('x',1988),'p'), (REPEAT('x',2503),'q'),
(REPEAT('x',65535),'r'), (REPEAT('x',65535),'s'),
(REPEAT('x',65535),'t'), (REPEAT('x',3169),'u'),
(REPEAT('x',7071),'v'), (REPEAT('x',16111),'w'),
(REPEAT('x',2325),'x'), (REPEAT('x',33152),'y'),
(REPEAT('x',65535),'z'), (REPEAT('x',65535),'aa'),
(REPEAT('x',16111),'bb'), (REPEAT('x',4805),'cc'),
(REPEAT('x',65535),'dd');
Thirunarayanan marked this conversation as resolved.
Show resolved Hide resolved
ALTER TABLE t1 FORCE, ALGORITHM=COPY;
DROP TABLE t1;
SET GLOBAL innodb_stats_persistent=@default_stats_persistent;
8 changes: 8 additions & 0 deletions mysql-test/suite/innodb/r/innodb-64k-crash,dynamic.rdiff
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--- innodb-64k-crash.result 2024-11-28 10:37:26.491384671 +0530
+++ innodb-64k-crash.reject 2024-11-28 11:05:46.461405444 +0530
@@ -334,5 +334,4 @@
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024));
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
DROP TABLE t1;
52 changes: 52 additions & 0 deletions mysql-test/suite/innodb/r/innodb-64k-crash,redundant.rdiff
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
--- innodb-64k-crash.result 2024-11-28 10:37:26.491384671 +0530
+++ innodb-64k-crash.reject 2024-11-28 11:10:13.381250612 +0530
@@ -290,49 +290,3 @@
# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
# failed in cmp_rec_rec_simple_field
#
-CREATE TABLE t1(f1 int not null, f2 text, f3 text, f4 text,
-f5 text, f6 text, f7 text, f8 text,
-f9 text, f10 text, f11 text, f12 text,
-f13 text, f14 text, f15 text, f16 text,
-f17 text, f18 text, f19 text, f20 text,
-f21 text, f22 text, f23 text, f24 text,
-f25 text, PRIMARY KEY(f1))ENGINE=InnoDB;
-SET STATEMENT unique_checks=0,foreign_key_checks=0 FOR
-INSERT INTO t1 VALUES(1, REPEAT('a', 1024), REPEAT('b', 1024),
-REPEAT('c', 1024), REPEAT('d', 1024),
-REPEAT('e', 1024), REPEAT('f', 1024),
-REPEAT('g', 4096), REPEAT('h', 1024),
-REPEAT('i', 1024), REPEAT('j', 1024),
-REPEAT('k', 1024), REPEAT('l', 1024),
-REPEAT('m', 1024), REPEAT('n', 1024),
-REPEAT('o', 1024), REPEAT('p', 1024),
-REPEAT('q', 1024), REPEAT('r', 1024),
-REPEAT('s', 1024), REPEAT('t', 1024),
-REPEAT('u', 1024), REPEAT('v', 1024),
-REPEAT('w', 1024), REPEAT('x', 1024)),
-(2, REPEAT('a', 1024), REPEAT('b', 1024),
-REPEAT('c', 1024), REPEAT('d', 1024),
-REPEAT('e', 1024), REPEAT('f', 1024),
-REPEAT('g', 4096), REPEAT('h', 1024),
-REPEAT('i', 1024), REPEAT('j', 1024),
-REPEAT('k', 1024), REPEAT('l', 1024),
-REPEAT('m', 1024), REPEAT('n', 1024),
-REPEAT('o', 1024), REPEAT('p', 1024),
-REPEAT('q', 1024), REPEAT('r', 1024),
-REPEAT('s', 1024), REPEAT('t', 1024),
-REPEAT('u', 1024), REPEAT('v', 1024),
-REPEAT('w', 1024), REPEAT('x', 1024)),
-(3, REPEAT('a', 1024), REPEAT('b', 1024),
-REPEAT('c', 1024), REPEAT('d', 1024),
-REPEAT('e', 1024), REPEAT('f', 1024),
-REPEAT('g', 4096), REPEAT('h', 1024),
-REPEAT('i', 1024), REPEAT('j', 1024),
-REPEAT('k', 1024), REPEAT('l', 1024),
-REPEAT('m', 1024), REPEAT('n', 1024),
-REPEAT('o', 1024), REPEAT('p', 1024),
-REPEAT('q', 1024), REPEAT('r', 1024),
-REPEAT('s', 1024), REPEAT('t', 1024),
-REPEAT('u', 1024), REPEAT('v', 1024),
-REPEAT('w', 1024), REPEAT('x', 1024));
-ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
-DROP TABLE t1;
50 changes: 50 additions & 0 deletions mysql-test/suite/innodb/r/innodb-64k-crash.result
Original file line number Diff line number Diff line change
Expand Up @@ -286,3 +286,53 @@ Table Op Msg_type Msg_text
test.t1 check status OK
test.t2 check status OK
drop table t1,t2;
#
# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
# failed in cmp_rec_rec_simple_field
#
CREATE TABLE t1(f1 int not null, f2 text, f3 text, f4 text,
f5 text, f6 text, f7 text, f8 text,
f9 text, f10 text, f11 text, f12 text,
f13 text, f14 text, f15 text, f16 text,
f17 text, f18 text, f19 text, f20 text,
f21 text, f22 text, f23 text, f24 text,
f25 text, PRIMARY KEY(f1))ENGINE=InnoDB;
SET STATEMENT unique_checks=0,foreign_key_checks=0 FOR
INSERT INTO t1 VALUES(1, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024)),
(2, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024)),
(3, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024));
ERROR 42000: Row size too large (> 16383). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
DROP TABLE t1;
8 changes: 7 additions & 1 deletion mysql-test/suite/innodb/r/insert_into_empty,32k.rdiff
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
@@ -377,8 +377,6 @@
--- insert_into_empty.result
+++ insert_into_empty,32k.result
@@ -446,12 +446,9 @@
c09 text, c10 text, c11 text, c12 text) ENGINE=InnoDB;
SET GLOBAL INNODB_DEFAULT_ROW_FORMAT= COMPACT;
ALTER TABLE t1 FORCE;
Expand All @@ -7,3 +9,7 @@
INSERT IGNORE INTO t1 VALUES
(1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
(2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
34 changes: 31 additions & 3 deletions mysql-test/suite/innodb/r/insert_into_empty,4k.rdiff
Original file line number Diff line number Diff line change
@@ -1,10 +1,38 @@
--- a/mysql-test/suite/innodb/r/insert_into_empty.result
+++ b/mysql-test/suite/innodb/r/insert_into_empty.result
@@ -430,6 +430,7 @@
--- insert_into_empty.result
+++ insert_into_empty,4k.result
@@ -451,7 +451,7 @@
INSERT IGNORE INTO t1 VALUES
(1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
(2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size too large (> 1982). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
@@ -541,26 +541,4 @@
DELETE FROM t1;
commit;
DROP TABLE t1;
-#
-# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
-# failed in cmp_rec_rec_simple_field
-#
-CREATE TABLE t1(a BLOB, b VARCHAR(2048), PRIMARY KEY (b)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (REPEAT('x',4805),'a'), (REPEAT('x',16111),'b'),
-(REPEAT('x',65535),'c'), (REPEAT('x',11312),'d'),
-(REPEAT('x',35177),'e'), (REPEAT('x',65535),'f'),
-(REPEAT('x',1988),'g'), (NULL,REPEAT('x',2048)),
-(REPEAT('x',2503),'h'), (REPEAT('x',33152),'i'),
-(REPEAT('x',65535),'j'), (REPEAT('x',1988),'k'),
-(REPEAT('x',65535),'l'), (REPEAT('x',65535),'m'),
-(REPEAT('x',65535),'n'), (REPEAT('x',65535),'o'),
-(REPEAT('x',1988),'p'), (REPEAT('x',2503),'q'),
-(REPEAT('x',65535),'r'), (REPEAT('x',65535),'s'),
-(REPEAT('x',65535),'t'), (REPEAT('x',3169),'u'),
-(REPEAT('x',7071),'v'), (REPEAT('x',16111),'w'),
-(REPEAT('x',2325),'x'), (REPEAT('x',33152),'y'),
-(REPEAT('x',65535),'z'), (REPEAT('x',65535),'aa'),
-(REPEAT('x',16111),'bb'), (REPEAT('x',4805),'cc'),
-(REPEAT('x',65535),'dd');
-DROP TABLE t1;
# End of 10.11 tests
8 changes: 7 additions & 1 deletion mysql-test/suite/innodb/r/insert_into_empty,64k.rdiff
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
@@ -377,8 +377,6 @@
--- insert_into_empty.result
+++ insert_into_empty,64k.result
@@ -446,12 +446,9 @@
c09 text, c10 text, c11 text, c12 text) ENGINE=InnoDB;
SET GLOBAL INNODB_DEFAULT_ROW_FORMAT= COMPACT;
ALTER TABLE t1 FORCE;
Expand All @@ -7,3 +9,7 @@
INSERT IGNORE INTO t1 VALUES
(1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
(2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
38 changes: 38 additions & 0 deletions mysql-test/suite/innodb/r/insert_into_empty,8k.rdiff
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
--- insert_into_empty.result
+++ insert_into_empty,8k.result
@@ -451,7 +451,7 @@
INSERT IGNORE INTO t1 VALUES
(1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
(2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
-ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
+ERROR 42000: Row size too large (> 4030). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
@@ -541,26 +541,4 @@
DELETE FROM t1;
commit;
DROP TABLE t1;
-#
-# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
-# failed in cmp_rec_rec_simple_field
-#
-CREATE TABLE t1(a BLOB, b VARCHAR(2048), PRIMARY KEY (b)) ENGINE=InnoDB;
-INSERT INTO t1 VALUES (REPEAT('x',4805),'a'), (REPEAT('x',16111),'b'),
-(REPEAT('x',65535),'c'), (REPEAT('x',11312),'d'),
-(REPEAT('x',35177),'e'), (REPEAT('x',65535),'f'),
-(REPEAT('x',1988),'g'), (NULL,REPEAT('x',2048)),
-(REPEAT('x',2503),'h'), (REPEAT('x',33152),'i'),
-(REPEAT('x',65535),'j'), (REPEAT('x',1988),'k'),
-(REPEAT('x',65535),'l'), (REPEAT('x',65535),'m'),
-(REPEAT('x',65535),'n'), (REPEAT('x',65535),'o'),
-(REPEAT('x',1988),'p'), (REPEAT('x',2503),'q'),
-(REPEAT('x',65535),'r'), (REPEAT('x',65535),'s'),
-(REPEAT('x',65535),'t'), (REPEAT('x',3169),'u'),
-(REPEAT('x',7071),'v'), (REPEAT('x',16111),'w'),
-(REPEAT('x',2325),'x'), (REPEAT('x',33152),'y'),
-(REPEAT('x',65535),'z'), (REPEAT('x',65535),'aa'),
-(REPEAT('x',16111),'bb'), (REPEAT('x',4805),'cc'),
-(REPEAT('x',65535),'dd');
-DROP TABLE t1;
# End of 10.11 tests
23 changes: 23 additions & 0 deletions mysql-test/suite/innodb/r/insert_into_empty.result
Original file line number Diff line number Diff line change
Expand Up @@ -451,6 +451,7 @@ Warning 139 Row size too large (> 8126). Changing some columns to TEXT or BLOB o
INSERT IGNORE INTO t1 VALUES
(1, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107)),
(2, REPEAT('x',4805), REPEAT('t',2211), REPEAT('u',974), REPEAT('e',871), REPEAT('z',224), REPEAT('j',978), REPEAT('n',190), REPEAT('t',888), REPEAT('x',32768), REPEAT('e',968), REPEAT('b',913), REPEAT('x',12107));
ERROR 42000: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check status OK
Expand Down Expand Up @@ -540,4 +541,26 @@ INSERT INTO t1 VALUES(2,0);
DELETE FROM t1;
commit;
DROP TABLE t1;
#
# MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
# failed in cmp_rec_rec_simple_field
#
CREATE TABLE t1(a BLOB, b VARCHAR(2048), PRIMARY KEY (b)) ENGINE=InnoDB;
INSERT INTO t1 VALUES (REPEAT('x',4805),'a'), (REPEAT('x',16111),'b'),
(REPEAT('x',65535),'c'), (REPEAT('x',11312),'d'),
(REPEAT('x',35177),'e'), (REPEAT('x',65535),'f'),
(REPEAT('x',1988),'g'), (NULL,REPEAT('x',2048)),
(REPEAT('x',2503),'h'), (REPEAT('x',33152),'i'),
(REPEAT('x',65535),'j'), (REPEAT('x',1988),'k'),
(REPEAT('x',65535),'l'), (REPEAT('x',65535),'m'),
(REPEAT('x',65535),'n'), (REPEAT('x',65535),'o'),
(REPEAT('x',1988),'p'), (REPEAT('x',2503),'q'),
(REPEAT('x',65535),'r'), (REPEAT('x',65535),'s'),
(REPEAT('x',65535),'t'), (REPEAT('x',3169),'u'),
(REPEAT('x',7071),'v'), (REPEAT('x',16111),'w'),
(REPEAT('x',2325),'x'), (REPEAT('x',33152),'y'),
(REPEAT('x',65535),'z'), (REPEAT('x',65535),'aa'),
(REPEAT('x',16111),'bb'), (REPEAT('x',4805),'cc'),
(REPEAT('x',65535),'dd');
DROP TABLE t1;
# End of 10.11 tests
25 changes: 25 additions & 0 deletions mysql-test/suite/innodb/t/alter_copy_bulk.test
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,29 @@ CREATE TABLE t engine=innodb
SELECT t2.f2 FROM t2 JOIN t1 ON t1.f1 = t2.f1 AND t1.f3 = '' AND t1.f2=1 ;
SELECT COUNT(*) FROM t;
DROP TABLE t1, t2, t;

--echo #
--echo # MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
--echo # failed in cmp_rec_rec_simple_field
--echo #
CREATE TABLE t1(a BLOB, b VARCHAR(2048), PRIMARY KEY (b)) ENGINE=InnoDB;
INSERT INTO t1 VALUES
(REPEAT('x',4805),'a'), (REPEAT('x',16111),'b'),
(REPEAT('x',65535),'c'), (REPEAT('x',11312),'d'),
(REPEAT('x',35177),'e'), (REPEAT('x',65535),'f'),
(REPEAT('x',1988),'g'), (NULL,REPEAT('x',2048)),
(REPEAT('x',2503),'h'), (REPEAT('x',33152),'i'),
(REPEAT('x',65535),'j'), (REPEAT('x',1988),'k'),
(REPEAT('x',65535),'l'), (REPEAT('x',65535),'m'),
(REPEAT('x',65535),'n'), (REPEAT('x',65535),'o'),
(REPEAT('x',1988),'p'), (REPEAT('x',2503),'q'),
(REPEAT('x',65535),'r'), (REPEAT('x',65535),'s'),
(REPEAT('x',65535),'t'), (REPEAT('x',3169),'u'),
(REPEAT('x',7071),'v'), (REPEAT('x',16111),'w'),
(REPEAT('x',2325),'x'), (REPEAT('x',33152),'y'),
(REPEAT('x',65535),'z'), (REPEAT('x',65535),'aa'),
(REPEAT('x',16111),'bb'), (REPEAT('x',4805),'cc'),
(REPEAT('x',65535),'dd');
ALTER TABLE t1 FORCE, ALGORITHM=COPY;
DROP TABLE t1;
SET GLOBAL innodb_stats_persistent=@default_stats_persistent;
1 change: 1 addition & 0 deletions mysql-test/suite/innodb/t/innodb-64k-crash.opt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
--innodb_sort_buffer_size=65536
62 changes: 62 additions & 0 deletions mysql-test/suite/innodb/t/innodb-64k-crash.test
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
--source include/have_innodb_64k.inc
# Embedded server does not support restarting
--source include/not_embedded.inc
--source innodb_default_row_format.inc

let $MYSQLD_DATADIR= `select @@datadir`;

Expand Down Expand Up @@ -314,3 +315,64 @@ connection default;

check table t1,t2;
drop table t1,t2;

--echo #
--echo # MDEV-35475 Assertion `!rec_offs_nth_extern(offsets1, n)'
--echo # failed in cmp_rec_rec_simple_field
--echo #
let $row_format= `select @@global.innodb_default_row_format`;
if ($row_format != "redundant")
{
CREATE TABLE t1(f1 int not null, f2 text, f3 text, f4 text,
f5 text, f6 text, f7 text, f8 text,
f9 text, f10 text, f11 text, f12 text,
f13 text, f14 text, f15 text, f16 text,
f17 text, f18 text, f19 text, f20 text,
f21 text, f22 text, f23 text, f24 text,
f25 text, PRIMARY KEY(f1))ENGINE=InnoDB;
let $error_code = ER_TOO_BIG_ROWSIZE;
if ($row_format == "dynamic")
{
let $error_code = 0;
}

--error $error_code
SET STATEMENT unique_checks=0,foreign_key_checks=0 FOR
INSERT INTO t1 VALUES(1, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024)),
(2, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024)),
(3, REPEAT('a', 1024), REPEAT('b', 1024),
REPEAT('c', 1024), REPEAT('d', 1024),
REPEAT('e', 1024), REPEAT('f', 1024),
REPEAT('g', 4096), REPEAT('h', 1024),
REPEAT('i', 1024), REPEAT('j', 1024),
REPEAT('k', 1024), REPEAT('l', 1024),
REPEAT('m', 1024), REPEAT('n', 1024),
REPEAT('o', 1024), REPEAT('p', 1024),
REPEAT('q', 1024), REPEAT('r', 1024),
REPEAT('s', 1024), REPEAT('t', 1024),
REPEAT('u', 1024), REPEAT('v', 1024),
REPEAT('w', 1024), REPEAT('x', 1024));
DROP TABLE t1;
}
Loading