1. 25 Sep, 2015 1 commit
    • Nirbhay Choubey's avatar
      MDEV-8208: Sporadic SEGFAULT on startup · 13615c5e
      Nirbhay Choubey authored
      Addendum:
      * Before calling THD::init_for_queries(), flip the current_thd to wsrep
      thread so that memory gets allocated for the right THD.
      * Use wsrep_creating_startup_threads instead of plugins_are_initialized
      as the condition for the execution of THD::init_for_queries() within
      start_wsrep_THD(), as use of latter could still leave some room for
      race.
      13615c5e
  2. 22 Sep, 2015 2 commits
  3. 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
  4. 15 Sep, 2015 2 commits
  5. 09 Sep, 2015 11 commits
  6. 22 Aug, 2015 1 commit
  7. 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
  8. 20 Aug, 2015 1 commit
  9. 18 Aug, 2015 1 commit
  10. 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
  11. 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
  12. 07 Aug, 2015 1 commit
  13. 04 Aug, 2015 1 commit
  14. 03 Aug, 2015 1 commit
  15. 01 Aug, 2015 3 commits
  16. 31 Jul, 2015 10 commits