1. 28 Sep, 2016 1 commit
    • Sergei Petrunia's avatar
      MDEV-10649: Optimizer sometimes use "index" instead of "range" access for UPDATE · a53f3c6d
      Sergei Petrunia authored
      (Fixing both InnoDB and XtraDB)
      
      Re-opening a TABLE object (after e.g. FLUSH TABLES or open table cache
      eviction) causes ha_innobase to call
      dict_stats_update(DICT_STATS_FETCH_ONLY_IF_NOT_IN_MEMORY).
      
      Inside this call, the following is done:
        dict_stats_empty_table(table);
        dict_stats_copy(table, t);
      
      On the other hand, commands like UPDATE make this call to get the "rows in
      table" statistics in table->stats.records:
      
        ha_innobase->info(HA_STATUS_VARIABLE|HA_STATUS_NO_LOCK)
      
      note the HA_STATUS_NO_LOCK parameter. It means, no locks are taken by
      ::info() If the ::info() call happens between dict_stats_empty_table
      and dict_stats_copy calls, the UPDATE's optimizer will get an estimate
      of table->stats.records=1, which causes it to pick a full table scan,
      which in turn will take a lot of row locks and cause other bad
      consequences.
      a53f3c6d
  2. 24 Aug, 2016 1 commit
  3. 23 Aug, 2016 3 commits
  4. 22 Aug, 2016 2 commits
    • Monty's avatar
      Minor cleanups · a5051cd3
      Monty authored
      - Remove impossible test in test_quick_select
      - Ensure that is_fatal_error is set if we run out of stack space
      a5051cd3
    • Monty's avatar
      MDEV-10630 rpl.rpl_mdev6020 fails in buildbot with timeout · b5110969
      Monty authored
      The issue was that when running with valgrind the wait for master_pos_Wait()
      was not long enough.
      
      This patch also fixes two other failures that could affect rpl_mdev6020:
      - check_if_conflicting_replication_locks() didn't properly check domains
      - 'did_mark_start_commit' was after signals to other threads was sent which could
        get the variable read too early.
      b5110969
  5. 21 Aug, 2016 3 commits
    • Monty's avatar
      Fixed "Packets out of order" warning message on stdout in clients, · 5932fa78
      Monty authored
      compiled for debugging, when the server goes down
      
      This happens in the following scenario:
      - Server gets a shutdown message
      - Servers sends error ER_CONNECTION_KILLED to the clients connection
      - The client sends a query to the server, before the server has time to
        close the connection to the client
      - Client reads the ER_CONNECTION_KILLED error message
      
      In the above case, the packet number for the reply is one less than
      what the client expected and the client prints "Packets out of order".
      
      Fixed the following way:
      - The client accepts now error packages with a packet number
        one less than expected.
      - To ensure that this issue can be detected early in my_real_read(), error
        messages sent to the client are not compressed, even when compressed protocol is used.
      5932fa78
    • Monty's avatar
      Added new status variables to make it easier to debug certain problems: · 6f31dd09
      Monty authored
      - Handler_read_retry
      - Update_scan
      - Delete_scan
      6f31dd09
    • Monty's avatar
      Cleanups and minor fixes · 8d5a0d65
      Monty authored
      - Fixed typos
      - Added --core-on-failure to mysql-test-run
      - More DBUG_PRINT in viosocket.c
      - Don't forget CLIENT_REMEMBER_OPTIONS for compressed slave protocol
      - Removed not used stage variables
      8d5a0d65
  6. 16 Aug, 2016 1 commit
  7. 15 Aug, 2016 1 commit
  8. 14 Aug, 2016 1 commit
  9. 13 Aug, 2016 3 commits
  10. 12 Aug, 2016 1 commit
    • Monty's avatar
      With parallel replication we have had a couple of bugs where DDL's · 98e36b29
      Monty authored
      (like DROP TABLE) has been scheduled before conflicting DDL's (like INSERT)
      are commited.
      
      What makes these bugs hard to detect is that in most cases any wrong
      schduling are caught by MDL locks. It's only when there are timing issues
      that the bugs (usually deadlocks) are noticed.
      
      This patch adds a DBUG_ASSERT() that detects, in parallel replication,
      if a DDL is scheduled before any depending DML'S are commited.
      It does this be checking if there are any conflicting replication locks
      when the DDL is about to wait for getting it's MDL lock.
      
      I also did some minor code cleanups in sql_base.cc to make this code
      similar to other related code.
      98e36b29
  11. 11 Aug, 2016 1 commit
  12. 10 Aug, 2016 12 commits
  13. 09 Aug, 2016 2 commits
  14. 08 Aug, 2016 5 commits
  15. 07 Aug, 2016 1 commit
  16. 04 Aug, 2016 2 commits