lp:~laurynas-biveinis/percona-server/merge-5.6.15

Created by Laurynas Biveinis on 2013-12-05 and last modified on 2013-12-16
Get this branch:
bzr branch lp:~laurynas-biveinis/percona-server/merge-5.6.15
Only Laurynas Biveinis can upload to this branch. If you are Laurynas Biveinis please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Recent revisions

509. By Laurynas Biveinis on 2013-12-05

Merge MySQL 5.6.15, implementing
https://blueprints.launchpad.net/percona-server/+spec/merge-5.6.15,
and taking the upstream fixes for bug 1203050 and bug 1186748.

At the same time fix bug 1258154 /
http://bugs.mysql.com/bug.php?id=71092 (InnoDB FTS introduced new
mutex sync level in 5.6.15, broke UNIV_SYNC_DEBUG) by handling
newly-introduced SYNC_FTS_TOKENIZE sync level support to
sync_thread_add_level().

Also, make the statement timeout feature compatible with the upstream
change [1] that adjusted MDL_context::acquire_lock() to return
ER_QUERY_INTERRUPTED error to the client for any killed THDs,
resulting that error being returned intset of ER_QUERY_TIMEOUT for the
statements that exceed the statement timeout while waiting for the MDL
lock. Fix by introducing new method MDL_context_owner::is_timedout(),
providing its implementation THD::is_timedout() that returns true on
the statement timeout, and using this in MDL_context::acquire_lock()
not to return ER_QUERY_INTERRUPTED to the client.

Revert our fixes for:
- bug 1180481;
- bug 1050758 / http://bugs.mysql.com/bug.php?id=69653;

InnoDB priority mutex and rwlocks were adjusted for the new function
sync_array_get_and_reserve_cell().

Adjusted percona_utility_user testcase to ignore "did not write failed
GRANT to binlog" warning.

Adjusted change_user_notembedded testcase to account for spurious
"ERROR 42000: Unknown database 'mysql_native_password'" error that was
fixed in [2] but was previously recorded in the testcase.

As in the 5.5.35 merge, the upstream fix for bug 1223196 was
reverted. The upstream fixes for bug 1223196, bug 1049871, bug
1083377
will be verified and our fixes will be reverted separately.

Imported man pages from mysql-5.6.15.tar.gz.

[1]

5.6$ bzr log -r 5577
------------------------------------------------------------
revno: 5577
committer: Joao Gramacho <email address hidden>
branch nick: mysql-5.6
timestamp: Thu 2013-10-31 21:42:33 +0000
message:
  Bug#16861624 KILLING WAITING SLAVE SQL THREAD:
               M_STATUS == DA_ERROR || M_STATUS == DA_OK

  Problem:
  =======

  An assert will fail when the replication sql thread on a slave server
  is killed while waiting for commit lock will.

  Analysis:
  ========

  In the case of a failed commit attempt at
  Xid_log_event::do_apply_event(), an error message will be reported
  informing the reason why the commit could not be completed.

  The error message to be reported is collected using message() at
  sql_error.h that contains an assert expecting that current m_status
  must be DA_ERROR or DA_OK before returning the message.

  The problem happens when the SQL thread is waiting for the commit lock
  at MDL_context::acquire_lock and is killed.

  In this case, the resulting wait_status will be MDL_wait::KILLED, and
  will result in acquire_lock() returning an error but without throwing
  one (both other cases, MDL_wait::VICTIM and MDL_wait::TIMEOUT, throw
  errors using my_error()).

  So, in the case of a thread being deliberate killed while waiting for
  a lock would lead to a case where no error was flagged, but also no
  success was flagged, making the assert expecting DA_ERROR or DA_OK to
  fail.

  Fix:
  ===

  The code in MDL_context::acquire_lock in mysql-5.7 already throws an
  error for MDL_wait::KILLED. This patch just back-ported this behavior.

  Added also some debug sync points to easy putting sql thread in
  "Waiting for commit lock" state.

[2]

5.6$ bzr log -r 5460
------------------------------------------------------------
revno: 5460
committer: Igor Solodovnikov <email address hidden>
branch nick: mysql-5.6
timestamp: Thu 2013-09-19 02:27:49 +0300
message:
  Bug #17351732 MYSQL_CHANGE_USER() API RETURNS ERROR
                  UNKNOWN DATABASE 'MYSQL_NATIVE_PASSWORD'

  Malformed packed was created in send_client_reply_packet()
  due to wrong handling of CLIENT_CONNECT_WITH_DB flag.
  Fixed problem in mysql_change_user()'s handling of mysql
  handle which could lead to free()ing static string literal.

Branch metadata

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