MySQL Forums
Forum List  »  Announcements

MySQL Community Server 5.6.22 has been released
Posted by: Vishal Chaudhary
Date: December 01, 2014 11:46AM

Dear MySQL users,

MySQL Server 5.6.22, a new version of the popular Open Source
Database Management System, has been released. MySQL 5.6.22 is
recommended for use on production systems.

For an overview of what's new in MySQL 5.6, please see

http://dev.mysql.com/doc/refman/5.6/en/mysql-nutshell.html

    Starting with 5.6.11, Microsoft Windows packages for MySQL 5.6
    are available both as a "full" installer and as a "web" installer.
    The full installer is significantly larger and comes bundled with
    the latest software releases available. This bundle makes it easy
    to download and configure a full server and development suite.

    The web installer doesn't come bundled with any actual products
    and instead relies on download-on-demand to fetch only the
    products you choose to install. This makes the initial download
    much smaller but increases install time as the individual products
    will need to be downloaded.

For information on installing MySQL 5.6.22 on new servers or upgrading
to MySQL 5.6.22 from previous MySQL releases, please see

http://dev.mysql.com/doc/refman/5.6/en/installing.html

MySQL Server is available in source and binary form for a number of
platforms from our download pages at

http://dev.mysql.com/downloads/

Not all mirror sites may be up to date at this point in time, so if you
can't find this version on some mirror, please try again later or choose
another download site.

We welcome and appreciate your feedback, bug reports, bug fixes,
patches, etc:

https://wikis.oracle.com/display/mysql/Contributing

The following section lists the changes in MySQL 5.6 since
the release of MySQL 5.6.21. It may also be viewed
online at

http://dev.mysql.com/doc/relnotes/mysql/5.6/en/news-5-6-22.html

Enjoy!

