EmergencyEMERGENCY? Get 24/7 Help Now!

Percona Server 5.6.26-74.0 is now available

 | September 15, 2015 |  Posted In: Events and Announcements, MySQL, Percona Server for MySQL, Percona Software, TokuDB

PREVIOUS POST
NEXT POST

Percona ServerPercona is glad to announce the release of Percona Server 5.6.26-74.0 on September 15, 2015. Download the latest version from the Percona web site or from the Percona Software Repositories.

Based on MySQL 5.6.26, including all the bug fixes in it, Percona Server 5.6.26-74.0 is the current GA release in the Percona Server 5.6 series. Percona Server is open-source and free – and this is the latest release of our enhanced, drop-in replacement for MySQL. Complete details of this release can be found in the 5.6.26-74.0 milestone on Launchpad.

New Features:

  • TokuDB storage engine source has been merged into the Percona Server code. TokuDB storage engine tokudb_version variable now has the same value as the Percona Server version variable.
  • TokuDB Hot Backup has been renamed to Percona TokuBackup and it is now open source. Source code has been integrated into Percona Server code as a git submodule. TokuDB Hot Backup plugin source code has been merged into Percona Server code.
  • Tokutek Fractal Tree has been renamed to Percona FT and its source code has been integrated into Percona Server code as a git submodule.
  • TokuDB tests for Percona Server 5.6 have been merged into Percona Server 5.6 code.
  • Google SNAPPY compression/decompression algorithm is now available as TokuDB Compression table format.
  • Percona Server now supports changing the server_id variable per session, by implementing the new pseudo_server_id variable. This feature is also fixing upstream bug #35125.
  • Percona Server has temporarily disabled savepoints in triggers and stored functions. The reason is that even having fixed bug #1438990 and bug #1464468 we have found more cases where savepoints in triggers break binary logging and replication, resulting in server crashes and broken slaves. This feature will be disabled until the above issues are properly resolved.
  • LOCK TABLES FOR BACKUP now flushes the current binary log coordinates to InnoDB. Thus, under active LOCK TABLES FOR BACKUP, the binary log coordinates in InnoDB are consistent with its redo log and any non-transactional updates (as the latter are blocked by LOCK TABLES FOR BACKUP). It is planned that this change will enable Percona XtraBackup to avoid issuing the more invasive LOCK BINLOG FOR BACKUP command under some circumstances.
  • innodb_stress has been added to the list of default MTR suites. For most supported systems satisfying the newly added dependencies is straightforward, but on CentOS 5, the default Python is too old. Thus python26 and python26-mysqldb packages should be installed there and python26 should be made the default python for the testsuite environment.
  • Three new TokuDB variables, tokudb_client_pool_threads, tokudb_cachetable_pool_threads, and tokudb_checkpoint_pool_threads, have been implemented to improve the controlling of thread pool size.
  • Percona Server has implemented new tokudb_enable_partial_eviction option in TokuDB to allow disabling of partial eviction of nodes.
  • Percona Server has implemented new tokudb_compress_buffers_before_eviction option in TokuDB which allows the evictor to compress unused internal node partitions in order to reduce memory requirements as a first step of partial eviction before fully evicting the partition and eventually the entire node.

