An error occurred fetching the project authors.
  1. 21 May, 2021 1 commit
    • Julius Goryavsky's avatar
      MDEV-25719: stunnel uses "verifyChain" without subject checks · 8c8a6ed3
      Julius Goryavsky authored
      Another batch of changes that should make the SST process
      more reliable in all scenarios:
      
       1) Added hostname or CN verification when stunnel is used
          with certificate chain verification (verifyChain = yes);
       2) Added check for the absence of the stunnel utility for
          mtr tests;
       3) Deletion of working files before and after SST is done
          more accurately;
       4) rsync on joiner can be run even if the path to its
          configuration file contains spaces;
       5) More accurate directory creation (for data files and
          for logs);
       6) IST with mysqldump no longer turns off statement logging;
       7) Reset password for mysqldump when password is empty but
          username is specified;
       8) More reliable quoting when generating statements in
          wsrep_sst_mysqldump;
       9) Added explicit generation of 2048-bit Diffie-Hellman
          parameters for sockat < 1.7.3, by analogy with xtrabackup;
      10) Compression parameters for qpress are read from all
          suitable server groups in configuration file, as well as
          from the [sst] and [xtrabackup] groups;
      11) Added a test that checks compression using qpress;
      12) Checking for optional utilities is modified to work even
          if they implemented as built-in shell commands (unlikely
          on real systems, but more reliable).
      8c8a6ed3
  2. 15 May, 2021 1 commit
    • Julius Goryavsky's avatar
      MDEV-25669: SST scripts should check all server groups in config files · 6811ed3e
      Julius Goryavsky authored
      1) This commit implements reading all sections from configuration
      files while looking for the current value of any server variable,
      which were previously only read from the [mysqld.suffix] group and
      from [mysqld], but not from other groups such as [mariadb.suffix],
      [mariadb] or, for example, [server].
      
      2) This commit also fixes misrecognition of some parameters when
      parsing a command line containing a special marker for the end
      of the list of options ("--") or when short option names (such
      as "-s", "-a" and "-h arg") chained together (like a "-sah arg").
      Such parameters can be passed to the SST script in the list of
      arguments after "--mysqld-args" if the server is started with a
      complex set of options - this was revealed during manual testing
      of changes to read configuration files.
      
      3) The server-side preparation code for the "--mysqld-args"
      option list has also been simplified to make it easier to change
      in the future (if needed), and has been improved to properly
      handle the special backquote ("`") character in the argument
      values.
      6811ed3e
  3. 10 May, 2021 1 commit
    • Julius Goryavsky's avatar
      MDEV-23580: WSREP_SST: [ERROR] rsync daemon port has been taken · 8fef2b86
      Julius Goryavsky authored
      This commit contains a large set of further bug fixes and
      improvements to SST scripts for Galera, continuing the work
      that was started in MDEV-24962 to make SST scripts work smoothly
      in different network configurations (especially using ipv6) and
      with different environment settings:
      
       1) The ipv6 addresses were incorrectly handled in the SST script
          for rsync (incorrect address substitution for establishing a
          connection, incorrect address substitution for bind, and so on);
       2) Checking the locality of the ip-address in SST scripts did not
          support ipv6 addresses (such as "[::1]"), which were falsely
          identified as non-local ip, which further did not allow running
          two SSTs on different local addresses on the same machine.
          On the other hand, this bug masked some other errors (related
          to handling ipv6 addresses);
       3) The code for checking the locality of the ip address was different
          in the SST scripts for rsync and for mysqldump, with individual
          flaws. This code is now made common and moved to wsrep_sst_common;
       4) Waiting for the start of the transport channel (socat, nc, rsync,
          stunnel) in the wait_for_listen() and check_pid_and_port() functions
          did not process ipv6 addresses correctly in all cases (not for all
          branches);
       5) Waiting for the start of the transport channel (socat, nc, rsync,
          stunnel) in the wait_for_listen() and check_pid_and_port() functions
          for some code branches could give a false positive result due to
          the textual match of prefixes in the port number and/or PID of
          the process;
       6) Waiting for the start of the transport channel (socat, nc, rsync,
          stunnel) was supported through different utilities in SST scripts
          for mariabackup and for rsync, and with various minor flaws in
          the code. Now the code is still different in these scripts, but
          it supports a common set of utilities (lsof, ss, sockstat) and
          is synchronized across patterns that used to check the output
          of  these utilities;
       7) In SST via mariabackup, the signal about readiness to receive data
          is sometimes sent too early - immediately after listen(), and not
          after accept() (which are called by socat or netcat utility).
       8) Checking availability of the some options of some utilities was
          done using the grep pattern, which easily gives false positives;
       9) Common name (CN) for local addresses, if not explicitly specified,
          is now always replaced to "localhost" to avoid the need to generate
          many separate certificates for local addresses of one machine and
          not to depend on which the local address is currently used in test
          (ipv4 or ipv6, etc.);
      10) In tests galera_sst_mariabackup_encrypt_with_key_server and
          galera_sst_rsync_encrypt_with_key_server the correct certificate
          is selected to avoid commonname (CN) mismatch problems;
      11) Further refactoring to protect against spaces in file names.
      12) Further general refactoring to eliminate bash-specific constructs
          or to improve code readability;
      13) The code for setting options for the nc (netcat) utility was
          different in different scripts for SST - now it is made identical.
      14) Fixed long-time broken encryption via xbcrypt in combination with
          mariabackup and added support for key-based encryption via openssl
          utility, which is now enabled by default for encrypt=1 mode (this
          default mode can be changed using a new configuration file option
          "encypt-format=openssl|xbcrypt", which can be placed in the [mysqld],
          [sst] or in the [xtrabackup] section) - this change will allow us
          to use and to test the encypt=1 encryption without installing
          non-standard third-party utilities.
      8fef2b86
  4. 03 May, 2021 2 commits
    • Julius Goryavsky's avatar
      MDEV-24962: Galera SST innobackupex-move ignores Environment settings · 1ae7673a
      Julius Goryavsky authored
      After switching to the new mariabackup interface (instead of
      the outdated innobackupex interface, which is supported for
      compatibility), we need to explicitly pass a path to the datadir
      directory as a parameter, since in the new interface the value
      of this option is not automatically set in such a way that it
      always matches the SST/IST logic. This commit adds passing this
      option as an explicit parameter to mariabackup. This commit also
      removed unnecessary options that are not used and not supported
      by mariabackup.
      
      Also, numerous flaws in the common wsrep_sst_common script have
      been fixed:
      
       1) There are many bash-specific constructs in the script that
          may not be supported by other interpreters, which can lead
          to the most unexpected errors during SST, because failures
          in the interpretation of bash-specific constructs lead to
          incorrect parsing of arguments;
       2) There is parse_cnf() function which is often called by other
          scripts for the "mysqld" or "--mysqld" group, but it does not
          take into account the default group suffix, which leads to
          reading values only from the default group, which then leads
          to errors due to reading the default values instead of the
          values for a specific group;
       3) Some options such as --user, --innodb-data-home-dir or --datadir
          are not removed from the --mysqld-args list, although they are
          processed inside scripts (and passing of these options funther
          may cause problems for mariabackup);
       4) If an argument that the script understands is present in
          the --mysqld-args list twice, then this causes SST to fail,
          instead of reading the most recent value;
       5) The "--host" parameter is technically still supported among
          the arguments of the SST scripts, but in reality scripts do not
          work with it as expected, especially if it has an IPv6 address;
       6) If the port number is absent in the --address parameter value,
          but the port number is explicitly passed through the --port
          argument, then the scripts for mariabackup and xtrabackup-v2
          fail;
       7) If a new address interface is used (with the --address parameter),
          then automatic default port substitution is not performed, although
          it is supported for the legacy --host/--port interface.
       8) If there are spaces in the parameter values after --mysqld_args,
          then their further transfer does not occur correctly, which
          causes mariabackup to fail during SST - the space splits
          the argument in such a way that it breaks the parsing of the
          following parameters;
       9) If most of the parameters that are names or paths to the files
          or directories contain spaces, then SST scripts fail in an
          unpredictable way due to incorrect variable substitutions;
      10) If the --log-bin option is passed among the arguments of myqlds
          (--mysqld-args) without a parameter, and the --binlog option
          is not specified, then the script cannot substitute the default
          name for binlog and cannot construct binlog name using the
          --log-basename argument (which is against server specifications);
      11) Tail slashes are not removed from the directory names, which,
          upon further substitution, leads to the appearance of a double
          slash in the file paths;
      12) The explicit --binlog parameter (which is now always transmitted
          from the server side) and the "hidden" --log-bin parameter in the
          list of arguments after --mysqld-args are perceived as two different
          parameters in different parts of the scripts, and if they are do not
          match for some reason, this will lead to failures during SST;
      
      Also, all new changes from the 10.6 branch have been migrated here,
      including the latest pull requests for authentication (only the part
      that concerns SST scripts).
      
      It also fixes dozens of other bugs in all SST scripts.
      1ae7673a
    • Julius Goryavsky's avatar
      wsrep sst scripts: removing extra blank lines and spaces · e0324bf3
      Julius Goryavsky authored
      Removed numerous extra blank lines and spaces that interfere with
      reading and understanding program code, making it more difficult to
      find errors in scripts. I also removed all extra trailing spaces at
      the ends of lines, which lead to marking extra lines as changes
      (in subsequent changes). The amount of indentation in some parts
      of the code has also been normalized.
      e0324bf3
  5. 11 Apr, 2021 1 commit
    • Julius Goryavsky's avatar
      MDEV-25356: SST scripts should use the new mariabackup interface · 3eecb8db
      Julius Goryavsky authored
      SST scripts for Galera should use the new mariabackup interface
      instead of the innobackupex interface, which is currently only
      supported for compatibility reasons.
      
      This commit converts the SST script for mariabackup to use the
      new interface. It does not need separate tests, as any problems
      will be seen as failures when running multiple tests for the
      mariabackup-based SST.
      3eecb8db
  6. 29 Mar, 2021 1 commit
  7. 20 Oct, 2020 1 commit
    • Julius Goryavsky's avatar
      MDEV-21951: mariabackup SST fail if data-directory have lost+found directory · 888010d9
      Julius Goryavsky authored
      To fix this, it is necessary to add an option to exclude the
      database with the name "lost+found" from processing (the database
      name will be checked by the check_if_skip_database_by_path() or
      by the check_if_skip_database() function, and as a result
      "lost+found" will be skipped).
      
      In addition, it is necessary to slightly modify the verification
      logic in the check_if_skip_database() function.
      
      Also added a new test galera_sst_mariabackup_lost_found.test
      888010d9
  8. 15 Oct, 2020 1 commit
    • Julius Goryavsky's avatar
      MDEV-21770: `galera_3nodes.galera_ipv6_mariabackup` fails · 31201dcb
      Julius Goryavsky authored
      This patch fixes several flaws in the SST scripts that cause
      failures while running tests that use version 6 IP addresses
      for cluster nodes.
      
      First, if the netcat utility is used for streaming (but not socat),
      then in accordance with its command line syntax, we need to remove
      the square brackets around the IPv6 address. However, for socat,
      the address must contain square brackets, as before.
      
      Secondly, if an IPv6 address is used, then from the joiner side for
      a number of systems (such as Debian) we need to explicitly specify
      the "-6" option, otherwise a listening socket with an IPv6 address
      may not be created.
      
      This patch also contains code improvements in the wsrep_sst_common.
      Changed the code that pars the connection address - fixed the
      shortcomings that sometimes led to incorrect parsing of parameters
      when using shells other than the latest versions of bash.
      
      Also, this patch removes the duplicate code that is intended
      for parsing the connection address and which was located in the
      wsrep_sst_mariabackup file, since all the necessary actions have
      already been done in wsrep_sst_common and there they are done in
      such a way that any shell is supported, not just bash.
      
      The fix does not require separate tests, since all the
      necessary tests are already present in the galera_3nodes suite.
      On the contrary, after this fix, tests using IPv6 addresses can
      be removed from the disabled list (this will be done in a separate
      commit related to MDEV-23659).
      31201dcb
  9. 02 Sep, 2020 1 commit
  10. 11 Aug, 2020 1 commit
    • Julius Goryavsky's avatar
      MDEV-21526: mysqld_multi no longer works with different server binaries · 7ad4709a
      Julius Goryavsky authored
      The problem is caused by the fact that adding the
      --defaults-group-suffix option to fix MDEV-18863 causes
      mysqld to read all options from the appropriate sections
      of the config file, including options specific to mysqld_multi.
      Reading unknown options (which are not supported by mysqld)
      causes mysqld to terminate with an error.
      
      However, the MDEV-18863 problem has been completely fixed
      by passing options on the command line, and now there is no
      need to specify the --defaults-group-suffix option (we just
      need to give priority to options passed through the command
      line, so as not to break MDEV-18863).
      7ad4709a
  11. 18 May, 2020 1 commit
  12. 21 Jan, 2020 1 commit
    • Julius Goryavsky's avatar
      MDEV-17601: MariaDB Galera does not expect 'mbstream' as streamfmt · 982294ac
      Julius Goryavsky authored
      Setting "streamfmt=mbstream" in the "[sst]" section causes SST to fail
      because the format automatically switches to 'tar' by default (insead
      of mbstream).
      
      To fix this, we need to add mbstream to the list of valid values for
      the format, making it synonymous with xbstream. This must be done both
      in the SST script and when parsing the options of the corresponding
      utilities.
      982294ac
  13. 08 Nov, 2019 1 commit
  14. 28 Aug, 2019 1 commit
  15. 26 Aug, 2019 1 commit
    • Julius Goryavsky's avatar
      MDEV-20420: SST failed after MDEV-18863 in some test configurations · de0f93fb
      Julius Goryavsky authored
      After applying MDEV-18863, in some test configurations, SST
      may fails due to duplication of some parameters (in particular
      "--port") in the main part of the command line and after
      "--mysqld-args", as well as due to incorrect interpretation
      of the parameter "--port" passed after "--mysqld-args" when
      the SST script is invoked without explicitly specifying a port
      for SST. In addition, it is necessary to correctly handle spaces,
      quotation marks and special characters when copying original
      arguments from the argv[] array to a new command line (after
      "--mysqld-args"). This patch resolves these shortcomings.
      de0f93fb
  16. 19 Aug, 2019 2 commits
    • Julius Goryavsky's avatar
      MDEV-18863: Galera SST scripts can't read [mysqldN] option groups · ff6d3075
      Julius Goryavsky authored
      Some users and some scripts (for example, mysqld_multi.sh) use special
      option groups with names like [mysqld1], [mysqld2], ..., [mysqldN].
      
      But SST scripts can't currently fully support these option groups.
      The only option group-related value it gets from the server is
      --defaults-group-suffix, if that option was set for mysqld when
      the server was started.
      
      However, the SST scripts does not get told by the server to read
      these option groups, so this means that the SST script will fail
      to read options like innodb-data-home-dir when it is in a option
      group like [mysqld1]...[mysqldN].
      
      Moreover, SST scripts ignore many parameters that can be passed
      to them explicitly and cannot transfer them further, for example,
      to the input of mariabackup utility. Ideally, we want to transfer
      all the parameters of the original mysqld call to utilities such
      as mariabackup, however the SST script does not receive these
      parameters from the server and therefore cannot transfer them to
      mariabackup.
      
      To correct these shortcomings, we need to transfer to the scripts
      all of the parameters of the original mysqld call, and in the SST
      scripts themselves provide for the transfer all of these parameters
      to utilities such as mariabackup. To prevent these parameters from
      mixing with the script's own parameters, they should be transferred
      to SST script after the special option "--mysqld-args", followed by
      the string argument with the original parameters, as it received by
      the mysqld call at the time of launch (further all these parameters
      will be passed to mariabackup, for example).
      
      In addition, the SST scripts themselves must be refined so that
      they can read the parameters from the user-selected group, not just
      from the global mysqld configuration group. And also so that they
      can receive the parameters (which important for their work) as
      command-line arguments.
      ff6d3075
    • Julius Goryavsky's avatar
      MDEV-18863: Galera SST scripts can't read [mysqldN] option groups · 457dc9d6
      Julius Goryavsky authored
      Some users and some scripts (for example, mysqld_multi.sh) use special
      option groups with names like [mysqld1], [mysqld2], ..., [mysqldN].
      
      But SST scripts can't currently fully support these option groups.
      The only option group-related value it gets from the server is
      --defaults-group-suffix, if that option was set for mysqld when
      the server was started.
      
      However, the SST scripts does not get told by the server to read
      these option groups, so this means that the SST script will fail
      to read options like innodb-data-home-dir when it is in a option
      group like [mysqld1]...[mysqldN].
      
      Moreover, SST scripts ignore many parameters that can be passed
      to them explicitly and cannot transfer them further, for example,
      to the input of mariabackup utility. Ideally, we want to transfer
      all the parameters of the original mysqld call to utilities such
      as mariabackup, however the SST script does not receive these
      parameters from the server and therefore cannot transfer them to
      mariabackup.
      
      To correct these shortcomings, we need to transfer to the scripts
      all of the parameters of the original mysqld call, and in the SST
      scripts themselves provide for the transfer all of these parameters
      to utilities such as mariabackup. To prevent these parameters from
      mixing with the script's own parameters, they should be transferred
      to SST script after the special option "--mysqld-args", followed by
      the string argument with the original parameters, as it received by
      the mysqld call at the time of launch (further all these parameters
      will be passed to mariabackup, for example).
      
      In addition, the SST scripts themselves must be refined so that
      they can read the parameters from the user-selected group, not just
      from the global mysqld configuration group. And also so that they
      can receive the parameters (which important for their work) as
      command-line arguments.
      457dc9d6
  17. 09 Mar, 2019 2 commits
  18. 12 Feb, 2019 1 commit
    • Julius Goryavsky's avatar
      MDEV-18426: Most of the mtr tests in the galera_3nodes suite fail · 5b827511
      Julius Goryavsky authored
      Most of the mtr tests in the galera_3nodes suite fail
      for a variety of reasons with a variety of errors.
      
      This patch fixes several substantial flaws
      in the galera_3nodes suite tests and in the mtr framework
      service files, adapting the tests from galera_3nodes
      for the current version of MariaDB.
      
      This patch also synchronizes some galera_3nodes-related
      files with the latest changes made for MDEV-17835 (v2 patch)
      and for MDEV-18379 in other branches (10.2 and 10.3).
      
      Closes #1161
      5b827511
  19. 02 Feb, 2019 1 commit
    • Julius Goryavsky's avatar
      MDEV-18379: IPv6 compatibility changes/Unification of check for IPv6 · dfc9bff5
      Julius Goryavsky authored
      This patch contains the port of the MDEV-18379 patch
      for 10.2 branch, but also includes a number of changes
      made within MDEV-17835, which are necessary for the
      normal operation of tests that use IPv6:
      
      1) Currently, the three-node mtr suite for Galera (galera_3nodes)
      uses a separate IPv6 availability check using the "have_ipv6.inc"
      file. This check duplicates a more accurate check at suite.pm
      level, which can be used by including the file "check_ipv6.inc".
      This patch removes this discrepancy between suites.
      
      2) Fixed numerous bugs in the SST scripts and in the mtr test
      files (galera_3nodes mtr suite) that prevented the use of Galera
      with IPv6 addresses.
      
      3) Fixed flaws in the galera_3nodes mtr suite control scripts,
      because of which they could not work with mariabackup.
      
      4) Fixed flaws in the rsync and mysqldump tests (for galera_3nodes
      mtr tests suite). These tests were not performed successfully
      without these fixes.
      
      5) GAL-501 test in the galera_3nodes suite does not contain the
      option "--bind-address=::" that is needed for the test to work
      correctly with IPv6 (at least on some systems), since without
      it the server will not wait for connections on the IPv6
      interface.
      
      https://jira.mariadb.org/browse/MDEV-18379
      and partially https://jira.mariadb.org/browse/MDEV-17835
      dfc9bff5
  20. 26 Jan, 2019 1 commit
    • Julius Goryavsky's avatar
      MDEV-18379: Unification of check for IPv6 · 4aea6b3e
      Julius Goryavsky authored
      This patch contains the port of the MDEV-18379 patch
      for 10.1 branch, but also includes a number of changes
      made within MDEV-17835, which are necessary for the
      normal operation of tests that use IPv6:
      
      1) Fixed flaws in the galera_3nodes mtr suite control scripts,
      because of which they could not work with mariabackup.
      
      2) Fixed numerous bugs in the SST scripts and in the mtr test
      files (galera_3nodes mtr suite) that prevented the use of Galera
      with IPv6 addresses.
      
      3) Fixed flaws in tests for rsync and mysqldump (for galera_3nodes
      mtr tests suite). These tests were not performed successfully
      without these fixes.
      
      4) Currently, the three-node mtr suite for Galera (galera_3nodes)
      uses a separate IPv6 availability check using the "have_ipv6.inc"
      file. This check duplicates a more accurate check at suite.pm
      level, which can be used by including the file "check_ipv6.inc".
      This patch removes this discrepancy between suites.
      
      5) GAL-501 test in the galera_3nodes suite does not contain the
      option "--bind-address=::" which is needed for the test to work
      correctly with IPv6 (at least on some systems), since without
      it the server will not wait for connections on the IPv6 interface.
      
      https://jira.mariadb.org/browse/MDEV-18379
      and partially https://jira.mariadb.org/browse/MDEV-17835
      4aea6b3e
  21. 21 Jan, 2019 1 commit
  22. 02 Jan, 2019 1 commit
  23. 29 Nov, 2018 1 commit
  24. 15 Nov, 2018 1 commit
  25. 20 Jun, 2018 1 commit
  26. 07 Jun, 2018 1 commit
    • sjaakola's avatar
      MDEV-14612 wsrep_sst_mariabackup unnecessarily converts address to host name · 15c6d6a9
      sjaakola authored
      SST script for mariabackup (wsrep_sst_mariabackup.sh) does reverse DNS to convert
      the joiner's IP address to domain name, and this is not always a wanted feature.
      
      It is not understood why this remote host DNS conversion is in the script,
      in the first place, but conversion was originally added by commit:
      
      commit 3d8aacba
      Author: Nirbhay Choubey <nirbhay.choubey@gmail.com>
      Date:   Wed Feb 22 15:58:45 2017 -0500
      
      In this commit, REMOTEHOST variable is removed and replaced by REMOTEIP. All
      references to joiner is therefore by IP address only.
      15c6d6a9
  27. 22 Mar, 2018 1 commit
  28. 05 Jul, 2017 1 commit
    • Marko Mäkelä's avatar
      MDEV-12548 Initial implementation of Mariabackup for MariaDB 10.2 · 8c71c6aa
      Marko Mäkelä authored
      InnoDB I/O and buffer pool interfaces and the redo log format
      have been changed between MariaDB 10.1 and 10.2, and the backup
      code has to be adjusted accordingly.
      
      The code has been simplified, and many memory leaks have been fixed.
      Instead of the file name xtrabackup_logfile, the file name ib_logfile0
      is being used for the copy of the redo log. Unnecessary InnoDB startup and
      shutdown and some unnecessary threads have been removed.
      
      Some help was provided by Vladislav Vaintroub.
      
      Parameters have been cleaned up and aligned with those of MariaDB 10.2.
      
      The --dbug option has been added, so that in debug builds,
      --dbug=d,ib_log can be specified to enable diagnostic messages
      for processing redo log entries.
      
      By default, innodb_doublewrite=OFF, so that --prepare works faster.
      If more crash-safety for --prepare is needed, double buffering
      can be enabled.
      
      The parameter innodb_log_checksums=OFF can be used to ignore redo log
      checksums in --backup.
      
      Some messages have been cleaned up.
      Unless --export is specified, Mariabackup will not deal with undo log.
      The InnoDB mini-transaction redo log is not only about user-level
      transactions; it is actually about mini-transactions. To avoid confusion,
      call it the redo log, not transaction log.
      
      We disable any undo log processing in --prepare.
      
      Because MariaDB 10.2 supports indexed virtual columns, the
      undo log processing would need to be able to evaluate virtual column
      expressions. To reduce the amount of code dependencies, we will not
      process any undo log in prepare.
      
      This means that the --export option must be disabled for now.
      
      This also means that the following options are redundant
      and have been removed:
      	xtrabackup --apply-log-only
      	innobackupex --redo-only
      
      In addition to disabling any undo log processing, we will disable any
      further changes to data pages during --prepare, including the change
      buffer merge. This means that restoring incremental backups should
      reliably work even when change buffering is being used on the server.
      Because of this, preparing a backup will not generate any further
      redo log, and the redo log file can be safely deleted. (If the
      --export option is enabled in the future, it must generate redo log
      when processing undo logs and buffered changes.)
      
      In --prepare, we cannot easily know if a partial backup was used,
      especially when restoring a series of incremental backups. So, we
      simply warn about any missing files, and ignore the redo log for them.
      
      FIXME: Enable the --export option.
      
      FIXME: Improve the handling of the MLOG_INDEX_LOAD record, and write
      a test that initiates a backup while an ALGORITHM=INPLACE operation
      is creating indexes or rebuilding a table. An error should be detected
      when preparing the backup.
      
      FIXME: In --incremental --prepare, xtrabackup_apply_delta() should
      ensure that if FSP_SIZE is modified, the file size will be adjusted
      accordingly.
      8c71c6aa
  29. 27 Apr, 2017 1 commit
  30. 28 Sep, 2016 1 commit
  31. 22 Sep, 2016 1 commit
  32. 21 Aug, 2016 1 commit
    • sjaakola's avatar
      refs codership/mysql-wsrep#239 · 58386ca0
      sjaakola authored
      Synced xtrabackup SST scripts from PXC source tree as of PXC 5.6.27-25.13
      - PXC#480: xtrabackup-v2 SST fails with multiple log_bin directives in my.cn
      - PXC#460: wsrep_sst_auth don't work in Percona-XtraDB-Cluster-56-5.6.25-25.
      - PXC-416: Fix SST related issues.
      - PXC-389: Merge remote-tracking branch 'wsrep/5.6' into 5.6-wsrep-pxc389
      - Bug #1431101: SST does not clobber backup-my.cnf
      58386ca0
  33. 28 Jun, 2016 1 commit
    • Martin Stefany's avatar
      Use hostname instead of IP in donor's socat · 64c115b8
      Martin Stefany authored
      Using IP address in donor's socat with TLS/SSL and certificate
      which doesn't contain IP address in CN or SubjectAltName causes
      transfer to fail with message:
      
      socat[5799] E certificate is valid but its commonName does not
      match hostname.
      
      This patch tries to reverse resolve IP address to hostname and
      use it for transfer. If reverse resolution fails, IP address is
      still used as fall-back, so proper A/AAAA and PTR records are
      important, but not mandatory.
      
      Certain certificates cannot contain IP addresses, e.g. FreeIPA's
      Dogtag doesn't allow it, so in my case I would need to use self-
      signed certificates instead, use verify=0 with socat or don't use
      TLS/SSL at all. Issue is mentioned in MDEV-9403.
      64c115b8
  34. 27 Apr, 2016 1 commit
    • Nirbhay Choubey's avatar
      MDEV-9884: Existing /var/lib/mysql/.sst directory (with contents) causes SST... · 51a32ebe
      Nirbhay Choubey authored
      MDEV-9884: Existing /var/lib/mysql/.sst directory (with contents) causes SST to fail with xtrabackup-v2
      
      [Fix taken from https://github.com/percona/percona-xtradb-
      cluster/commit/b3ee75949ed82b88f355ca2e26431350cc1c89ac]
      
      During SST, the receiver node creates .sst directory under
      datadir to process/prepare the received data and removes it
      at the end of the process. In case of error, this directory,
      however, was not removed, which later caused subsequent SSTs
      to fail. Fixed by removing this directory at the beginning
      of SST if it existed.
      51a32ebe
  35. 24 Feb, 2016 2 commits
    • Krunal Bauskar's avatar
      - PXC#480: xtrabackup-v2 SST fails with multiple log_bin directives in my.cnf · f67d6fcc
      Krunal Bauskar authored
        If any given variable the xtrabackup-v2 sst script looks for is specified
        multiple times in cnf file then it tend to pick both of them causing
        some of the follow-up command to fail.
      
        Avoid this programatic mistake by honoring only the last variable assigned
        setting as done by mysqld too.
      
        Check https://bugs.launchpad.net/percona-xtradb-cluster/+bug/1362830
      f67d6fcc
    • Krunal Bauskar's avatar
      - PXC#460: wsrep_sst_auth don't work in Percona-XtraDB-Cluster-56-5.6.25-25.12.1.el7 · 0cf66e49
      Krunal Bauskar authored
      Semantics:
      ---------
      
      * Generally end-user will create a separate user with needed
      privileges for
          performing DONOR action.
      * This user credentials are specified using wsrep_sst_auth.
      
      * Along with this user there could be other user(s) created on the
      server
          that sysadmin may use for normal or other operations
      * Credentials for these user(s) can be specified in same
      cluster/server
          cnf file as part of [client] section
      
      When cluster act as DONOR and if wsrep_sst_auth is provided then it
      should
      strictly use it for performing SST based action.
      
      What if end-user has same credentials for performing both SST action
      and
      normal admin work ?
      * Then end-user can simply specify these credentials as part of
      [client]
          section in cnf file and skip providing wsrep_sst_auth.
      
      Issue:
      -----
      
      MySQL client user/password parsing preference order is as follows:
      * command line (through --user/--password)
      * cnf file
      * MYSQL_PWD enviornment variable.
      
      Recent change tried passing sst user password through MYSQL_PWD
      (and user though --user command line param as before).
      
      On the system where-in admin had another user for performing non-SST
      actions,
      credentials for such user were present in cnf file under [client]
      section.
      
      Due to mysql client preference order, SST user name was used (as it
      was
      passed through command line) but password of other user (meant for
      non-SST)
      action was being used as it was passed through cnf file.
      
      Password passed through MYSQL_PWD was completely ignored causing
      user-name/password mismatch.
      
      Solution:
      ---------
      
      * If user has specified credentials for SST then pass them through
      command
          line so that they are used in priority.
      
      (There could be security concern on passing things through command
      line but
         when I tried passing user-name and password through command line to
      mysql
         client and then did ps I saw this
         ./bin/mysql --user=sstuser --password=x xxxxxxxx -S /tmp/n1.sock
      so seems like password is not shown)
      0cf66e49
  36. 21 Dec, 2015 1 commit