Description:
MySQL Server crushed unexpectedly, reporting the following stack trace:
2024-12-18T16:21:10.223087Z 247456 [ERROR] [MY-013183] [InnoDB] Assertion failure: buf0buf.cc:4552:buf_block_get_state(block) == BUF_BLOCK_FILE_PAGE thread 139997715908352
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.
2024-12-18T16:21:10Z UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
BuildID[sha1]=cb34ac709ba76cf831f2f513f49df34ca16f48fb
Thread pointer: 0x7f501c148170
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 = 7f53c2203b30 thread_stack 0x30000
/usr/sbin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x3d) [0x20dfd1d]
/usr/sbin/mysqld(print_fatal_signal(int)+0x37f) [0xfb8f8f]
/usr/sbin/mysqld(my_server_abort()+0x7e) [0xfb90de]
/usr/sbin/mysqld(my_abort()+0xa) [0x20da06a]
/usr/sbin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x31f) [0x239596f]
/usr/sbin/mysqld(buf_page_get_known_nowait(unsigned long, buf_block_t*, Cache_hint, char const*, unsigned long, mtr_t*)+0x1e4) [0x23efb84]
/usr/sbin/mysqld(btr_search_guess_on_hash(dict_index_t*, btr_search_t*, dtuple_t const*, unsigned long, unsigned long, btr_cur_t*, unsigned long, mtr_t*)+0xa93) [0x23dd5c3]
/usr/sbin/mysqld(btr_cur_search_to_nth_level(dict_index_t*, unsigned long, dtuple_t const*, page_cur_mode_t, unsigned long, btr_cur_t*, unsigned long, char const*, unsigned long, mtr_t*)+0x2869) [0x23d8559]
/usr/sbin/mysqld(Row_sel_get_clust_rec_for_mysql::operator()(row_prebuilt_t*, dict_index_t*, unsigned char const*, que_thr_t*, unsigned char const**, unsigned long**, mem_block_info_t**, dtuple_t const**, mtr_t*, lob::undo_vers_t*)+0x10f) [0x231cf0f]
/usr/sbin/mysqld(row_search_mvcc(unsigned char*, page_cur_mode_t, row_prebuilt_t*, unsigned long, unsigned long)+0x204e) [0x2321ace]
/usr/sbin/mysqld(ha_innobase::general_fetch(unsigned char*, unsigned int, unsigned int)+0x218) [0x21dbf18]
/usr/sbin/mysqld(non-virtual thunk to ha_innopart::index_next_same_in_part(unsigned int, unsigned char*, unsigned char const*, unsigned int)+0x3c) [0x21f0f3c]
/usr/sbin/mysqld(Partition_helper::handle_unordered_next(unsigned char*, bool)+0x59) [0xd5b7b9]
/usr/sbin/mysqld(handler::ha_index_next_same(unsigned char*, unsigned char const*, unsigned int)+0x70) [0x10ce020]
/usr/sbin/mysqld(RefIterator<false>::Read()+0xde) [0x139090e]
/usr/sbin/mysqld(FilterIterator::Read()+0x14) [0x1382614]
/usr/sbin/mysqld(LimitOffsetIterator::Read()+0x7d) [0x13827ad]
/usr/sbin/mysqld(MaterializeIterator<DummyIteratorProfiler>::MaterializeQueryBlock(materialize_iterator::QueryBlock const&, unsigned long long*)+0x112) [0x1386f52]
/usr/sbin/mysqld(MaterializeIterator<DummyIteratorProfiler>::Init()+0x323) [0x1387f53]
/usr/sbin/mysqld(AggregateIterator::Init()+0x27) [0x1384077]
/usr/sbin/mysqld(Query_expression::ExecuteIteratorQuery(THD*)+0x20c) [0xf24eac]
/usr/sbin/mysqld(Query_expression::execute(THD*)+0x2c) [0xf2528c]
/usr/sbin/mysqld(Sql_cmd_dml::execute(THD*)+0x189) [0xea6819]
/usr/sbin/mysqld(mysql_execute_command(THD*, bool)+0xad1) [0xe4e221]
/usr/sbin/mysqld(dispatch_sql_command(THD*, Parser_state*)+0x41a) [0xe51d8a]
/usr/sbin/mysqld(dispatch_command(THD*, COM_DATA const*, enum_server_command)+0xdae) [0xe5309e]
/usr/sbin/mysqld(do_command(THD*)+0x207) [0xe55287]
/usr/sbin/mysqld() [0xfa9290]
/usr/sbin/mysqld() [0x2811b45]
/lib64/libpthread.so.0(+0x7ea5) [0x7f67c9fd8ea5]
/lib64/libc.so.6(clone+0x6d) [0x7f67c85f2b0d]
Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (7f501c814430): SELECT /*+ MAX_EXECUTION_TIME(9964) */ COUNT(*) FROM (SELECT 1 FROM users_viewer_feed_notification WHERE tenant_id=x'00000000000000000000000000000000' AND (((JSON_UNQUOTE(JSON_EXTRACT(entity, '$.status._typename')) = 'UNSEEN' and JSON_UNQUOTE(JSON_EXTRACT(entity, '$.channel._typename')) = 'WEB' and `type` = 'REGULAR') and JSON_UNQUOTE(JSON_EXTRACT(entity, '$.status._typename')) NOT IN ('UNKNOWN_STATUS')) and (`userId` = '568ffb46-1792-40c1-b980-a20f726c8513' and (JSON_UNQUOTE(JSON_EXTRACT(entity, '$.accountId')) = '568ffb46-1792-40c1-b980-a20f726c8513' or NULLIF(JSON_UNQUOTE(JSON_EXTRACT(entity, '$.accountId')), 'null') IS NULL))) LIMIT 100) AS _cnt
Connection ID (thread ID): 247456
Status: NOT_KILLED
Attaching also the table structure:
CREATE TABLE `users_viewer_feed_notification` (
`tenant_id` varbinary(16) NOT NULL,
`entity_id` varchar(36) CHARACTER SET latin1 COLLATE latin1_general_cs GENERATED ALWAYS AS (json_unquote(json_extract(`entity`,_utf8mb4'$._id'))) STORED NOT NULL,
`entity` json NOT NULL,
`userId` varchar(36) CHARACTER SET latin1 COLLATE latin1_general_cs GENERATED ALWAYS AS (json_unquote(json_extract(`entity`,_utf8mb4'$.userId'))) VIRTUAL,
`sentDate` bigint GENERATED ALWAYS AS (json_extract(`entity`,_utf8mb4'$.sentDate.$timestamp')) VIRTUAL,
`groupingInfo_groupByValue` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin GENERATED ALWAYS AS (json_unquote(json_extract(`entity`,_utf8mb4'$.groupingInfo.groupByValue'))) VIRTUAL,
`updatedDate` bigint GENERATED ALWAYS AS (json_extract(`entity`,_utf8mb4'$._updatedDate.$timestamp')) VIRTUAL,
`partition_key` tinyint unsigned GENERATED ALWAYS AS ((floor((json_extract(`entity`,_utf8mb4'$._createdDate.$timestamp') / 1728000000)) % 5)) STORED NOT NULL,
`notificationId` bigint GENERATED ALWAYS AS (json_extract(`entity`,_utf8mb4'$.notificationId')) VIRTUAL,
`metaSiteId` varchar(36) CHARACTER SET latin1 COLLATE latin1_general_cs GENERATED ALWAYS AS (json_unquote(json_extract(`entity`,_utf8mb4'$.metaSiteId'))) VIRTUAL,
`type` varchar(30) CHARACTER SET latin1 COLLATE latin1_general_cs GENERATED ALWAYS AS (json_unquote(json_extract(`entity`,_utf8mb4'$.type._typename'))) VIRTUAL,
PRIMARY KEY (`tenant_id`,`entity_id`,`partition_key`),
KEY `userId_groupingInfo_groupByValue_idx` (`tenant_id`,`userId`,`groupingInfo_groupByValue`),
KEY `updatedDate_idxct` (`updatedDate`),
KEY `notificationId_idx` (`tenant_id`,`notificationId`),
KEY `userId_type_sentDate_idx` (`tenant_id`,`userId`,`type`,`sentDate` DESC),
KEY `userId_metaSiteId_sentDate_idx` (`tenant_id`,`userId`,`metaSiteId`,`sentDate` DESC)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin ROW_FORMAT=COMPRESSED
/*!50100 PARTITION BY LIST (`partition_key`)
(PARTITION P5_D60_0 VALUES IN (0) ENGINE = InnoDB,
PARTITION P5_D60_1 VALUES IN (1) ENGINE = InnoDB,
PARTITION P5_D60_2 VALUES IN (2) ENGINE = InnoDB,
PARTITION P5_D60_3 VALUES IN (3) ENGINE = InnoDB,
PARTITION P5_D60_4 VALUES IN (4) ENGINE = InnoDB) */
How to repeat:
Cannot reproduce.
However, occurred 3 times across 2 different servers.