maria:bb-10.1-mdev9510-andrei

Last commit made on 2017-10-25
Get this branch:
git clone -b bb-10.1-mdev9510-andrei https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.1-mdev9510-andrei
Repository:
lp:maria

Recent commits

780c30e... by Andrei Elkin <email address hidden> on 2017-10-16

MDEV-9510 Segmentation fault in binlog thread causes crash

With combination of --log-bin and Galera the server may crash
reporting two characteristic stacks:

  /usr/sbin/mysqld(_ZN13MYSQL_BIN_LOG13mark_xid_doneEmb+0xc7)[0x7f182a8e2cb7]
  /usr/sbin/mysqld(binlog_background_thread+0x2b5)[0x7f182a8e3275]

or

  /usr/sbin/mysqld(_ZN13MYSQL_BIN_LOG21do_checkpoint_requestEm+0x9d)[0x7ff395b2dafd]
  /usr/sbin/mysqld(_ZN13MYSQL_BIN_LOG20checkpoint_and_purgeEm+0x11)[0x7ff395b2db91]
  /usr/sbin/mysqld(_ZN13MYSQL_BIN_LOG16rotate_and_purgeEb+0xc2)[0x7ff395b300b2]

The reason of the failure appears to be non-matching decrements for
  `xid_count_per_binlog::xid_count`
which can occur when a transaction is executed having its connection issued
`SET @@sql_log_bin=0`. In such case the xid count is not incremented but
its decrements still runs to turn `binlog_xid_count_list` into improper state
which the following FLUSH BINARY LOGS exposes through the crash.

*Note_1*: the regression test reuses an existing galera.sql_log_bin
which does not run stably (even in its base form) by mtr with --log-bin.

*Note_2*: 10.0-galera branch is free of this issue having missed MDEV-7205
fixes.

f9b50c0... by Marko Mäkelä on 2017-10-06

MDEV-13512 buf_flush_update_zip_checksum() corrupts SPATIAL INDEX in ROW_FORMAT=COMPRESSED tables

In MariaDB Server 10.1, this problem manifests itself only as
a debug assertion failure in page_zip_decompress() when an insert
requires a page to be decompressed.

In MariaDB 10.1, the encryption of InnoDB data files repurposes the
previously unused field FILE_FLUSH_LSN for an encryption key version.
This field was only used in the first page of each file of the system
tablespace. For ROW_FORMAT=COMPRESSED tables, the field was always
written as 0 until encryption was implemented.

There is no bug in the encryption, because the buffer pool blocks will
not be written to files. Instead, copies of the blocks will be encrypted.
In these encrypted copies, the key version field will be updated before
the buffer is written to the file. The field in the buffer pool is
basically garbage that does not really matter.

Already in MariaDB 10.0, the memset() calls to reset this unused field
in buf_flush_update_zip_checksum() and buf_flush_write_block_low()
are unnecessary, because fsp_init_file_page_low() would guarantee that
the field is always 0 in the buffer pool (unless 10.1 encryption is
used).

Removing the unnecessary memset() calls makes page_zip_decompress()
happy and will prevent a SPATIAL INDEX corruption bug in
MariaDB Server 10.2. In MySQL 5.7.5, as part of WL#6968, the same
field was repurposed for an R-tree split sequence number (SSN) and
these memset() were removed. (Because of the repurposing, MariaDB
encryption is not available for tables that contain SPATIAL INDEX.)

1cfaafa... by Alexander Barkov on 2017-10-05

MDEV-13242 Wrong results for queries with row constructors and information_schema

bcda03b... by Sachin Setiya on 2017-10-02

MDEV-13950 mysqld_safe could not start Galera node after upgrade ...

This is regression caused by patch of mdev-10767.

1st problem :- mktmp is invoked without '-t' or specifing tmp directory.
2nd problem :- Since eval_log_error redirect stderr to stdout '2>' will
return nothing. and hence $wr_logfile will be empty.

Patch Credit:- Andrii Nikitin

ac0b5a2... by Marko Mäkelä on 2017-10-02

Merge 10.0 into 10.1

de4a00d... by Marko Mäkelä on 2017-10-02

Merge 5.5 into 10.0

028d253... by Marko Mäkelä on 2017-10-02

MDEV-13980 InnoDB fails to discard record lock when discarding an index page

btr_cur_pessimistic_delete(): Discard a possible record lock also in
the case when the record was the only one in the page. Failure to
do this would corrupt the record lock data structures in a partial
rollback (ROLLBACK TO SAVEPOINT or rolling back a row operation due
to some error, such as a duplicate key in a unique secondary index).

b8488e5... by Jan Lindström on 2017-09-29

MDEV-13932: fil0pagecompress.cc fails to compile with lzo 2.10

Patch contibuted by Gordon Fisher. Thank you for your contribution!

4d01dd7... by Jan Lindström on 2017-09-28

MDEV-12634: Uninitialised ROW_MERGE_RESERVE_SIZE bytes written to temporary file

After review cleanup.

4aeec72... by Daniel Bartholomew <email address hidden> on 2017-09-27

bump the VERSION