maria:bb-10.4-MDEV-22666

Last commit made on 2020-05-26
Get this branch:
git clone -b bb-10.4-MDEV-22666 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.4-MDEV-22666
Repository:
lp:maria

Recent commits

0f53818... by Julius Goryavsky <email address hidden>

Merge branch 'codership-10.4-MDEV-22666-v2' into bb-10.4-MDEV-22666

e04999c... by Julius Goryavsky <email address hidden>

Forgotten include files were added to check the necessary conditions for running the test

98a2c6b... by Julius Goryavsky <email address hidden>

Merge branch '10.4-MDEV-22666-v2' of https://github.com/codership/mariadb-server into codership-10.4-MDEV-22666-v2

ca38b6e... by Marko Mäkelä

Merge 10.3 into 10.4

7476e8c... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-22637 Rollback of insert fails when column reorder happens

- During column reorder table rebuild, rollback of insert fails.
Reason is that InnoDB tries to fetch the column position from
new clustered index and it exceeds default column value tuple fields.
So InnoDB should use the table column position while searching for
defaults column value.

ecc7f30... by Marko Mäkelä

Merge 10.2 into 10.3

1af6e92... by sjaakola <email address hidden>

MDEV-22666 galera.MW-328A hang

The hang can happen between a lock connection issuing KILL CONNECTION for a victim,
which is in committing phase.
There happens two resource deadlockwhere killer is holding victim's
LOCK_thd_data and requires trx mutex for the victim.
The victim, otoh, holds his own trx mutex, but requires LOCK_thd_data
in wsrep_commit_ordered(). Hence a classic two thread deadlock happens.

The fix in this commit changes innodb commit so that wsrep_commit_ordered()
is not called while holding trx mutex. With this, wsrep patch commit time mutex
locking does not violate the locking protocol of KILL command
(i.e. LOCK_thd_data -> trx mutex)

Also, a new test case has been added in galera.galera_bf_kill.test for scenario
where a client connection is killed in committting phase.

5530a93... by Marko Mäkelä

MDEV-17092 use-after-poison around lock_trx_handle_wait_low

There was a race condition where the connection of the
victim of a KILL statement is disconnected while the
KILL statement is executing.

As a side effect of this fix, we will make XA PREPARE
transactions immune to KILL statements.

Starting with MariaDB 10.2, we have a pool of trx_t objects.
trx_free() would only free memory to the pool. We poison the
contents of freed objects in the pool in order to catch misuse.

trx_free(): Unpoison also trx->mysql_thd and trx->state.
This is to counter the poisoning of *trx in trx_pools->mem_free().
Unpoison only on AddressSanitizer or Valgrind, but not on MemorySanitizer.

Pool: Unpoison allocated objects only on AddressSanitizer or
Valgrind, but not on MemorySanitizer.

innobase_kill_query(): Properly protect trx, acquiring also
trx_sys_t::mutex and checking trx_t::mysql_thd and trx_t::state.

e2c7493... by Marko Mäkelä

MDEV-22545 post-fix: Fix a test result

commit cf52dd174ecf0e6055f4443be9c1fea8bc37b65e failed to
adjust the result of the test main.mysqldump.

4a6b28c... by varun

MDEV-22461: JOIN::make_aggr_tables_info(): Assertion `select_options & (1ULL << 17)' failed.

A temporary table is needed for window function computation but if only a NAMED WINDOW SPEC
is used and there is no window function, then there is no need to create a temporary
table as there is no stage to compute WINDOW FUNCTION