maria:bb-10.0-mdev_13437-andrei

Last commit made on 2017-08-28
Get this branch:
git clone -b bb-10.0-mdev_13437-andrei https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.0-mdev_13437-andrei
Repository:
lp:maria

Recent commits

052e8e3... by andrelkin <email address hidden> on 2017-08-28

MDEV-13437 InnoDB: Failing assertion: !srv_read_only_mode in mtr0mtr.cc:322

The assert was caused due to incorrect handling of --tc-heuristic-recover=ROLLBACK
and --innodb-read-only=1 option combination. Innodb attempted
rollback of a prepared transaction having no right to do so because of
the latter option.

Fixed with making Innodb to respect the read-only flag by
innobase_{commit,rollback}_by_xid (Marko's contribution).
LOCK_log mutex lock/unlock had to be added to cover MDEV-1438 "child" issue.
The measure is confirmed by mysql sources as well.

For testing of the conflicting option combination, mysql-test-run is
made to export a new $MYSQLD_LAST_CMD. It holds the very last value
generated by mtr.mysqld_start(). Even though the options have been
also always stored in $mysqld->{'started_opts'} there were no access
to them beyond the automatic server restart by mtr through the expect
file interface.

Effectively therefore $MYSQLD_LAST_CMD represents a more general interface to
$mysqld->{'started_opts'} which can be used in wider scopes including
server launch with incompatible options.

Notice another existing method to restart the server with incompatible
options relying on $MYSQLD_CMD is is aware of $mysqld->{'started_opts'} (the actual
options that the server is launched by mtr). In order to use this
method they would have to be provided manually.

Note, at merging to 10.2 an added search++ macro should be renamed
"back" to normal. It's being backparted to 10.0 "temporarily".

Some recent commit information could not be fetched.