Bug #119148 InnoDB crash with Assertion failure: trx0trx.cc:1988:UT_LIST_GET_LEN(trx->lock.trx_locks)
Submitted: 14 Oct 7:54 Modified: 14 Oct 8:44
Reporter: Zeng Zihao Email Updates:
Status: Need Feedback Impact on me:
None 
Category:MySQL Server: InnoDB storage engine Severity:S3 (Non-critical)
Version:8.0.41 OS:Any
Assigned to: CPU Architecture:Any

[14 Oct 7:54] Zeng Zihao
Description:
When we run a SQL to update a table with 1664 fields, it crashes.

2025-09-27T13:45:17.652802+08:00 975 [ERROR] [MY-013183] [InnoDB] Assertion failure: trx0trx.cc:1988:UT_LIST_GET_LEN(trx->lock.trx_locks) == 0 thread 140202216961792
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
2025-09-27T05:45:17Z UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
BuildID[sha1]=47a5f369b5584e7ca85dbc7ae7d047233beb2c0f
Thread pointer: 0x564caeeb9810
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = 7f835f569028 thread_stack 0x100000
2025-09-27T13:45:17.717698+08:00 950 [System] [MY-080000] [DSTORE] Log DDL success, record:[ID:8408295, ThreadID:950, Type:DROP_SEGMENT_LOG, SegmentID:[5121,427], SegmentType:0, Ctid:[PageID:[5122,12655],Offset:95]], xid:2725, use autonomous trx:0.
2025-09-27T13:45:17.719576+08:00 950 [System] [MY-080000] [DSTORE] Log DDL success, record:[ID:8408296, ThreadID:950, Type:DROP_SEGMENT_LOG, SegmentID:[5121,1259], SegmentType:0, Ctid:[PageID:[5122,19026],Offset:101]], xid:2725, use autonomous trx:0.
2025-09-27T13:45:17.723419+08:00 950 [System] [MY-080000] [DSTORE] Log DDL success, record:[ID:8408298, ThreadID:950, Type:DROP_SEGMENT_LOG, SegmentID:[5121,11939], SegmentType:1, Ctid:[PageID:[5122,19018],Offset:98]], xid:2725, use autonomous trx:0.
/data/dstore/engine/mysql/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x3d) [0x564c97c8a8fd]
/data/dstore/engine/mysql/bin/mysqld(print_fatal_signal(int)+0x393) [0x564c96b1c5b3]
/data/dstore/engine/mysql/bin/mysqld(my_server_abort()+0x7e) [0x564c96b1c6fe]
/data/dstore/engine/mysql/bin/mysqld(my_abort()+0xa) [0x564c97c8498a]
/data/dstore/engine/mysql/bin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x345) [0x564c97edbaf5]
/data/dstore/engine/mysql/bin/mysqld(trx_commit_low(trx_t*, mtr_t*)+0x608) [0x564c97ed0ff8]
/data/dstore/engine/mysql/bin/mysqld(trx_commit(trx_t*)+0x124) [0x564c97ed1184]
/data/dstore/engine/mysql/bin/mysqld(trx_commit_for_mysql(trx_t*)+0x21c) [0x564c97ed29ec]
/data/dstore/engine/mysql/bin/mysqld(innobase_commit_low(trx_t*)+0x19) [0x564c97cc0e79]
/data/dstore/engine/mysql/bin/mysqld(+0x23f518f) [0x564c97cee18f]
/data/dstore/engine/mysql/bin/mysqld(ha_commit_attachable(THD*)+0x151) [0x564c96c27d01]
/data/dstore/engine/mysql/bin/mysqld(trans_commit_attachable(THD*)+0x22) [0x564c96ab8722]
/data/dstore/engine/mysql/bin/mysqld(THD::Attachable_trx::~Attachable_trx()+0x25) [0x564c968ecc45]
/data/dstore/engine/mysql/bin/mysqld(THD::Attachable_trx::~Attachable_trx()+0x12) [0x564c968eccc2]
/data/dstore/engine/mysql/bin/mysqld(THD::end_attachable_transaction()+0x1b) [0x564c968eb03b]
/data/dstore/engine/mysql/bin/mysqld(dd::Transaction_ro::~Transaction_ro()+0x2a) [0x564c97a2e6ba]
/data/dstore/engine/mysql/bin/mysqld(bool dd::cache::Storage_adapter::get<dd::Item_name_key, dd::Abstract_table>(THD*, dd::Item_name_key const&, enum_tx_isolation, bool, dd::Abstract_table const**)+0x1b1) [0x564c97aa6d61]
/data/dstore/engine/mysql/bin/mysqld(bool dd::cache::Shared_dictionary_cache::get<dd::Item_name_key, dd::Abstract_table>(THD*, dd::Item_name_key const&, dd::cache::Cache_element<dd::Abstract_table>**)+0x7f) [0x564c97a96abf]
/data/dstore/engine/mysql/bin/mysqld(bool dd::cache::Dictionary_client::acquire<dd::Item_name_key, dd::Abstract_table>(dd::Item_name_key const&, dd::Abstract_table const**, bool*, bool*)+0x1d5) [0x564c97a3c315]
2025-09-27T13:45:17.725239+08:00 950 [System] [MY-080000] [DSTORE] Log DDL success, record:[ID:8408299, ThreadID:950, Type:DROP_SEGMENT_LOG, SegmentID:[5121,15179], SegmentType:1, Ctid:[PageID:[5122,18968],Offset:111]], xid:2725, use autonomous trx:0.
/data/dstore/engine/mysql/bin/mysqld(bool dd::cache::Dictionary_client::acquire<dd::Abstract_table>(std::__cxx11::basic_string<char, std::char_traits<char>, Stateless_allocator<char, dd::String_type_alloc, My_free_functor> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, Stateless_allocator<char, dd::String_type_alloc, My_free_functor> > const&, dd::Abstract_table const**)+0x19a) [0x564c97a40aaa]
/data/dstore/engine/mysql/bin/mysqld(get_table_share(THD*, char const*, char const*, char const*, unsigned long, bool, bool)+0xa49) [0x564c968dae99]
/data/dstore/engine/mysql/bin/mysqld(open_table(THD*, Table_ref*, Open_table_context*)+0x74e) [0x564c968e143e]
/data/dstore/engine/mysql/bin/mysqld(open_tables(THD*, Table_ref**, unsigned int*, unsigned int, Prelocking_strategy*)+0x3f6) [0x564c968e31a6]
/data/dstore/engine/mysql/bin/mysqld(open_tables_for_query(THD*, Table_ref*, unsigned int)+0x8d) [0x564c968e464d]
/data/dstore/engine/mysql/bin/mysqld(Sql_cmd_dml::prepare(THD*)+0xfc) [0x564c969ef2bc]
/data/dstore/engine/mysql/bin/mysqld(Sql_cmd_dml::execute(THD*)+0x100) [0x564c969efef0]
/data/dstore/engine/mysql/bin/mysqld(mysql_execute_command(THD*, bool)+0x1e9c) [0x564c9698d26c]
/data/dstore/engine/mysql/bin/mysqld(dispatch_sql_command(THD*, Parser_state*)+0x520) [0x564c96990080]
/data/dstore/engine/mysql/bin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0x16d7) [0x564c96991cf7]
/data/dstore/engine/mysql/bin/mysqld(do_command(THD*)+0x21e) [0x564c96993b6e]
/data/dstore/engine/mysql/bin/mysqld(threadpool_process_request(THD*)+0x6f) [0x564c986c537f]
/data/dstore/engine/mysql/bin/mysqld(+0x2dcd585) [0x564c986c6585]
/data/dstore/engine/mysql/bin/mysqld(+0x2d2a865) [0x564c98623865]
/usr/lib64/libpthread.so.0(+0x8f3b) [0x7f89ecf9cf3b]
/usr/lib64/libc.so.6(clone+0x40) [0x7f89ea45f980]
 
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f83803b4410): update create_wide_table_004 set c_0126=' ' where c_0126 <> -788732892
Connection ID (thread ID): 975
Status: NOT_KILLED