Bugs Fixed:

  • Querying GLOBAL_TEMPORARY_TABLES table would crash threads working with internal temporary tables used by ALTER TABLE. Bug fixed #1113388.
  • Selecting from GLOBAL_TEMPORARY_TABLES table while running an online ALTER TABLE on a partitioned table in parallel could lead to a server crash. Bug fixed #1193264.
  • Kill Idle Transactions feature could cause an assertion on a debug build due to a race condition. Bug fixed #1206008.
  • libmylsqclient_16 symbols were missing in Percona Server shared library package on RHEL/CentOS 7. Bug fixed #1420691.
  • Prepared statements in stored procedures could crash Response Time Distribution plugin. Bug fixed #1426345.
  • When variable innodb_corrupt_table_action is set to Warn/Salvage then server could crash on updating table statistics during query execution on affected tables. Bug fixed #1426610.
  • A sequence of failing TRUNCATE TABLE, then insert to that table, and CHECK TABLE would crash the server. Bug fixed #1433197.
  • When InnoDB change buffering was enabled and used, executing a FLUSH TABLE ... FOR EXPORT would cause a server hang and SHOW PROCESSLIST would show that table in a System Lock state. Bug fixed #1454441 (upstream #77011).
  • FLUSH INDEX_STATISTICS / FLUSH CHANGED_PAGE_BITMAPS and FLUSH USER_STATISTICS / RESET CHANGE_PAGE_BITMAPS pairs of commands were inadvertently joined, i.e. issuing either command had the effect of both. The first pair, besides flushing both index statistics and changed page bitmaps, had the effect of FLUSH INDEX_STATISTICS requiring SUPER instead of RELOAD privilege. The second pair resulted in FLUSH USER_STATISTICS destroying changed page bitmaps. Bug fixed #1472251.
  • Enabling super_read_only together with read_only in my.cnf would result in server crashing on startup. The workaround is to enable super_read_only dynamically on a running server.Bug fixed #1389935 ( the fix was ported from Facebook patch #14d5d9).
  • Enabling super_read_only as a command line option would not enable read_only. Bug fixed #1389935 ( the fix was ported from Facebook patch #14d5d9).
  • If a new connection thread was created while a SHOW PROCESSLIST command or a INFORMATION_SCHEMA.PROCESSLIST query was in progress, it could have a negative TIME_MS value returned in the PROCESSLIST output. Bug fixed #1379582.
  • With support for Fake Changes enabled, a write to an InnoDB table that would cause B-tree reorganization could lead to server assertion with the unknown error code 1000. Bug fixed #1410410.
  • Running ALTER TABLE ... DISCARD TABLESPACE with support for Fake Changes enabled would lead to a server assertion. Bug fixed #1372219.
  • ALTER TABLE did not allow to change a column to NOT NULL if the column was referenced in a foreign key. Bug fixed #1470677 (upstream #77591).
  • DROP TABLE IF EXISTS which fails due to a foreign key presence could break replication if slave had replication filters. Bug fixed #1475107 (upstream #77684).
  • Enabling Log Archiving for XtraDB when --innodb-read-only option was enabled would cause server to crash. Bug fixed #1484432.
  • LRU manager thread flushing was being accounted to buffer_flush_background InnoDB metrics which was wrong and redundant. Bug fixed #1491420.
  • Fixed a typo in the cleaner thread loop where n_flushed is added to, instead of reset, by the idle server flushing. This may cause a cleaner thread sleep skip on a non-idle server. Bug fixed #1491435.
  • Running TokuDB for a long time with lots of file open and close operations could lead to a server crash due to server incorrectly setting a reserved value. Bug fixed #690.
  • Fixed TokuDB memory leak due to data race in context status initialization. Bug fixed #697.
  • Removed unnecessary calls to malloc_usable_size() function in PerconaFT library to improve the performance. Bug fixed #682.

Other bugs fixed: #1370002, #1464468, #1287299, #1472256, #867, #870, #878, #658, #661, #663, #665, #687, #696, #698, #870, #685, and #878.

Release notes for Percona Server 5.6.26-74.0 are available in the online documentation. Please report any bugs on the launchpad bug tracker .

PREVIOUS POST
NEXT POST

