1. 22 Sep, 2015 1 commit
  2. 17 Sep, 2015 1 commit
    • Nirbhay Choubey's avatar
      MDEV-8208: Sporadic SEGFAULT on startup · db2e21bf
      Nirbhay Choubey authored
      Problem:
      When mysqld starts as a galera node, it creates 2 system threads
      (applier & rollbacker) using start_wsrep_THD(). These threads are
      created before plugin initialization (plugin_init()) for SST methods
      like rsync and xtrabackup.
      
      The threads' initialization itself can proceed in parallel to mysqld's
      main thread of execution. As a result, the thread initialization code
      (start_wsrep_THD()) can end up accessing some un/partially initialized
      structures (like maria_hton, in this particular case) resulting in
      segfault.
      
      Solution:
      Fixed by calling THD::init_for_queries() (which accesses maria_hton)
      only after the plugins have been initialized.
      db2e21bf
  3. 15 Sep, 2015 2 commits
  4. 09 Sep, 2015 11 commits
  5. 22 Aug, 2015 1 commit
  6. 21 Aug, 2015 1 commit
    • Nirbhay Choubey's avatar
      MDEV-5146 : Bulk loads into partitioned table not working · 4ee28865
      Nirbhay Choubey authored
      When wsrep is enabled, for any update on innodb tables, the
      corresponding keys are appended to galera's transaction writeset
      (wsrep_append_keys()). However, for LOAD DATA, this got skipped
      if binary logging was disabled or it was non-ROW based.
      As a result, while the updates from LOAD DATA on non-partitioned
      tables replicated fine as wsrep implicitly enables binary logging
      (if not enabled, explicitly), the same did not work on partitioned
      tables as for partitioned tables the binary logging gets disabled
      temporarily (ha_partition::write_row()).
      
      Fixed by removing the unwanted conditions from the check.
      Also backported some changes from 10.0-galera to make sure
      wsrep_load_data_splitting affects LOAD DATA commands only.
      4ee28865
  7. 20 Aug, 2015 1 commit
  8. 18 Aug, 2015 1 commit
  9. 14 Aug, 2015 2 commits
    • Nirbhay Choubey's avatar
      Fix for some failing tests. · fe757e00
      Nirbhay Choubey authored
      fe757e00
    • Nirbhay Choubey's avatar
      MDEV-8617: Multiple galera tests failures with --ps-protocol · c18e0dab
      Nirbhay Choubey authored
      In galera cluster, when myisam replication is enabled
      (wsrep_replicate_myisam=ON), DML statements are replicated
      in open_tables(). However, in case of prepared statements,
      for an INSERT, open_tables() gets invoked twice. Once for
      COM_STMT_PREPARE (to validate and prepare INSERT) and later
      for COM_STMT_EXECUTE. As a result, the command gets replicated
      twice. Same happens for REPLACE, UPDATE and DELETE commands.
      Fixed by adding a check to not replicate during 'prepare'
      phase. Also changed the order of conditions to make it more
      efficient. Lastly, in order to support wsrep_dirty_reads, made
      changes to allow COM_STMT_XXX commands to continue past initial
      check even when wsrep is not ready.
      c18e0dab
  10. 12 Aug, 2015 1 commit
    • Nirbhay Choubey's avatar
      MDEV-8598 : Failed MySQL DDL commands and Galera replication · e998dffd
      Nirbhay Choubey authored
      RENAME TABLE, unlike other DDLs, was getting replicated before
      the access check was performed. As a result, the command could
      get get replicated and thus executed on other nodes, even if it
      fails on the originating node due to permission issues. Fixed by
      moving the logic to check user privileges before replicating the
      command.
      e998dffd
  11. 07 Aug, 2015 1 commit
  12. 04 Aug, 2015 1 commit
  13. 03 Aug, 2015 1 commit
  14. 01 Aug, 2015 3 commits
  15. 31 Jul, 2015 10 commits
  16. 29 Jul, 2015 1 commit
  17. 25 Jul, 2015 1 commit
    • Monty's avatar
      Fixed memory loss detected on P8. This can happen when we call after_flush but... · e40bc659
      Monty authored
      Fixed memory loss detected on P8. This can happen when we call after_flush but never call after_rollback() or after_commit().
      
      The old code used pthread_setspecific() to store temporary data used by the thread.
      This is not safe when used with thread pool, as the thread may change for the transaction.
      
      The fix is to save the data in THD, which is guaranteed to be properly freed.
      I also fixed the code so that we don't do a malloc() for every transaction.
      e40bc659