1. 07 Aug, 2015 1 commit
  2. 04 Aug, 2015 4 commits
    • Kristian Nielsen's avatar
      Merge branch 'mdev8302-3' into 10.1 · afd59b57
      Kristian Nielsen authored
      afd59b57
    • Kristian Nielsen's avatar
      Fix embedded server build · 5ca061e6
      Kristian Nielsen authored
      5ca061e6
    • Kristian Nielsen's avatar
      Merge MDEV-8302 into 10.1 · dbd20579
      Kristian Nielsen authored
      dbd20579
    • Kristian Nielsen's avatar
      MDEV-8302: Duplicate key with parallel replication · 9b9c5e89
      Kristian Nielsen authored
      This bug is essentially another variant of MDEV-7458.
      
      If a transaction conflict caused a deadlock kill of T2 in record_gtid()
      during commit, the code would do a rollback _before_ running
      rgi->unmark_start_commit(). This creates a race where following transactions
      could start too early (before T2 has completed its transaction retry). This
      in turn could lead to replication failure, if there was a conflict that
      caused eg. duplicate key error or similar.
      
      The fix is to remove these rollbacks (in Query_log_event::do_apply_event()
      and Xid_log_event::do_apply_event(). They seem out-of-place; code in
      log_event.cc generally does not roll back on error, this is handled higher
      up.
      
      In addition, because of the extreme difficulty of reproducing bugs like
      MDEV-7458 and MDEV-8302, this patch adds some extra precations to try to
      detect (in debug builds) or prevent (in release builds) similar bugs.
      ha_rollback_trans() will now call unmark_start_commit() if needed (and
      assert in debug build when a caller does rollback without unmark first).
      
      We also add an extra check for thd->killed() so that we avoid doing
      mark_start_commit() if we already have a pending deadlock kill.
      
      And we add a missing unmark_start_commit() call in the error case, found by
      the above assertion.
      9b9c5e89
  3. 24 Jul, 2015 1 commit
  4. 23 Jul, 2015 2 commits
  5. 22 Jul, 2015 2 commits
  6. 21 Jul, 2015 1 commit
    • Jan Lindström's avatar
      MDEV-8501: encryption.create_or_replace fails in buildbot on P8 builders · 62b5a561
      Jan Lindström authored
      Analysis: There is race between drop table and encryption threads that
      could cause encryption thread to enter mutex that has been already
      released.
      
      Fix: When destroying crypt_data first enter the mutex and set crypt data
      unavailable, then release the memory and clean up the data. This should
      make the race more unprobable. Additionally, added big_test for
      create_or_replace as it could fail testcase timeout
      if you have slow I/O (tested that testcase passes with --mem).
      62b5a561
  7. 20 Jul, 2015 5 commits
  8. 19 Jul, 2015 4 commits
  9. 17 Jul, 2015 1 commit
  10. 16 Jul, 2015 2 commits
    • Monty's avatar
      Fix for MySQL bug #77448 Inconsistent handling of RAND() in WHERE and HAVING · 0ad00c66
      Monty authored
      Problem was that for queries of type:
      
      select rand() r, rand()  p, rand() = rand() from a having r = p
      
      The optimizer thought that r = p was same as rand() = rand() and this would always be true.
      
      The problem was that when testing if two expressions are equal, we didn't take into account no determinstic functions.
      
      The fix is to not compare non deterministic functions as equal.
      0ad00c66
    • Monty's avatar
      MDEV-8469 Add RESET MASTER TO x to allow specification of binlog file nr · 872a953b
      Monty authored
      Other things:
      - Avoid calling init_and_set_log_file_name() when opening binary log.
      - Remove newlines early when reading from index file.
      - Ensure that reset_logs() will work even if thd is 0 (Can happen on startup)
      - Added thd to sart_slave_threads() for better error handling.
      872a953b
  11. 15 Jul, 2015 1 commit
  12. 14 Jul, 2015 6 commits
  13. 13 Jul, 2015 1 commit
  14. 10 Jul, 2015 3 commits
  15. 09 Jul, 2015 2 commits
  16. 08 Jul, 2015 2 commits
  17. 07 Jul, 2015 2 commits