In https://bugs.mysql.com/bug.php?id=7388, I see that you say "Bug 16268055 - INNODB: FAILING ASSERTION: UT_LIST_GET_LEN(TRX->LOCK.TRX_LOCKS) == 0" is similar. However, I cannot search Bug 16268055 and check if it is the same as this one. Could you check if they are the same and is there any way for us to avoid this problem.

How to repeat:
Not sure how to repeat.
[14 Oct 8:44] MySQL Verification Team
Hello,

There referenced bugs in the prior report are not related to this.

Can we see:
 SHOW CREATE TABLE create_wide_table_004 \G
 show global variables like 'version%';

Take note I get this when creating a wide table:
ERROR 1117 (HY000): Too many columns

Due to:
https://dev.mysql.com/doc/refman/8.0/en/innodb-limits.html
"A table can contain a maximum of 1017 columns. Virtual generated columns are included in this limit. "

so it's unclear what you're doing.
[14 Oct 8:46] MySQL Verification Team
Where does this message come from? Is it a custom engine?

[System] [MY-080000] [DSTORE] Log DDL success, record:[ID:8408295, ThreadID:950, Type:DROP_SEGMENT_LOG, SegmentID:[5121,427], SegmentType:0, Ctid:[PageID:[5122,12655],Offset:95]], xid:2725, use autonomous trx:0