maria:10.2-MDEV-24853

Last commit made on 2021-02-12
Get this branch:
git clone -b 10.2-MDEV-24853 https://git.launchpad.net/maria

Branch merges

Branch information

Name:
10.2-MDEV-24853
Repository:
lp:maria

Recent commits

1d27cb7... by Julius Goryavsky <email address hidden>

MDEV-24853: Duplicate key generated during cluster configuration change

Incorrect processing of an auto-incrementing field in the
WSREP-related code during applying transactions results in
a duplicate key being created. This is due to the fact that
at the beginning of the write_row() and update_row() functions,
the values of the auto-increment parameters are used, which
are read from the parameters of the current thread, but further
along the code other values are used, which are read from global
variables (when applying a transaction). This can happen when
the cluster configuration has changed while applying a transaction
(for example in the high_priority_service mode for Galera 4).
Further during IST processing duplicating key is detected, and
processing of the DB_DUPLICATE_KEY return code (inside innodb,
in the write_row() handler) results in a call to the
wsrep_thd_self_abort() function.

da3211e... by Marko Mäkelä

MDEV-24763 fixup: Use deterministic ORDER BY

6f3f191... by Marko Mäkelä

MDEV-24763 ALTER TABLE fails to rename a column in SYS_FIELDS

innobase_rename_column_try(): When renaming SYS_FIELDS records
for secondary indexes, try to use both formats of SYS_FIELDS.POS
as keys, in case the PRIMARY KEY includes a column prefix.

Without this fix, an ALTER TABLE that renames a column followed
by a server restart (or LRU eviction of the table definition
from dict_sys) would make the table inaccessible.

028ba10... by Marko Mäkelä

MDEV-18468 fixup: Make test case robust w.r.t. deferred DROP TABLE

95003ea... by Julius Goryavsky <email address hidden>

MDEV-19950: Galera test failure on galera_ssl_upgrade

The test requires adaptation for MariaDB, which is done
in this patch. In addition, this patch includes a fix for
the SST script startup code that adds escaping for special
characters on the command line (in case they are contained
in the arguments to mysqld). The fix does not require
separate tests, as the required tests are already part
of the mtr suite for Galera.

362dcf9... by Jan Lindström

Update Galera disabled.def

afc5bac... by Alexander Barkov

MDEV-24790 CAST('0e1111111111' AS DECIMAL(38,0)) returns a wrong result

739abf5... by Marko Mäkelä

Make innodb_gis.rtree_purge run faster

A locking SELECT from an InnoDB table is very slow especially
in debug builds. Replacing some INSERT...SELECT should not reduce
the test coverage, because the test will still do DELETE
(which will acquire explicit record locks).

eef4c5d... by Sujatha Sivakumar

MDEV-22741: *SAN: ERROR: AddressSanitizer: use-after-poison on address in instrings/strmake.c:36 from change_master (on optimized builds)

Problem:
========
CHANGE MASTER TO MASTER_USER='root', MASTER_SSL=0, MASTER_SSL_CA='',
  MASTER_SSL_CERT='', MASTER_SSL_KEY='', MASTER_SSL_CRL='',
  MASTER_SSL_CRLPATH='';

CHANGE MASTER TO MASTER_USER='root', MASTER_PASSWORD='', MASTER_SSL=0;

use-after-poison is reported for lex_mi->ssl_crl

File: sql_repl.cc

if (lex_mi->ssl_crl)
  strmake_buf(mi->ssl_crl, lex_mi->ssl_crl);

Analysis:
========
At the end of CHANGE MASTER statement execution, the LEX_MASTER_INFO
parameters are reset so that the next query will have a clean state. But
'ssl_crl' and 'ssl_crl_path' members of LEX_MASTER_INFO object are not
cleared during 'LEX_MASTER_INFO::reset'. Hence when a new CHANGE MASTER
statement is executed, the stale value of lex_mi->ssl_crl is used, so ASAN
reports use-after-poison.

Fix:
===
Clear 'ssl_crl' and 'ssl_crl_path' as part of 'reset'.

6ede84f... by Vladislav Vaintroub

MDEV-24762 - HeidiSQL 11.2