Last commit made on 2022-06-24
Get this branch:
git clone -b bb-10.6-thiru

Branch merges

Branch information


Recent commits


- Ignore the corrupted index during row_create_prebuilt()


MDEV-28806 Assertion `flag == 1' failure in row_build_index_entry_low upon concurrent ALTER and UPDATE

 Update operation doesn't affect the online index, but still innodb
tries to log the update operation during index rebuild. InnoDB should
ignore the logging for the index which wasn't affect the update


MDEV-26294 Duplicate entries in unique index not detected when
 changing collation with INPLACE / NOCOPY algoritm

 InnoDB inplace DDL fails to detect the duplicate entries
for the unique index when collation changes.

  InnoDB DDL has to create newly collaiton changed column
and map to the rebuild index fields. In that case, DDL code path
can apply the old record from the table without any issue.

change_column_collation(): Note down the changed column collation
and map the column to the rebuild index.

cleanup_col_collation(): In case of rollback, InnoDB has
to store the changed collation column to its own heap.

dict_change_col_info: Structure to store change collation
column in a index. It will be used only during

d96436c... by Vladislav Vaintroub

MDEV-28935 crash in io_slots::release

Revert "TSAN: data race on vptr (ctor/dtor vs virtual call)"

This reverts commit 78084fa747f373f2b404c3cb543d19f439100d9e.

This commit was done to please TSAN, which falsely reported an error
where there was none.
Yet as consequence, it could cause a real error, a crash in os_aio_free on

f2f18e2... by Marko Mäkelä

MDEV-28923 atomic.rename_table occasionally fails

fil_name_process(): If the recovery of a tablespace was deferred,
do invoke fil_ibd_load() even though the name in recv_spaces is
not changing. This allows us to recover from a situation where
there are many FILE_RENAME records, renaming a tablespace back
and forth, and a FILE_MODIFY record that had been written by

Co-developed with: Thirunarayanan Balathandayuthapani

eb7f46c... by Vladislav Vaintroub

Merge remote-tracking branch 'origin/10.5' into 10.6

35f2cdc... by Vladislav Vaintroub

MDEV-28920 Rescheduling of innodb_stats_func() missing

Fixed tpool timer implementation on POSIX.
Prior to this patch, under some specific rare circumstances (concurrency
related), timer callback execution might be skipped.

0f0a45b... by Marko Mäkelä

MDEV-18976 fixup: encryption.innodb-redo-badkey

When attempting to recover a database with an incorrect encryption key,
the unencrypted page contents should be expected to differ from what
was written before recovery. Let us suppress some more messages.
This caused intermittent failures, depending on when the latest
log checkpoint was triggered.

6f4d065... by Marko Mäkelä

MDEV-22388 Corrupted undo log record leads to server crash

trx_undo_rec_copy(): Return nullptr if the undo record is corrupted.

trx_undo_rec_get_undo_no(): Define inline with the declaration.

trx_purge_dummy_rec: Replaced with a -1 pointer.

row_undo_rec_get(), UndorecApplier::apply_undo_rec(): Check
if trx_undo_rec_copy() returned nullptr.

trx_purge_get_next_rec(): Return nullptr upon encountering any
corruption, to signal the end of purge.

0fa19fd... by Marko Mäkelä

MDEV-28836 fixup

On GNU/Linux, even though the C11 aligned_alloc() appeared in
GNU libc early on, some custom memory allocators did not
implement it until recently. For example, before
the free() in tcmalloc would fail to free memory that was
returned by aligned_alloc(), because the latter would map to the
built-in allocator of libc. The Linux specific memalign() has a
similar interface and is safer to use, because it has been
available for a longer time. For AddressSanitizer, we will use
aligned_alloc() so that the constraint on size can be enforced.

buf_tmp_reserve_compression_buf(): When HAVE_ALIGNED_ALLOC holds,
round up the size to be an integer multiple of the alignment.

pfs_malloc(): In the unit test stub, round up the size to be an
integer multiple of the alignment.