Bug #113952 Updating multiple mediumtext columns causes "Undo log record is too big." error
Submitted: 11 Feb 7:02 Modified: 12 Feb 9:17
Reporter: Shinji Takeuchi Email Updates:
Status: Verified Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S2 (Serious)
Version:8.0, 8.3, 8.0.36 OS:Any
Assigned to: CPU Architecture:Any
Tags: UPDATE

[11 Feb 7:02] Shinji Takeuchi
Description:
Updating multiple indexed mediumtext columns causes "Undo log record is too big". Happens in certain length ranges ( around 7500 ).

workaround : It can be avoided by doing multiple UPDATES.

UPDATE
  `test`
SET
  `mt1` = 'test'
WHERE
  `id` = 1;

UPDATE
  `test`
SET
  `mt2` = 'test'
WHERE
  `id` = 1;

How to repeat:
CREATE TABLE `test` (
  `id` bigint NOT NULL AUTO_INCREMENT,
  `mt1` mediumtext,
  `mt2` mediumtext,
  PRIMARY KEY (`id`),
  KEY `idx_mt1` (`mt1`(191)),
  KEY `idx_mt2` (`mt2`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;

INSERT INTO
  `test` (
    `mt1`,
    `mt2`
  )
VALUES
  (
    repeat('a', 7500),
    repeat('b', 7500)
  );

UPDATE
  `test`
SET
  `mt1` = 'test',
  `mt2` = 'test'
WHERE
  `id` = 1;

cause error "Undo log record is too big."

Suggested fix:
Multiple mediumtext columns updates are handled successfully.
[12 Feb 9:17] MySQL Verification Team
Hello Shinji Takeuchi,

Thank you for the report and test case.

regards,
Umesh
[16 Feb 11:25] MySQL Verification Team
Bug #114015 marked as duplicate of this one