7 Comments

  • When building 5.6.26-74.0 from source, I get the following compilation error:

    [ 71%] Building CXX object plugin/password_validation/CMakeFiles/validate_password.dir/validate_password.cc.o
    /usr/local/src/percona-server-PACKAGE/compile/percona-server-5.6.26-74.0/plugin/password_validation/validate_password.cc: In function ‘void read_dictionary_file()’:
    /usr/local/src/percona-server-PACKAGE/compile/percona-server-5.6.26-74.0/plugin/password_validation/validate_password.cc:183:10: error: exception handling disabled, use -fexceptions to enable
    catch (…) // no exceptions !
    ^
    make[2]: *** [plugin/password_validation/CMakeFiles/validate_password.dir/validate_password.cc.o] Error 1
    make[1]: *** [plugin/password_validation/CMakeFiles/validate_password.dir/all] Error 2
    make: *** [all] Error 2
    slackbuilder.sh: Make command ‘make’ failed in directory /usr/local/src/percona-server-PACKAGE/compile/percona-server-5.6.26-74.0

    It appears that a try/catch block has been added to validate_password.cc between 5.6.25 and 5.6.26.

    The default setting for my CMAKE_CXX_FLAGS included -fno-exceptions. When I removed -fno-exceptions, I was able to get past this compilation error.

    The next compilation error occurs in manager.cc, because Valgrind cannot be found (I don’t have it installed on my system). The error is:

    [ 71%] Building CXX object plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeFiles/HotBackup.dir/manager.cc.o
    /usr/local/src/percona-server-PACKAGE/compile/percona-server-5.6.26-74.0/plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/manager.cc:57:31: fatal error: valgrind/helgrind.h: No such file or directory
    #include
    ^
    compilation terminated.
    make[2]: *** [plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeFiles/HotBackup.dir/manager.cc.o] Error 1
    make[1]: *** [plugin/tokudb-backup-plugin/Percona-TokuBackup/backup/CMakeFiles/HotBackup.dir/all] Error 2
    make: *** [all] Error 2
    slackbuilder.sh: Make command ‘make’ failed in directory /usr/local/src/percona-server-PACKAGE/compile/percona-server-5.6.26-74.0

    It appears that I have no choice to build without Valgrind, since the inclusion of is not wrapped in any conditional logic.

    I am very happy that TokuDB has been added to Percona Server with this 5.6.26 release, but the source code quality is not up to Percona’s usual high standards.

  • The second issue is being tracked at at https://bugs.launchpad.net/percona-server/+bug/1494283 (and I see that Ken has already found it).

    It was a major project to merge the source trees and we are still resolving some (hopefully minor) issues.

  • Regarding the first issue – yes, you’ll have to build with -fexceptions or just use defaults (I suppose you had -fno-exceptions added somewhere).
    I have tried to build on ubuntu trusty with some defaults like “cmake .. -DBUILD_CONFIG=mysql_release -DCMAKE_BUILD_TYPE=RelWithDebInfo” and didn’t have that issue.

  • To Tomislav: Yes, I was building with -fno-exceptions, and once I removed that from my CMAKE_CXX_FLAGS, the compilation continued. I am puzzled as to why the authors felt the need to use a try/catch block in only one single place throughout all of the code. My understanding is that using exceptions increases code size by about 7%. If the code does not require them, it would be best to compile with -fno-exceptions. Is there a way to remove this one occurrence of try/catch?

    To Laurynas: I noticed that the Valgrind issue was being tracked, and added my own comment to it. I can imagine how difficult it was to merge the two code bases, so I will temper my “code quality” comment above with the reality that this was a complicated process. Can you propose a workaround in order to get Percona Server to build? Am I forced to download and install a Valgrind package?

    Thank you for your advice and assistance.

  • Ken –

    If you don’t need the TokuDB backup plugin, just nuke plugin/tokudb-backup-plugin from your source tree before build.

    Re. exceptions. I recall 5.6 source tree introducing and then removing try/catch blocks later. And this try block surrounds iostream handling, which is not really an exception-enabled part of C++ library anyway. So I’d suggest to log a report on bugs.mysql.com re. this, and maybe this will be get removed too.

    Same workaround as with TokuDB backup plugin is available: if you don’t need the plugin, remove it from your source tree and -fno-exceptions should work again.

  • Hi Laurynas,

    ty for your answer. Do you have any reference regarding removing try/catch from C++ source in mysql?
    I’d like to open a bug-report, as this currently blocks building new debian/ubuntu packages.

    Cheerr
    B

Leave a Reply