PXB crashes during incremental backup prepare of partitioned tables: Assertion failure: buf0flu.cc:3567:UT_LIST_GET_LEN(buf_pool->flush_list) == 0

Description

PS8.0.27 is running with encryption options

Create 10 sysbench tables

Create partitioned tables and update the partitions

Take full backup with lock-ddl

Run a small sysbench load 

Take incremental backup with lock-ddl

Prepare full backup

Prepare incremental backup

PXB crashes during the incremental backup prepare

Observed the following DDL running just before the incremental backup

PXB version

Issue is reproducible. Logs attached.

Environment

None

Attachments

1

Smart Checklist

Activity

Show:

Marcelo Altmann April 15, 2022 at 8:26 PM

Problem is happening due to the fact that there are still pages in the flush_list by the end of the --prepare.
Page(s) from the flush list are not flushed because they are marked with io_fix->BUF_IO_READ.
 
They have been added to flush list by io thread at buf_page_io_complete when we check there are insert buffer changes for it (ibuf_merge_or_delete_for_page).
The problem happens because we are still in the process of reading the page and applying the ibuf records and shutdown happens and we never reached the point where we will mark the block as BUF_IO_NONE which would make the page elegible for flush from flush_list.

Done

Details

Assignee

Reporter

Time tracking

4d 3h logged

Affects versions

Priority

Smart Checklist

Created April 12, 2022 at 5:50 AM
Updated March 6, 2024 at 6:27 PM
Resolved October 18, 2023 at 6:22 PM