maria:bb-10.5-MDEV-28709-sup_X_lock

Last commit made on 2022-06-30
Get this branch:
git clone -b bb-10.5-MDEV-28709-sup_X_lock https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.5-MDEV-28709-sup_X_lock
Repository:
lp:maria

Recent commits

d99a6fd... by Vlad Lesin

MDEV-28709 unexpected X lock on Supremum in READ COMMITTED

The lock is created during page splitting after moving records and
locks(lock_move_rec_list_(start|end)()) to the new page, and inheriting
the locks to the supremum of left page from the successor of the infimum
on right page. There is no need in such inheritance for READ COMMITTED
isolation level and not-gap locks.

a26700c... by Nayuta Yanagisawa

MDEV-28352 Spider: heap-use-after-free in ha_spider::lock_tables(), heap freed by spider_commit()

The heap-use-after-free is caused by the following mechanism:

  * In the execution of FLUSH TABLE WITH READ LOCK, the function
    spider_free_trx_conn() is called and the connections held by
    SPIDER_TRX::trx_conn_hash are freed.

  * Then, an instance of ha_spider maintains the freed connections
    because they are also referenced from ha_spider::conns.
    The ha_spider instance is kept in a lock structure until the
    corresponding table is unlocked.

  * Spider accesses ha_spider::conns on the implicit UNLOCK TABLE
    issued by BEGIN.

In the first place, when the connections have been freed, it means
that there are really no remote table locked by Spider.
Thus, there is no need for Spider to access ha_spider::cons on the
implicit UNLOCK TABLE.

We can fix the bug by removing the above mentioned access to
ha_spider::conns. We also modified spider_free_trx_conn() so that it
frees the connections only when no table is locked to reduce the
chance of another heap-use-after-free on ha_spider::conns.

773f1da... by Marko Mäkelä

Merge 10.4 into 10.5

b922ae5... by Marko Mäkelä

Merge 10.3 into 10.4

f339ef3... by Marko Mäkelä

MDEV-26577 InnoDB: Failing assertion: dict_tf2_is_valid(flags, flags2) during ADD COLUMN

prepare_inplace_alter_table_dict(): If the table will not be rebuilt,
preserve all of the original ROW_FORMAT, including the compressed
page size flags related to ROW_FORMAT=COMPRESSED.

a75ad73... by Marko Mäkelä

MDEV-28389 fixup: Fix compiler warnings

hex_to_ascii(): Add #if around the definition to avoid
clang -Wunused-function. Avoid GCC 5 -Wconversion with a cast.

ea847cb... by Marko Mäkelä

Merge 10.4 into 10.5

03174ca... by Marko Mäkelä

Fix GCC -Og -Wmaybe-uninitialized

dd7e9fb... by Marko Mäkelä

MDEV-28854 after-merge fix: Remove a test for MDEV-26583

01d7570... by Marko Mäkelä

Merge 10.3 into 10.4