Server crashes in one of the secondary indexes created on virtual column

Description

Servers are crashing on compressed tables where the purge thread is trying to clean up some records. The other thing to note is that these are all indexes on virtual columns:

The next operation in that stack should btr_page_get_father_node_ptr_func, as the servers are crashing with:

 with <indexA> being one composed by thee fields (fieldA, fieldB, fieldC) where:

  • `fieldA` varbinary(1536) NOT NULL,

  • `fieldB` tinyint(1) NOT NULL DEFAULT '0',

  • `fieldC` bigint(20) GENERATED ALWAYS AS ((case when isnull(json_unquote(json_extract(`metadata`,'$._ttl'))) then NULL else to_seconds((`ts` + interval json_unquote(json_extract(`metadata`,'$._ttl')) second)) end)) STORED,

with `ts` being a 4th, timestap (6) field. The target table is created with compression:

Another similar index (<indexB>) composed of only (fieldB, fieldC) is not affected by the problem and, from the few samples I've got, report a smaller number of entries when corruption is perceived on the "main" index:

Environment

None

AFFECTED CS IDs

CS0016057, CS0017525, CS0018218, CS0019123, CS0036624

Smart Checklist

Activity

Show:

Aaditya Dubey August 6, 2024 at 8:29 AM

Hi

We were unable to repeat the issue; if you get the reproducible steps, please feel free to create a new report for this case. closing this report.

edwin.wang June 21, 2024 at 4:49 PM
Edited

No, We couldn’t reproduce the same issue. But it seems the chances of data corruption(and in turn mysql crash) increased when working with virtual column

Przemyslaw Malkowski June 7, 2023 at 9:16 AM

Similar issue happened on 8.0.28-20:

The table has GENERATED ALWAYS AS ... column, but the corrupted index is on a single timestamp column. 

Satya Bodapati January 19, 2022 at 1:30 PM

but once is index is corrupted, there is no way to fix it. only dump and restore is the way.

Satya Bodapati January 19, 2022 at 1:30 PM
Edited

look around secondary index (virtual column) bugs fixed in 8.0 (release notes) after 8.0.23

Cannot Reproduce

Details

Assignee

Reporter

Time tracking

1d 6h 30m logged

Priority

Smart Checklist

Created June 28, 2021 at 9:38 PM
Updated August 6, 2024 at 8:29 AM
Resolved August 6, 2024 at 8:29 AM