[MDEV-21511] Wrong estimate of affected BLOB columns in update Created: 2020-01-17  Updated: 2020-04-28  Resolved: 2020-01-17

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.2.2, 10.3.0, 10.4.0, 10.5.0
Fix Version/s: 10.2.31, 10.3.22, 10.4.12, 10.5.1

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

Issue Links:
Blocks
blocks MDEV-21499 Merge new release of InnoDB 5.7.29 to... Closed
Problem/Incident
causes MDEV-21608 Assertion `n_ext == dtuple_get_n_ext(... Closed
Relates
relates to MDEV-22384 Wrong estimate of affected BLOB colum... Closed

 Description   

MySQL 5.7.29 includes the following bug fix:

Bug#30342846 : N_EXT CALCULATION IS NOT CORRECT WHICH CAUSES WRONG RECORD SIZE CALCULATION
This refines an earlier fix in MySQL 5.7.5. I verified that the changed code is covered by the test innodb.blob-crash.

The fix does not include any test case, and the consequences of this bug are unclear to me. Possibly some data corruption caused by counting some off-page columns twice?

Note: InnoDB treats a long enough VARCHAR (or even CHAR) in the same way as BLOB and TEXT and similar data types.

I did review the original change. Before that, an UPDATE operation in InnoDB was not always crash-safe. The fix was that if a non-updated column needs to be moved to off-page storage, we must include it in the undo log record.


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