An error occurred fetching the project authors.
  1. 08 Jul, 2019 1 commit
  2. 27 Jun, 2019 1 commit
  3. 30 May, 2019 1 commit
    • Sujatha's avatar
      MDEV-18913: typo in error log · 78c1be8b
      Sujatha authored
      Problem:
      ========
      Following typo in error log:
      
      2019-03-13 15:58:10 0 [Note] Reading of all Master_info entries succeded
      
      Should be 'succeeded'
      
      Fix:
      ===
      Fixed the typo with the right word 'succeeded'.
      78c1be8b
  4. 11 May, 2019 1 commit
  5. 06 May, 2018 1 commit
    • Monty's avatar
      Add likely/unlikely to speed up execution · 30ebc3ee
      Monty authored
      Added to:
      - if (error)
      - Lex
      - sql_yacc.yy and sql_yacc_ora.yy
      - In header files to alloc() calls
      - Added thd argument to thd_net_is_killed()
      30ebc3ee
  6. 19 Apr, 2018 1 commit
    • Sachin Setiya's avatar
      Mdev-10664 Add statuses about optimistic parallel replication stalls · 419385db
      Sachin Setiya authored
      In this commit we are adding three more status variable to SHOW SLAVE
      STATUS.  Slave_DDL_Events and Slave_Non_Transactional_Events.
      
      Slave_DDL_Groups:- This status variable counts the occurrence of DDL
      statements
      
      Slave_Non_Transactional_Groups:- This variable count the occurrence
      of non-transnational event group.
      
      Slave_Transactional_Groups:- This variable count the occurrence
      of transnational event group.
      
      Patch Credit:- Kristian Nielsen
      419385db
  7. 06 Feb, 2018 1 commit
    • Vladislav Vaintroub's avatar
      MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from... · 6c279ad6
      Vladislav Vaintroub authored
      MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from 'size_t' to 'type', possible loss of data)
      
      Handle string length as size_t, consistently (almost always:))
      Change function prototypes to accept size_t, where in the past
      ulong or uint were used. change local/member variables to size_t
      when appropriate.
      
      This fix excludes rocksdb, spider,spider, sphinx and connect for now.
      6c279ad6
  8. 23 Aug, 2017 1 commit
    • Michael Widenius's avatar
      Enusure that my_global.h is included first · 4aaa38d2
      Michael Widenius authored
      - Added sql/mariadb.h file that should be included first by files in sql
        directory, if sql_plugin.h is not used (sql_plugin.h adds SHOW variables
        that must be done before my_global.h is included)
      - Removed a lot of include my_global.h from include files
      - Removed include's of some files that my_global.h automatically includes
      - Removed duplicated include's of my_sys.h
      - Replaced include my_config.h with my_global.h
      4aaa38d2
  9. 27 Jul, 2017 1 commit
  10. 05 Jun, 2017 1 commit
    • Sachin Setiya's avatar
      MDEV-9544 FLUSH [RELAY] LOGS does not rotate logs for a named slave · da61107f
      Sachin Setiya authored
      Problem:- In the case of multisource replication/named slave
      when we run "FLUSH LOGS" , it does not flush logs.
      
      Solution:- A new function Master_info_index->flush_all_relay_logs()
      is created which will rotate relay logs for all named slave.
      This will be called in reload_acl_and_cache function when
      connection_name.length == 0
      da61107f
  11. 15 May, 2017 1 commit
  12. 23 Apr, 2017 2 commits
    • Monty's avatar
      Changing field::field_name and Item::name to LEX_CSTRING · 5a759d31
      Monty authored
      Benefits of this patch:
      - Removed a lot of calls to strlen(), especially for field_string
      - Strings generated by parser are now const strings, less chance of
        accidently changing a string
      - Removed a lot of calls with LEX_STRING as parameter (changed to pointer)
      - More uniform code
      - Item::name_length was not kept up to date. Now fixed
      - Several bugs found and fixed (Access to null pointers,
        access of freed memory, wrong arguments to printf like functions)
      - Removed a lot of casts from (const char*) to (char*)
      
      Changes:
      - This caused some ABI changes
        - lex_string_set now uses LEX_CSTRING
        - Some fucntions are now taking const char* instead of char*
      - Create_field::change and after changed to LEX_CSTRING
      - handler::connect_string, comment and engine_name() changed to LEX_CSTRING
      - Checked printf() related calls to find bugs. Found and fixed several
        errors in old code.
      - A lot of changes from LEX_STRING to LEX_CSTRING, especially related to
        parsing and events.
      - Some changes from LEX_STRING and LEX_STRING & to LEX_CSTRING*
      - Some changes for char* to const char*
      - Added printf argument checking for my_snprintf()
      - Introduced null_clex_str, star_clex_string, temp_lex_str to simplify
        code
      - Added item_empty_name and item_used_name to be able to distingush between
        items that was given an empty name and items that was not given a name
        This is used in sql_yacc.yy to know when to give an item a name.
      - select table_name."*' is not anymore same as table_name.*
      - removed not used function Item::rename()
      - Added comparision of item->name_length before some calls to
        my_strcasecmp() to speed up comparison
      - Moved Item_sp_variable::make_field() from item.h to item.cc
      - Some minimal code changes to avoid copying to const char *
      - Fixed wrong error message in wsrep_mysql_parse()
      - Fixed wrong code in find_field_in_natural_join() where real_item() was
        set when it shouldn't
      - ER_ERROR_ON_RENAME was used with extra arguments.
      - Removed some (wrong) ER_OUTOFMEMORY, as alloc_root will already
        give the error.
      
      TODO:
      - Check possible unsafe casts in plugin/auth_examples/qa_auth_interface.c
      - Change code to not modify LEX_CSTRING for database name
        (as part of lower_case_table_names)
      5a759d31
    • Kristian Nielsen's avatar
      MDEV-12179: Per-engine mysql.gtid_slave_pos table · 89aad233
      Kristian Nielsen authored
      Intermediate commit.
      
      Move the discovery of mysql.gtid_slave_pos* tables into the SQL thread.
      
      This avoids doing things like opening tables and scanning the mysql
      schema for tables inside of the START SLAVE statement, which might
      interact badly with existing transaction or table locks.
      
      (Even though START SLAVE is documented to implicitly commit any active
      transactions, this appears not to be the case in current code).
      
      Table discovery fits naturally in the SQL thread init code, next to
      the loading of mysql.gtid_slave_pos state.
      89aad233
  13. 16 Mar, 2017 1 commit
    • Monty's avatar
      Wait for slave threads to start during startup · 2d0c579a
      Monty authored
      - Before this patch during startup all slave threads was started without
        any check that they had started properly.
      - If one did a START SLAVE, STOP SLAVE or CHANGE MASTER as first command to the server
        there was a chance that server could access structures that where not
        properly  initialized which could lead to crashes in
        Log_event::read_log_event
      - Fixed by waiting for slave threads to start up properly also during
        server startup, like we do with START SLAVE.
      2d0c579a
  14. 10 Mar, 2017 1 commit
  15. 03 Mar, 2017 1 commit
  16. 01 Mar, 2017 1 commit
  17. 28 Feb, 2017 4 commits
    • Monty's avatar
      Fixed wrong arguments to sql_print_error() · 6a12c053
      Monty authored
      6a12c053
    • Monty's avatar
      Added a separate lock for start/stop/reset slave. · c5e25c8b
      Monty authored
      This solves some possible dead locks when one calls stop slave while slave
      is starting.
      c5e25c8b
    • Monty's avatar
      MDEV-9573 'Stop slave' hangs on replication slave · e65f667b
      Monty authored
      The reason for this is that stop slave takes LOCK_active_mi over the
      whole operation while some slave operations will also need LOCK_active_mi
      which causes deadlocks.
      
      Fixed by introducing object counting for Master_info and not taking
      LOCK_active_mi over stop slave or even stop_all_slaves()
      
      Another benefit of this approach is that it allows:
      - Multiple threads can run SHOW SLAVE STATUS at the same time
      - START/STOP/RESET/SLAVE STATUS on a slave will not block other slaves
      - Simpler interface for handling get_master_info()
      - Added some missing unlock of 'log_lock' in error condtions
      - Moved rpl_parallel_inactivate_pool(&global_rpl_thread_pool) to end
        of stop_slave() to not have to use LOCK_active_mi inside
        terminate_slave_threads()
      - Changed argument for remove_master_info() to Master_info, as we always
        have this available
      - Fixed core dump when doing FLUSH TABLES WITH READ LOCK and parallel
        replication. Problem was that waiting for pause_for_ftwrl was not done
        when deleting rpt->current_owner after a force_abort.
      e65f667b
    • Sujatha Sivakumar's avatar
      Bug#24901077: RESET SLAVE ALL DOES NOT ALWAYS RESET SLAVE · e619295e
      Sujatha Sivakumar authored
      Description:
      ============
      If you have a relay log index file that has ended up with
      some relay log files that do not exists, then RESET SLAVE
      ALL is not enough to get back to a clean state.
      
      Analysis:
      =========
      In the bug scenario slave server is in stopped state and
      some of the relay logs got deleted but the relay log index
      file is not updated.
      
      During slave server restart replication initialization fails
      as some of the required relay logs are missing. User
      executes RESET SLAVE/RESET SLAVE ALL command to start a
      clean slave. As per the documentation RESET SLAVE command
      clears the master info and relay log info repositories,
      deletes all the relay log files, and starts a new relay log
      file. But in a scenario where the slave server's
      Relay_log_info object is not initialized slave will not
      purge the existing relay logs. Hence the index file still
      remains in a bad state. Users will not be able to start
      the slave unless these files are cleared.
      
      Fix:
      ===
      RESET SLAVE/RESET SLAVE ALL commands should do the cleanup
      even in a scenario where Relay_log_info object
      initialization failed.
      
      Backported a flag named 'error_on_rli_init_info' which is
      required to identify slave's Relay_log_info object
      initialization failure. This flag exists in MySQL-5.6
      onwards as part of BUG#14021292 fix.
      
      During RESET SLAVE/RESET SLAVE ALL execution this flag
      indicates the Relay_log_info initialization failure.
      In such a case open the relay log index/relay log files
      and do the required clean up.
      e619295e
  18. 14 Oct, 2016 2 commits
    • Kristian Nielsen's avatar
      MDEV-7145: Delayed replication, cleanup some code · b2bc6dad
      Kristian Nielsen authored
      The original MySQL patch left some refactoring todo's, possibly
      because of known conflicts with other parallel development (like
      info-repository feature perhaps).
      
      This patch fixes those todos/refactorings.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      b2bc6dad
    • Kristian Nielsen's avatar
      MDEV-7145: Delayed replication, intermediate commit. · 19abe79f
      Kristian Nielsen authored
      Initial merge of delayed replication from MySQL git.
      
      The code from the initial push into MySQL is merged, and the
      associated test case passes. A number of tasks are still pending:
      
      1. Check full test suite run for any regressions or .result file updates.
      
      2. Extend the feature to also work for parallel replication.
      
      3. There are some todo-comments about future refactoring left from
      MySQL, these should be located and merged on top.
      
      4. There are some later related MySQL commits, these should be checked
      and merged. These include:
          e134b9362ba0b750d6ac1b444780019622d14aa5
          b38f0f7857c073edfcc0a64675b7f7ede04be00f
          fd2b210383358fe7697f201e19ac9779879ba72a
          afc397376ec50e96b2918ee64e48baf4dda0d37d
      
      5. The testcase from MySQL relies heavily on sleep and timing for
      testing, and seems likely to sporadically fail on heavily loaded test
      servers in buildbot or distro build farms.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      19abe79f
  19. 23 Aug, 2016 1 commit
    • Vicențiu Ciorbaru's avatar
      MDEV-10563 Crash during shutdown in Master_info_index::any_slave_sql_running · 4eb898bb
      Vicențiu Ciorbaru authored
      In well defined C code, the "this" pointer is never NULL. Currently, we
      were potentially dereferencing a NULL pointer (master_info_index). GCC v6
      removes any "if (!this)" conditions as it assumes this is always a
      non-null pointer. In order to prevent undefined behaviour, check the
      pointer before dereferencing and remove the check within member
      functions.
      4eb898bb
  20. 08 May, 2016 1 commit
  21. 08 Apr, 2016 1 commit
    • Kristian Nielsen's avatar
      MDEV-9383: Server fails to read master.info after upgrade 10.0 -> 10.1 · 1cf852d8
      Kristian Nielsen authored
      In some cases, MariaDB 10.0 could write a master.info file that was read
      incorrectly by 10.1 and could cause server to fail to start after an upgrade.
      
      (If writing a new master.info file that is shorter than the old, extra
      junk may remain at the end of the file. This is handled properly in
      10.1 with an END_MARKER line, but this line is not written by
      10.0. The fix here is to make 10.1 robust at reading the master.info
      files written by 10.0).
      
      Fix several things around reading master.info and read_mi_key_from_file():
      
       - read_mi_key_from_file() did not distinguish between a line with and
         without an eqals '=' sign.
      
       - If a line was empty, read_mi_key_from_file() would incorrectly return
         the key from the previous call.
      
       - An extra using_gtid=X line left-over by MariaDB 10.0 might incorrectly
         be read and overwrite the correct value.
      
       - Fix incorrect usage of strncmp() which should be strcmp().
      
       - Add test cases.
      1cf852d8
  22. 03 Jan, 2016 2 commits
    • Monty's avatar
      Fixed bug in semi_sync replication tests. · 8fcc0bfe
      Monty authored
      The problem was that wait_for_slave_io_to_start reported that the io thread
      was ready, when it was still initializing. This caused test suite to
      continue too early, for example before the semi sync plugin was properly
      enabled.
      
      Fixed by introducing a new internal stage: "Preparing". Slave_IO_Running is
      now set to "Yes" only when all initializing is done and the IO thread is
      ready to read things from the master.
      
      The only test affected by this change is rpl_flsh_tbls, which got stuck in
      the preparing phase while trying to read the GTID position from a table.
      Fixed by having this test waiting for Preparing instead of Yes.
      8fcc0bfe
    • Monty's avatar
      Cleanup of slave code: · 661a6d89
      Monty authored
      - Added testing if connection is killed to shortcut reading of connection data
        This will allow us later in 10.2 to do a cleaner shutdown of slaves (less errors in the log)
      - Add new status variables: Slaves_connected, Slaves_running and Slave_connections.
      - Use MYSQL_SLAVE_NOT_RUN instead of 0 with slave_running.
      - Don't print obvious extra warnings to the error log when slave is shut down normally.
      661a6d89
  23. 24 Oct, 2015 1 commit
  24. 16 Jul, 2015 1 commit
    • 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
  25. 06 Jul, 2015 1 commit
    • Monty's avatar
      - Renaming variables so that they don't shadow others (After this patch one... · 7332af49
      Monty authored
      - Renaming variables so that they don't shadow others (After this patch one can compile with -Wshadow and get much fewer warnings)
      - Changed ER(ER_...) to ER_THD(thd, ER_...) when thd was known or if there was many calls to current_thd in the same function.
      - Changed ER(ER_..) to ER_THD_OR_DEFAULT(current_thd, ER...) in some places where current_thd is not necessary defined.
      - Removing calls to current_thd when we have access to thd
      
      Part of this is optimization (not calling current_thd when not needed),
      but part is bug fixing for error condition when current_thd is not defined
      (For example on startup and end of mysqld)
      
      Notable renames done as otherwise a lot of functions would have to be changed:
      - In JOIN structure renamed:
         examined_rows -> join_examined_rows
         record_count -> join_record_count
      - In Field, renamed new_field() to make_new_field()
      
      Other things:
      - Added DBUG_ASSERT(thd == tmp_thd) in Item_singlerow_subselect() just to be safe.
      - Removed old 'tab' prefix in JOIN_TAB::save_explain_data() and use members directly
      - Added 'thd' as argument to a few functions to avoid calling current_thd.
      7332af49
  26. 15 Jun, 2015 1 commit
  27. 03 May, 2015 1 commit
    • Sergei Golubchik's avatar
      MDEV-5114 seconds_behind_master flips to 0 & spikes back, when running show slaves status · f875c9f2
      Sergei Golubchik authored
      1. After a period of wait (where last_master_timestamp=0)
         do NOT restore the last_master_timestamp to the timestamp
         of the last executed event (which would mean we've just
         executed it, and we're that much behind the master).
      
      2. Update last_master_timestamp before executing the event,
         not after.
      
      Take the approach from the this commit (but with a different test
      case that actually makes sense):
      
      commit 0c75ab453fb8c5439576af8fe5add7a1b89f1569
      Author: Luis Soares <luis.soares@sun.com>
      Date:   Thu Apr 15 17:39:31 2010 +0100
      
          BUG#52166: Seconds_Behind_Master spikes after long idle period
      f875c9f2
  28. 11 Mar, 2015 1 commit
    • Kristian Nielsen's avatar
      MDEV-5289: master server starts slave parallel threads · ed04c40b
      Kristian Nielsen authored
      Delay spawning parallel replication worker threads until a slave SQL
      thread is running, and de-spawn them when the last SQL thread stops.
      
      This is especially useful to avoid needless threads on a master in a
      setup where same my.cnf is used on masters and slaves.
      ed04c40b
  29. 01 Feb, 2015 1 commit
  30. 24 Jan, 2015 1 commit
  31. 09 Jan, 2015 1 commit
    • Nirbhay Choubey's avatar
      MDEV-7123 : MariaDB 10.0.14 Galera node shutdown with signal 11 · dd80c22c
      Nirbhay Choubey authored
      wsrep-patch uses same connection name for constructing Master_info
      objects. As a result all existing wsrep Master_info objects refer
      to same rpl_filter object. This could lead to race when multiple
      threads try to delete/destruct Master_info object, as they would
      all try to delete the same relay_log object.
      
      Fixed by adding a check in Master_info's destructor to not free
      the "wsrep" rpl_filter, so that its reused by current & subsequent
      wsrep threads and later reclaimed by free_all_rpl_filters() during
      server shutdown.
      dd80c22c
  32. 06 Dec, 2014 1 commit
    • Kristian Nielsen's avatar
      MDEV-6676: Optimistic parallel replication · db21fddc
      Kristian Nielsen authored
      Implement a new mode for parallel replication. In this mode, all transactions
      are optimistically attempted applied in parallel. In case of conflicts, the
      offending transaction is rolled back and retried later non-parallel.
      
      This is an early-release patch to facilitate testing, more changes to user
      interface / options will be expected. The new mode is not enabled by default.
      db21fddc
  33. 04 Dec, 2014 1 commit
  34. 10 Oct, 2014 1 commit