Percona XtraDB Cluster 5.6.27-25.13

Percona is glad to announce the release of Percona XtraDB Cluster 5.6.27-25.13 on January 11, 2016. Binaries are available from the downloads section or from our software repositories.

Percona XtraDB Cluster 5.6.27-25.13 is now the current release, based on the following:

All Percona software is open-source and free. Details of this release can be found in the 5.6.27-25.13 milestone on Launchpad.

For more information about relevant Codership releases, see this announcement.


Due to new dependency on libnuma1 package in Debian/Ubuntu, please run one of the following commands to upgrade the percona-xtradb-cluster-server-56 package:

  • aptitude safe-upgrade
  • apt-get dist-upgrade
  • apt-get install percona-xtradb-cluster-server-5.6

New Features

  • There is a new script for building Percona XtraDB Cluster from source. For more information, see Compiling and Installing from Source Code.
  • wsrep_on is now a session only variable. That means toggling it will not affect other clients connected to said node. Only the session/client modifying it will be affected. Trying to toggle wsrep_on in the middle of a transaction will now result in an error. Trx will capture the state of wsrep_on during start and will continue to use it. Start here means when the first logical changing statement is executed within transaction context.

Bugs Fixed

  • #1261688 and #1292842: Fixed race condition when two skipped replication transactions were rolled back, which caused [ERROR] WSREP: FSM: no such a transition ROLLED_BACK -> ROLLED_BACK with LOAD DATA INFILE
  • #1362830: Corrected xtrabackup-v2 script to consider only the last specified log_bin directive in my.cnf. Multiple log_bin directives caused SST to fail.
  • #1370532: Toggling wsrep_desync while node is paused is now blocked.
  • #1404168: Removed support for innodb_fake_changes variable.
  • #1455098: Fixed failure of LDI on partitioned table. This was caused by partitioned table handler disabling bin-logging and Native Handler (InnoDB) failing to generate needed bin-logs eventually causing skipping of statement replication.
  • #1503349: garbd now uses default port number if it is not specified in sysconfig.
  • #1505184: Corrected wsrep_sst_auth script to ensure that user name and password for SST is passed to XtraBackup through internal command-line invocation. ps -ef doesn’t list these credentials so passing it internally is fine, too.
  • #1520491: FLUSH TABLE statements are not replicated any more, because it lead to an existing upstream fix pending deadlock error. This fix also takes care of original fix to avoid increment of local GTID.
  • #1528020: Fixed async slave thread failure caused by redundant updates of mysql.event table with the same value. Redundant updates are now avoided and will not be bin-logged.
  • Fixed garb init script causing new UUIDs to be generated every time it runs. This error was due to missing base_dir configuration when gardb didn’t have write-access to current working directory. garbd will now try to use cwd. Then it will try to use /var/lib/galera (like most Linux daemons). If it fails to use or create /var/lib/galera, it will throw a fatal error.
  • Fixed replication of DROP TABLE statement with a mix of temporary and non-temporary tables (for example, DROP TABLE temp_t1, non_temp_t2), which caused errorneous DROP TEMPORARY TABLE stmt on replicated node. Corrected it by detecting such scenarios and creating temporary table on the replicated node, which is then dropped by follow-up DROP statement. All this workload should be part of same unit as temporary tables are session-specific.
  • Fixed error when wsrep_cluster_name value over 32 characters long caused gmcast message to exceed maximum length. Imposed a limit of 32 character on wsrep_cluster_name.
  • Added code to properly handle default values for wsrep_* variables, which caused an error/crash.
  • Fixed error when a CREATE TABLE AS SELECT (CTAS) statement still tried to certify a transaction on a table without primary key even if certification of tables without primary key was disabled. This error was caused by CTAS setting trx_id (fake_trx_id) to execute SELECT and failing to reset it back to -1 during INSERT as certification is disabled.
  • Fixed crashing of INSERT .... SELECT for MyISAM table with wsrep_replicate_myisam set to ON. This was caused by TOI being invoked twice when source and destination tables were MyISAM.
  • Fixed crash when caching write-set data beyond configured limit. This was caused by TOI flow failing to consider/check error resulting from limit enforcement.
  • Fixed error when loading MyISAM table from schema temporary table (with wsrep_replicate_myisam set to ON). This was caused by temporary table lookup being done using get_table_name(), which could be misleading as table_name for temporary tables is set to temporary generated name. Original name of the table is part of table_alias. The fix corrected condition to consider both table_name and alias_name.
  • Fixed error when changing wsrep_provider in the middle of a transaction or as part of a procedure/trigger. This is now blocked to avoid inconsistency.
  • Fixed TOI state inconsistency caused by DELAYED_INSERT on MyISAM table (TOI_END was not called). Now the DELAYED_ qualifier will be ignored and statement will be interpreted as normal INSERT.
  • Corrected locking semantics for FLUSH TABLES WITH READ LOCK (FTWRL). It now avoids freeing inheritted lock if follow-up FLUSH TABLE statement fails. Only frees self-acquired lock.
  • Fixed crash caused by GET_LOCK + wsrep_drupal_282555_workaround. GET_LOCK path failed to free all instances of user-level locks after it inherited multiple-user-locks from Percona Server. The cleanup code now removes all possible references of locks.
  • Fixed cluster node getting stuck in Donor/Desync state after a hard recovery, because of an erroneous type cast in source code.
  • Corrected DDL and DML semantics for MyISAM:
    • DDL (CREATE/DROP/TRUNCATE) on MyISAM will be replicated irrespective of wsrep_replicate_miysam value
    • DML (INSERT/UPDATE/DELETE) on MyISAM will be replicated only if wsrep_replicate_myisam is enabled
    • SST will get full transfer irrespective of wsrep_replicate_myisam value (it will get MyISAM tables from donor if any)
    • Difference in configuration of pxc-cluster node on enforce_storage_engine front may result in picking up different engine for same table on different nodes
    • CREATE TABLE AS SELECT (CTAS) statements use non-TOI replication and are replicated only if there is involvement of InnoDB table that needs trx (involvement of MyISAM table will cause CTAS statement to skip replication)
  • SST fails with innodb_data_home_dir/innodb_log_home_dir. This was a bug in Percona XtraBackup, which is fixed in 2.3.3 and 2.2.12.

Known Issues

  • 1330941: Conflict between wsrep_OSU_method set to RSU and wsrep_desync set to ON was not considered a bug.
  • 1443755: Causal reads introduces surprising latency in single node clusters.
  • 1522385: Holes are introduced in Master-Slave GTID eco-system on replicated nodes if any of the cluster nodes are acting as asynchronous slaves to an independent master.
  • Enabling wsrep_desync (from previous OFF state) will wait until previous wsrep_desync=OFF operation is completed.

Contact Us

For free technical help, visit the Percona Community Forum.
To report bugs or submit feature requests, open a JIRA ticket.
For paid support and managed or professional services, contact Percona Sales.