maria:bb-10.2-MDEV-22021

Last commit made on 2020-03-30
Get this branch:
git clone -b bb-10.2-MDEV-22021 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.2-MDEV-22021
Repository:
lp:maria

Recent commits

3b5e242... by Jan Lindström

Merge branch 'codership-10.2-MDEV-22021' into bb-10.2-MDEV-22021

36e9cb5... by Jan Lindström

Merge branch '10.2-MDEV-22021' of https://github.com/codership/mariadb-server into codership-10.2-MDEV-22021

b11ff3d... by varun

MDEV-22019: Sig 11 in next_breadth_first_tab | max_sort_length setting + double GROUP BY leads to crash

No need to create a temp table for aggregation if we have encountered some error.

0b00c1a... by Eugene

MDEV-22005 UBSAN: applying non-zero offset 2 to null pointer in my_charpos_mb()

Empty comment has a correct length.

7f426c4... by mkaruza <email address hidden>

MDEV-22021: Galera database could get inconsistent with rollback to savepoint

When binlog is disabled, WSREP will not behave correctly when
SAVEPOINT ROLLBACK is executed since we don't register handlers for such case.
Fixed by registering WSREP handlerton for SAVEPOINT related commands.

5918b17... by seppo <email address hidden>

MDEV-21473 conflicts with async slave BF aborting (#1475)

If async slave thread (slave SQL handler), becomes a BF victim, it may occasionally happen that rollbacker thread is used to carry out the rollback instead of the async slave thread.
This can happen, if async slave thread has flagged "idle" state when BF thread tries to figure out how to kill the victim.
The issue was possible to test by using a galera cluster as slave for external master, and issuing high load of conflicting writes through async replication and directly against galera cluster nodes.
However, a deterministic mtr test for the "conflict window" has not yet been worked on.

The fix, in this patch makes sure that async slave thread state is never set to IDLE. This prevents the rollbacker thread to intervene.
The wsrep_query_state change was refactored to happen by dedicated function to make controlling the idle state change in one place.

a7cbce0... by Eugene

unoptimized -fsanitize=undefined build on clang requires more stack space

fb74de9... by Eugene

MDEV-22006 runtime error: null pointer passed as argument 2, which is declared to never be null in JOIN::copy_ref_ptr_array()

Do not memcpy() a zero-length buffer

6697135... by THIRUNARAYANAN BALATHANDAYUTHAPANI

MDEV-21572 buf_page_get_gen() should apply buffered page initialized
  redo log during recovery

- InnoDB unnecessarily reads the page even though it has fully initialized
buffered redo log records. Allow the page initialization redo log to
apply for the page in buf_page_get_gen() during recovery.
- Renamed buf_page_get_gen() to buf_page_get_low()
- Newly added buf_page_get_gen() will check for buffered redo log for
the particular page id during recovery
- Added new function buf_page_mtr_lock() which basically latches the page
for the given latch type.
- recv_recovery_create_page() is inline function which creates a page
if it has page initialization redo log records.

1e6be69... by Eugene

MDEV-19658 UBSAN: runtime error: load of value 2779096485, which is not a valid value for type 'enum_binlog_format'

This is an uninitialized read.

THD::THD: initialize current_stmt_binlog_format member