Databases 21 min read

Analysis of a MySQL 8.0.35 Crash Bug Caused by InnoDB Assertion Failure

This article details a MySQL 8.0.35 crash caused by an InnoDB assertion that a VARCHAR length exceeds 65,535 bytes, explains the error‑log and core‑dump analysis, shows how to reproduce the bug, and notes its resolution in MySQL 8.0.35.

Aikesheng Open Source Community
Aikesheng Open Source Community
Aikesheng Open Source Community
Analysis of a MySQL 8.0.35 Crash Bug Caused by InnoDB Assertion Failure

In this article the author, a junior DBA, describes a crash bug discovered in MySQL 8.0.35 that is triggered by an InnoDB assertion failure when a VARCHAR length exceeds the 65 535‑byte limit.

The error log shows an Assertion failure: row0mysql.cc:165:len < 256*256 , followed by a SIGABRT signal. By examining the source file row0mysql.cc the failing assertion is found in the function row_mysql_store_true_var_len , which calls the macro ut_a . When the condition is false, ut_dbg_assertion_failed prints diagnostic information and invokes abort() .

The article explains the ut_a macro, the ut_dbg_assertion_failed implementation, and how the abort signal (6) terminates the process. It then shows how to analyse the generated corefile with gdb , mapping the back‑trace to the offending function and revealing that the length value is the constant UNIV_MULTI_VALUE_ARRAY_MARKER (4294967292), far beyond the allowed limit.

To reproduce the bug the author creates a table with a JSON virtual column, performs a repeatable‑read transaction, updates the column in another session, and runs a query that forces InnoDB to read the undo log, causing the same assertion failure and crash.

The bug was reported to Oracle and fixed in MySQL 8.0.35 (Bug#35039937). References and further reading are provided.

InnoDBMySQLCore DumpBug Analysisassertion-failuredatabase debugging
Aikesheng Open Source Community
Written by

Aikesheng Open Source Community

The Aikesheng Open Source Community provides stable, enterprise‑grade MySQL open‑source tools and services, releases a premium open‑source component each year (1024), and continuously operates and maintains them.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.