Created by Kristian Nielsen and last modified
Get this branch:
bzr branch lp:~maria-captains/maria/5.5-mdev232
Members of Maria-captains can upload to this branch. Log in for directions.

Branch merges

Related bugs

Related blueprints

Branch information


Recent revisions

3459. By Kristian Nielsen

MDEV-232: Remove one fsync() from commit phase.

Introduce a new storage engine API method commit_checkpoint_request().
This is used to replace the fsync() at the end of every storage engine
commit with a single fsync() when a binlog is rotated.

Binlog rotation is now done during group commit instead of being
delayed until unlog(), removing some server stall and avoiding an
expensive lock/unlock of LOCK_log inside unlog().

3458. By Kristian Nielsen

MDEV-181: XID crash recovery across binlog boundaries

Keep track of how many pending XIDs (transactions that are prepared in
storage engine and written into binlog, but not yet durably committed
on disk in the engine) there are in each binlog.

When the count of one binlog drops to zero, write a new binlog checkpoint
event, telling which is the oldest binlog with pending XIDs.

When doing XA recovery after a crash, check the last binlog checkpoint
event, and scan all binlog files from that point onwards for XIDs that
must be committed if found in prepared state inside engine.

Remove the code in binlog rotation that waits for all prepared XIDs to
be committed before writing a new binlog file (this is no longer necessary
when recovery can scan multiple binlog files).

3457. By Kristian Nielsen

MDEV-225: Replace with dummy events an event that is not understood by a slave to which it should be sent

Add function to replace arbitrary event with dummy event.

Add code which uses this to fix the bug that enabling row_annotate events
on the master breaks slaves which do not request such events.

Add that slaves set a variable @mariadb_slave_capability to inform the
master in a robust way about which events it can, and cannot, handle.

Add tests.

3456. By Kristian Nielsen

MDEV-342: fix two race conditions in the test case that could occasionally cause spurious failures.

3455. By Kristian Nielsen

MDEV-342: Do not mark old binlog file as cleanly closed during rotate until
the new file is fully synced to disk and binlog index. This fixes a window
where a crash would leave next server restart unable to detect that a crash
occured, causing recovery to fail.

3454. By Kristian Nielsen

MDEV-359: Fix another case where switch-off semisync could cause a race that ended with server crash.

This one was when the code releases and reaquires the lock with pthread_cond_wait() - and semisync is switched off meanwhile.

3453. By Sergei Golubchik

Use the portable form of INSTALL PLUGIN in rpl_mdev359.test

3452. By Sergei Golubchik

fixing the order of includes in the rpl_mdev359.test

3451. By Kristian Nielsen

MDEV-359: Server crash when SET GLOBAL rpl_semi_sync_master_enabled = OFF

The semisync code does a fast-but-unsafe check for enabled or not without lock,
followed by a slow-but-safe check under lock. However, if the slow check failed,
the code still referenced not valid data (in an assert() expression), causing a

Fixed by not running the incorrect assert when semisync is disabled.

3450. By Sergei Golubchik

MDEV-349 5.5 xtradb innodb_prefix_index_liftedlimit crash with valgrind

This is XtraDB bug lp:1015109, introduced by innodb_split_buf_pool_mutex.patch

Comment the offending assertion, until the fixed XtraDB is available

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
Stacked on:
This branch contains Public information 
Everyone can see this information.