Changes in MySQL 5.6.22 (2014-12-1)

   Compilation Notes

     * Noisy compiler warnings on FreeBSD 10 were silenced. (Bug
       #18790490)

     * CMake workarounds for older Mac OS X and XCode versions
       were removed. On Mac OS X, compilation always uses Clang,
       even for 32-bit builds.
       Compilation on Mac OS X is now supported for Mac OS 10.8
       and up, using XCode 5 and up. Compilation on older
       versions may work but is unsupported. (Bug #18510941)

     * Previously, the MYSQL_MAINTAINER_MODE CMake option was
       turned on by default for debug builds and off for release
       builds, and MYSQL_MAINTAINER_MODE caused -Werror to be
       enabled when building with GCC. This made it cumbersome
       to enable -Werror under certain conditions, such as when
       compiling with Clang.
       Now, MYSQL_MAINTAINER_MODE is on by default when
       compiling debug builds with GCC, and
       MYSQL_MAINTAINER_MODE enbles -Werror regardless of
       whether GCC or Clang is used. Enabling -Werror with Clang
       can be done simply by explicitly setting
       -DMYSQL_MAINTAINER_MODE=1 when running CMake. In
       addition, some compilation warnings reported by Clang 3.4
       were fixed, making it possible to build the default debug
       build with -Werror. (Bug #18313717)

     * Build support was modified to produce the same warnings
       for Clang as for gcc. (Bug #17959689)

     * CMake configuration for the Clang compiler sets more
       appropriate flags for building on Linux. Specifically, -g
       -fno-omit-frame-pointer -fno-strict-aliasing is now
       added. (Bug #17633291)

   Security Notes

     * The linked OpenSSL library for the MySQL Commercial
       Server has been updated from version 1.0.1h to version
       1.0.1j. Issues fixed in the new version are described at
       http://www.openssl.org/news/vulnerabilities.html.
       This change does not affect the Oracle-produced MySQL
       Community build of MySQL Server, which uses the yaSSL
       library instead. (Bug #74174, Bug #19717832)

   Functionality Added or Changed

     * Replication: The variable binlogging_impossible_mode has
       been renamed binlog_error_action.
       binlogging_impossible_mode is now deprecated. (Bug
       #19507567)

     * The new -DWITH_UBSAN=ON CMake option enables the
       Undefined Behavior Sanitizer. This feature is supported
       by GCC 4.9 and up, and Clang 3.4 and up. (Bug #19587393)

   Bugs Fixed

     * InnoDB: An ALTER TABLE operation raised an assertion.
       When a foreign key object was removed from the dictionary
       cache, an incorrect foreign key object was removed from
       the rb-tree. (Bug #19908343)
       References: This bug is a regression of Bug #18806829.

     * InnoDB: In debug builds, setting the
       innodb_limit_optimistic_insert_debug debug configuration
       option to 1 would cause an infinite B-tree page split.
       (Bug #19904003, Bug #74605)

     * InnoDB: The dict_set_corrupted() function would attempt
       to update the clustered index of the SYS_INDEXES data
       dictionary table incorrectly. (Bug #19584379)

     * InnoDB: Pages with a checksum value of zero were
       incorrectly treated as empty pages. A page should only be
       considered empty if its checksum value and LSN field
       values are zero. (Bug #19500258, Bug #73689)
       References: This bug is a regression of Bug #17335427.

     * InnoDB: The InnoDB data dictionary was not updated when a
       ALTER TABLE ... CHANGE COLUMN operation changed the case
       of the column name. (Bug #19465984)

     * InnoDB: A memory access violation caused
       fts_optimize_thread and mysqld to terminate. (Bug
       #19314480)

     * InnoDB: A procedure, which was called from a function to
       perform an operation on a temporary table, caused the
       server to halt. (Bug #19306524)

     * InnoDB: Attempting to shut down the server after starting
       the server with innodb_force_recovery=6 would result in a
       hang. (Bug #19265668, Bug #73341)

     * InnoDB: A COMMIT operation related to full-text search
       resulted in a segmentation fault. (Bug #18503734)

     * InnoDB: If a database is named using uppercase letters on
       a MySQL server with lower_case_table_names=2 (which is
       default on Mac OS X), InnoDB stores the database name as
       specified in SYS_TABLES and in lowercase on disk. During
       crash recovery, the case mismatch resulted in a conflict
       that would mark the tablespace .ibd file as missing. The
       patch for this bug converts database names to lowercase
       on crash recovery. (Bug #18412598, Bug #72043)

     * InnoDB: In debug builds, the InnoDB Lock Monitor asserted
       after a DROP TABLE operation, and the InnoDB Monitor
       encountered an assertion in buf_page_get_gen. (Bug
       #18062698, Bug #71343, Bug #18173184, Bug #68116)

     * InnoDB: A CREATE TABLE operation that failed with
       innodb_strict_mode=ON would succeed without printing a
       warning with innodb_strict_mode=OFF. (Bug #17852083)

     * InnoDB: For explicit cache coherency, a write barrier was
       added to the head of os_thread_create_func(), and a read
       barrier was added to before the assertion code in
       rw_lock_free_func(). (Bug #13364876, Bug #62692, Bug
       #18870970, Bug #72809)

     * InnoDB: The MySQL 5.6.20 patch for Bug #16963396 / MySQL
       Bug #69477 limited the size of redo log BLOB writes to
       10% of the redo log file size. This limitation has been
       relaxed. Redo log BLOB writes are now limited to 10% of
       the total redo log size (innodb_log_file_size *
       innodb_log_files_in_group).
       As a result, innodb_log_file_size *
       innodb_log_files_in_group should be 10 times larger than
       the largest BLOB data size found in the rows of your
       tables plus the length of other variable length fields
       (VARCHAR, VARBINARY, and TEXT type fields). No action is
       required if innodb_log_file_size *
       innodb_log_files_in_group is already sufficiently large
       or if your tables contain no BLOB data. (Bug #73707, Bug
       #19498877)

     * Partitioning: When multiple columns are used in KEY
       partitioning, their order may help determine the
       partition in which the row is placed. Changing this order
       by means of an ALTER TABLE that uses ALGORITHM=INPLACE
       can lead to inconsistency when placing rows in
       partitions; in other words, a row inserted before such an
       operation operation is placed in one partition, but the
       same row inserted afterwards is placed in a different
       one. For this reason, altering the order of a multicolumn
       index online is no longer allowed when that index is also
       used as the base for partitioning the table by KEY;
       instead, you must use a copying ALTER TABLE to perform
       the change. (Bug #17896265)

     * Replication: When using a MySQL version that had been
       compiled with the WITH_DEBUG option enabled, using
       expire_logs_days to purge binary logs caused a restart to
       crash the server. This problem arose after the fix for
       Bug #17283409. The fix ensures that current_thd is
       checked before calling DEBUG_SYNC(). (Bug #19553099)

     * Replication: Sometimes the slave I/O thread leaves a
       partial group in the current relay log, for example when
       it is killed or stopped. After it is restarted, a new
       relay log is created on rotation and a pair of
       ROTATE_EVENT and FORMAT_DESCRIPTION_EVENT is replicated
       from master and written into the new relay log. When
       using a multi-threaded slave, problems such as error 1755
       were encountered when applying the remaining part of the
       group in the relay log. This fix ensures that if
       MASTER_AUTO_POSITION is enabled, then the worker rolls
       back the partial group, finishes its work, and then
       applies the new complete copy of the group. If
       MASTER_AUTO_POSITION is disabled, the worker does not
       roll back the partial group. (Bug #19545298)

     * Replication: When using row-based replication with
       slave_type_conversions enabled, a binary log with more
       than one Rows_log_event in succession caused a crash.
       This was due to the temporary tables generated as part of
       the slave_type_conversions process being released too
       early. This fix ensures that the temporary tables are not
       released too early, and also ensures that long
       transactions do not cause an out of memory error. (Bug
       #18770469, Bug #19704825)

     * Replication: When using binary log files that had been
       manually copied from the master, for example to avoid I/O
       thread reading delay, the multi-threaded slave generated
       error 1755. Because the Previous_gtid_log_event is logged
       using the master's server_id and not the slave's
       server_id, the previous events were not being skipped
       correctly. This fix ensures that the events in
       Previous_gtid_log_event are always skipped, regardless of
       whether they are from the relay log (generated on the
       slave) or from the binary log (generated on the master
       and manually copied to the slave as the relay log). (Bug
       #17812024)

     * Replication: When replicating from an earlier version
       MySQL master, such as version 4.1, checksums are not used
       for events. Replicating to a slave running a newer
       version of MySQL, such as version 5.6, which has
       slave_sql_verify_checksum enabled by default meant that
       the last 4 bytes of events from the older master were
       being incorrectly interpreted as the checksum. A warning
       is now generated and to avoid such a situation, set
       slave_sql_verify_checksum=0 to disable checksums on the
       slave. (Bug #17276183)

     * Replication: When restarting MySQL with
       relay_log_recovery enabled to recover from a crash, if
       the SQL thread had never been started, the position from
       which to start recovery was not correctly initialized
       because Relay_Master_Log_File was missing. This fix
       ensures that in such a situation each of the relay logs,
       starting from the first relay log file, is searched for a
       rotate event from the master, which specifies where
       replication started from. This rotate event is then used
       to set the SQL thread's Relay_Master_Log_File and
       Relay_Log_Pos and recovery continues as normal. (Bug
       #73039, Bug #19021091)

     * Replication: When using GTIDs for replication and with
       MASTER_AUTO_POSITION enabled, if a slave requested GTIDs
       which had been already been purged by the master, the
       master was sending all available GTIDs. This happened
       because the master reads all available binary logs and
       searches for a binary log which contains a GTID that is
       not contained in the union of gtid_executed and
       gtid_retrieved. If such a GTID is found, the master
       starts sending the information starting from that
       location. In a situation where the union of the slave's
       gtid_executed and gtid_retreived set did not contain the
       master's gtid_purged set, the slave would expect GTIDs
       which had already been purged by the master. This fix
       ensures that in such a situation, the slave's I/O thread
       is aborted with an error "Master has purged binary logs
       containing GTIDs that the slave requires.". (Bug #73032,
       Bug #19012085)

     * Replication: A kernel mutex contention was being caused
       because mysqlbinlog was calling localtime() for every
       event read, which in turn called stat(/etc/localtime).
       This fix ensures that mysqlbinlog uses localtime_r(),
       which is optimized to store the read only timezone
       internal structure. This also means that mysqlbinlog now
       establishes the time zone at the beginning of processing
       and you can not change it during processing. This is the
       same behavior as MySQL server. (Bug #72701, Bug
       #18808072)

     * Replication: The global scope for the sql_log_bin system
       variable has been deprecated, and this variable can now
       be set with session scope only. The statement SET GLOBAL
       SQL_LOG_BIN now produces an error. It remains possible
       for now to read the global value of sql_log_bin, but you
       should act to remove from your applications any
       dependencies on reading this value, as the ability to do
       so will be removed in a future MySQL release. (Bug
       #67433, Bug #15868071)

     * InnoDB table checksum calculation could yield an
       incorrect result if the value of the
       innodb_checksum_algorithm system variable was modified
       during the operation. (Bug #19931177)

     * GROUP BY on a CHAR(0) NOT NULL column could lead to a
       server exit. (Bug #19660891)

     * With the validate_password plugin activated and
       dictionary lookups enabled, passing a user-defined
       variable to PASSWORD() could cause a server exit. (Bug
       #19388163)

     * Debian packages were built using the complex set of
       character sets, not the all set of character sets. (Bug
       #19363801)

     * mysqldump failed to report a disk-full error if the dump
       destination was located on an NFS mount. (Bug #18817867)

     * InnoDB permitted a foreign key to be created referencing
       a parent table for which the user did not have sufficient
       privileges. (Bug #18790730)

     * Copying InnoDB tables containing full-text columns from
       Windows to Linux caused a server exit on Linux during
       full-text index initialization. (Bug #18285007)

     * On Windows, the replace utility did not work. (Bug
       #16581605)

     * On CentOS 6, specifying a relative path name for the
       --socket option caused MySQL startup script failure. (Bug
       #74111, Bug #19775856)

     * In Solaris 11.2, dtrace -V output changed from Sun D to
       Oracle D, causing detection of DTrace availability to
       fail during MySQL configuration. (Bug #73826, Bug
       #19586917)

     * mysql_config --libs_r produces output containing link
       flags for libmysqlclient_r, even though that library was
       removed in MySQL 5.5 and replaced with a symlink to the
       underlying libmysqlclient library. The output now refers
       directly to libmysqlclient. (The implication is that it
       is no longer necessary to maintain the symlink for the
       sake of being able to use mysql_config --libs_r.) (Bug
       #73724, Bug #19506315)

     * For statement digest calculation, the Performance Schema
       failed to recognize signed literal numbers as values
       representable by ? and created multiple digests for
       statements that should have had the same signature. Now
       all instances of unary plus and unary minus followed by a
       number reduce to ? in digests. (Bug #73504, Bug
       #19389709)

     * Compilation on Windows using Visual Studio 2013 resulted
       in "unresolved external symbol" errors. (Bug #73461, Bug
       #19351573)

     * OLD_PASSWORD() is deprecated, but no warning was produced
       when it was invoked. (Bug #73376, Bug #19285177)

     * Certain queries for which subquery materialization or
       UNION DISTINCT was used together with a hash index on a
       temporary table could produce incorrect results or cause
       a server exit. (Bug #73368, Bug #19297190)

     * The IS_FREE_LOCK() and IS_USED_LOCK() function
       implementations contained a race condition due to which
       they could access freed memory when a user lock was
       concurrently checked and freed. Accessing freed memory
       could result in an incorect function return value or
       server exit. (Bug #73123, Bug #19070633)

     * LOCK TABLES sometimes acquired an insufficiently strong
       lock for implicitly locked tables. (Bug #72887, Bug
       #18913551)

     * The ENABLED_LOCAL_INFILE CMake option incorrectly was
       enabled by default. (Bug #72106, Bug #18448743)

     * Use of ODBC-format date literals could produce incorrect
       query results. (Bug #69233, Bug #16812821)

     * mysql_install_db ignored option files in the default
       locations. (Bug #68807, Bug #16570238)

     * mysql_setpermission failed to properly quote user names
       in SQL statements that it generated. (Bug #66317, Bug
       #14486004)


On Behalf of the MySQL/ORACLE RE Team,

Vishal Chaudhary

Options: ReplyQuote


Subject
Views
Written By
Posted
MySQL Community Server 5.6.22 has been released
5375
December 01, 2014 11:46AM


Sorry, you can't reply to this topic. It has been closed.

Content reproduced on this site is the property of the respective copyright holders. It is not reviewed in advance by Oracle and does not necessarily represent the opinion of Oracle or any other party.