[MDEV-21679] innodb_zip.index_large_prefix_4k fails with ER_TOO_BIG_ROWSIZE Created: 2020-02-06  Updated: 2023-09-11  Resolved: 2023-09-11

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB, Tests
Affects Version/s: 10.2, 10.3, 10.4
Fix Version/s: 10.4.32, 10.5.23, 10.6.16, 10.10.7, 10.11.6, 11.0.4, 11.1.3

Type: Bug Priority: Major
Reporter: Elena Stepanova Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: None

Issue Links:
Blocks
blocks MDEV-21664 Add opt files for have_innodb_Xk.inc Closed

 Description   

10.2 a241d411

$ perl ./mtr innodb_zip.index_large_prefix_4k --mysqld=--innodb-page-size=4k
 
innodb_zip.index_large_prefix_4k 'innodb' [ fail ]
        Test ended at 2020-02-06 21:34:29
 
CURRENT_TEST: innodb_zip.index_large_prefix_4k
mysqltest: At line 159: query 'create index idx1 on worklog5743_2(a2(4000))' failed: 1118: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
 
The result from queries just before the failure was:
< snip >
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
show warnings;
Level	Code	Message
Error	1118	Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
create index idx4 on worklog5743_1(a2(434));
show warnings;
Level	Code	Message
create index idx5 on worklog5743_1(a1, a2(430));
ERROR 42000: Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
show warnings;
Level	Code	Message
Error	1118	Row size too large. The maximum row size for the used table type, not counting BLOBs, is 1982. This includes storage overhead, check the manual. You have to change some columns to TEXT or BLOBs
create index idx6 on worklog5743_1(a1, a2(428));
show warnings;
Level	Code	Message
set global innodb_large_prefix=1;
Warnings:
Warning	131	Using innodb_large_prefix is deprecated and the parameter may be removed in future releases. See https://mariadb.com/kb/en/library/xtradbinnodb-file-format/
SET sql_mode= '';
create index idx1 on worklog5743_2(a2(4000));
 
More results from queries before failure can be found in /data/bld/10.2-debug-nightly/mysql-test/var/log/index_large_prefix_4k.log

Reproducible on 10.2-10.5.

The test never runs anywhere, because it has an include file which requires innodb-page-size=4K, but the test doesn't have the option file, and the include file doesn't set it, it only checks the value. So the test always gets skipped.

The failure was revealed when I tried to do MDEV-21664, which makes these include files enforce the setting rather than just check it. So, it should be enough to fix the test itself without adding the opt file for it, after MDEV-21664 is pushed, the opt file won't be necessary.



 Comments   
Comment by Marko Mäkelä [ 2023-09-11 ]

This test is for the deprecated and removed option innodb_index_large_prefix, which was disabled by default until 10.2, wishing the data files to be portable to older server versions than MySQL or MariaDB 5.5. At the time MariaDB Server 10.2 was released, the oldest in-support server version was 5.5.

Generated at Thu Feb 08 09:08:59 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.