Percona 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_version variable now has the same value as the Percona Server version variable.
server_id variable per session, by implementing the new pseudo_server_id variable. This feature is also fixing upstream bug #35125.
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.
tokudb_client_pool_threads, tokudb_cachetable_pool_threads, and tokudb_checkpoint_pool_threads, have been implemented to improve the controlling of thread pool size.
tokudb_enable_partial_eviction option in TokuDB to allow disabling of partial eviction of nodes.
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:
GLOBAL_TEMPORARY_TABLES table would crash threads working with internal temporary tables used by ALTER TABLE. Bug fixed #1113388.
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.
libmylsqclient_16 symbols were missing in Percona Server shared library package on RHEL/CentOS 7. Bug fixed #1420691.
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.
TRUNCATE TABLE, then insert to that table, and CHECK TABLE would crash the server. Bug fixed #1433197.
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.
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).
super_read_only as a command line option would not enable read_only. Bug fixed #1389935 ( the fix was ported from Facebook patch #14d5d9).
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.
unknown error code 1000. Bug fixed #1410410.
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).
--innodb-read-only option was enabled would cause server to crash. Bug fixed #1484432.
buffer_flush_background InnoDB metrics which was wrong and redundant. Bug fixed #1491420.
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.
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 .
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
Bjoern –
Sorry, I am unable to find them at the moment. If you file a bug, please post a link here. Thanks!