1. 23 Apr, 2018 3 commits
  2. 20 Apr, 2018 1 commit
    • Daniele Sciascia's avatar
      MDEV-15948 Fix error "Lost connection to MySQL server..." in test galera_sst_mysqldump · 9e5671f1
      Daniele Sciascia authored
      Test galera_sst_mysqldump often fails with error "2013: Lost connection
      to MySQL server during query". The connection is lost after the test
      restart one of the nodes. This happens because the server closes client
      connections if it is joining a cluster through SST method mysqldump.
      On unlucky runs of the test it is possible that mysqld is restarted,
      and then mtr client is disconnected while it tries to determine if
      galera is ready before going on with the test.
      This patch rewrites galera_wait_ready.inc so that it is immune to
      being disconnected.
      9e5671f1
  3. 19 Apr, 2018 1 commit
    • Daniele Sciascia's avatar
      MDEV-15929 Fix lock wait timeout on `SELECT @@GLOBAL.WSREP_ON` · 3aa5f00e
      Daniele Sciascia authored
      This patch fixes a lock wait timeout error on `SELECT @@GLOBAL.WSREP_ON`
      in `wait_wsrep_ready.inc`:
      
      ```
      --connection node_2
      ...
      --source include/kill_galera.inc
      
      --connection node_1
      --source include/wait_until_connected_again.inc # This includes wait_wsrep_ready.inc
      
      ```
      
      The problem is that on node_2, kill_galera.inc may return before
      the node is killed. So node_1 may still see that node_1 is alive
      and will attempt to sync wait when doing those `SELECT` statements.
      But sync wait is doomed to fail given that node_1 is killed, hence
      the lock wait timeout.
      One possible fix is to disable wsrep_sync_wait before including
      wait_until_connected_again.
      However, it appears that including wait_until_connected_again is
      not necessary at all in node_1, so this patch removes it altogether.
      3aa5f00e
  4. 16 Apr, 2018 1 commit
  5. 13 Apr, 2018 4 commits
  6. 12 Apr, 2018 4 commits
    • Vladislav Vaintroub's avatar
      MDEV-15779 - mariabackup incremental prepare fails on CIFS mount. · c2dc72c0
      Vladislav Vaintroub authored
      CIFS does not like O_DIRECT flag (it is set successfully, but pread would
      fail).
      
      The fix is not to use O_DIRECT, there is not need for it.
      posix_fadvise() was used already that should prevent buffer cache
      pollution on Linux.
      
      As recommended by documentation of posix_fadvise(), we'll also fsync()
      tablespaces after a batch of writes.
      c2dc72c0
    • Vladislav Vaintroub's avatar
      MDEV-15780 : Mariabackup with absolute paths in innodb_data_file_path · 15071226
      Vladislav Vaintroub authored
      System tablespace can be specified with absolute path, if innodb_data_home_dir
      is empty.
      
      This was not handled well  by mariabackup
      
      1. In backup phase, empty innodb_data_home_dir variable from server was
      not recognized. full paths were stored in backup-my.ini, even if
      it stored all files locally. thus prepare phase would not find the system
      tablespace files.
      
      2. In copy-back phase, copy would not be done to the absolute destination
      path, as path would be stripped with trim_dotslash
      
      This patch fixes the above defects.
      15071226
    • Jan Lindström's avatar
      MDEV-12632: Source and destination overlap in memcpy,... · 0ae13b51
      Jan Lindström authored
      MDEV-12632: Source and destination overlap in memcpy, encryption.innodb-discard-import-change fails in buildbot with valgrind
      
      Problem was that if tablespace was encrypted we try to copy
      also page 0 from read buffer to write buffer that are in
      that case the same memory area.
      
      fil_iterate
      	When tablespace is encrypted or compressed its
              first page (i.e. page 0) is not encrypted or
      	compressed and there is no need to copy buffer.
      0ae13b51
    • Jan Lindström's avatar
      MDEV-12903: encryption.innodb_encryption_discard_import fails in buildbot with FOUND vs NOT FOUND · 9518ddd1
      Jan Lindström authored
      Wait until rotation has ended and shutdown before grep to make sure
      that dirty pages are on datafiles.
      9518ddd1
  7. 11 Apr, 2018 5 commits
  8. 10 Apr, 2018 4 commits
  9. 09 Apr, 2018 6 commits
  10. 08 Apr, 2018 3 commits
  11. 07 Apr, 2018 4 commits
  12. 06 Apr, 2018 4 commits
    • Jan Lindström's avatar
    • Daniele Sciascia's avatar
      MDEV-13549 Fix test galera.galera_wsrep_desync_wsrep_on · 7925cdff
      Daniele Sciascia authored
      The test tends to fail if many parallel instances of it are executed:
      
      ```
      mysqltest: At line 23: query 'ALTER TABLE t1 ADD PRIMARY KEY (f1)' failed:
      1317: Query execution was interrupted
      ```
      
      The `ALTER` fails because it is BF aborted due to an earlier `INSERT SELECT`
      that is being applied:
      
      ```
      INSERT INTO t1 (f1) SELECT ...
      
      --connection node_2
      SET GLOBAL wsrep_desync = TRUE;
      SET SESSION wsrep_on = FALSE;
      
      ALTER TABLE t1 ADD PRIMARY KEY (f1);
      
      SET SESSION wsrep_on = TRUE;
      SET GLOBAL wsrep_desync = FALSE;
      ```
      
      And because the `ALTER` is executed with `wsrep_on = OFF`, it does not
      run in total order isolation.
      To avoid the problem it must be ensured that the `ALTER` only after the
      large `INSERT SELECT` is done. To do so it is sufficient to issue
      `SELECT COUNT(*) FROM t1;` from `node_2` before turning off wsrep.
      The `SELECT` will trigger `wsrep_sync_wait` and proceed only after the
      `INSERT SELECT` from node_1 is done.
      7925cdff
    • Marko Mäkelä's avatar
      Fix a compilation error · 8325d71f
      Marko Mäkelä authored
      8325d71f
    • Jan Lindström's avatar
      MDEV-15566: System tablespace does not easily key rotate to unencrypted · 81075d45
      Jan Lindström authored
      Problem was that key rotation from encrypted to unecrypted was skipped
      when encryption is disabled (i.e. set global innodb-encrypt-tables=OFF).
      
      fil_crypt_needs_rotation
              If encryption is disabled (i.e. innodb-encrypt-tables=off)
      	and there is tablespaces using default encryption (e.g.
      	system tablespace) that are still encrypted state we need
      	to rotate them from encrypted state to unencrypted state.
      81075d45