1. 06 Apr, 2018 4 commits
    • Daniel Black's avatar
      MDEV-14705: slow innodb startup/shutdown can exceed systemd timeout · 1479273c
      Daniel Black authored
      Use systemd EXTEND_TIMEOUT_USEC to advise systemd of progress
      
      Move towards progress measures rather than pure time based measures.
      
      Progress reporting at numberious shutdown/startup locations incuding:
      * For innodb_fast_shutdown=0 trx_roll_must_shutdown() for rolling back incomplete transactions.
      * For merging the change buffer (in srv_shutdown(bool ibuf_merge))
      * For purging history, srv_do_purge
      
      Thanks Marko for feedback and suggestions.
      1479273c
    • Daniel Black's avatar
      MDEV-14705: Speed up InnoDB shutdown · e7f4e61f
      Daniel Black authored
      Suggested by Marko on github pr #576
      
      buf_all_freed only needs to be called once, not 3 times.
      
      buf_all_freed will always return TRUE if it returns.
      It will crash if any page was not flushed so its effectively
      an assert anyway.
      
      The following calls are likely redundant and could be removed:
      
      		fil_flush_file_spaces(FIL_TYPE_TABLESPACE);
      		fil_flush_file_spaces(FIL_TYPE_LOG);
      e7f4e61f
    • Marko Mäkelä's avatar
      MDEV-14705: Do not rollback on InnoDB shutdown · 76ec37f5
      Marko Mäkelä authored
      row_undo_step(): If fast shutdown has been requested, abort the
      rollback of any non-DDL transactions. Starting with MDEV-12323,
      we aborted the rollback of recovered transactions. These
      transactions would be rolled back on subsequent server startup.
      
      trx_roll_report_progress(): Renamed from trx_roll_must_shutdown(),
      now that the shutdown check has been moved to the only caller.
      76ec37f5
    • Jan Lindström's avatar
      Fix out of array access. · 3a6283cb
      Jan Lindström authored
      3a6283cb
  2. 05 Apr, 2018 9 commits
  3. 04 Apr, 2018 1 commit
  4. 03 Apr, 2018 7 commits
    • Daniele Sciascia's avatar
      MDEV-13549 Fix and re-enable MTR test galera.galera_gra_log · eeb68422
      Daniele Sciascia authored
      Test galera checks that a `GRA_x_x.log` file is created whenever
      wsrep applier fails to apply some replication event. The file
      contains the corresponding binlog event that failed to apply.
      The test creates a new file by concatenating a pre-recorded
      file containing the binlog header (see `std-data/binlog-header.log`)
      and the `GRA_x_x.log` file. The test then checks that the resulting
      file, containing the binlog header and the event that failed to
      apply, is correctly read by `mysqlbinlog` program.
      The test fails in MariaDB because the GRA_x_x.log file created
      by MariaDB already contains the binlog header (see MDEV-7867).
      This patch fixes/simplifies test `galera.galera_gra_log` so that
      it doesn't concatenate `std-data/binlog-header.log` with the
      `GRA_x_x.log` file. File `std-data/binlog-header.log` is deleted
      altoghether, because not used by any other test.
      eeb68422
    • Michael Gmelin's avatar
      Fix LibreSSL X509 (SSL) certificate hostname checking. · ed332962
      Michael Gmelin authored
      (Currently) LibreSSL doesn't calculate the string length of the hostname
      that's passed to X509_check_host automatically in case namelen/chklen is 0.
      This causes server certificate validation to fail when building MariaDB with
      LibreSSL.
      
      The proposed fix makes MariaDB determine the string length passed to
      X509_check_host. As there are no ill side-effects (OpenSSL's X509_check_host
      also simply calls strlen if namelen == 0, see also X509_check_host(3)), this
      wasn't wrapped in any #ifdef like constructs.
      
      Please see here for a proposed patch to modify LibreSSL's behavior:
      https://github.com/libressl-portable/openbsd/pull/87
      ed332962
    • Jan Lindström's avatar
      MDEV-14616: WSREP has not yet prepared node for application use error · 7ffa82b0
      Jan Lindström authored
      MariaDB adjustments.
      
      mysqltest.cc : Allow 12 error codes at --error
      
      wait_until_connected_again.inc: Replace numeric error codes with symbols
      
      mysqltest.test: Add error codes to test that tests too many errorcodes
      7ffa82b0
    • Daniele Sciascia's avatar
      MW-405 Remove wait_until_connected_again.inc from kill_galera.inc · 99237069
      Daniele Sciascia authored
      kill_galera.inc can no longer rely on wait_until_connected_again.inc.
      This is because wait_until_connected_again now tries to make sure
      that the server it is connected eventually transition to ready
      state. Whereas some tests may need to kill galera while the server
      is in a non-primary view.
      99237069
    • Daniele Sciascia's avatar
      MW-405 Adjust galera_pc_weight to new wait_until_connected_again · 54652161
      Daniele Sciascia authored
      Test galera_3nodes.galera_pc_weight started to fail because it
      expects to use wait_until_connected_again while remaining in
      non-primary view. Hopefully this is the only test which makes
      this assumption, and fortunately those wait_until_connected_again
      seem unnecessary, so this patch removes them.
      54652161
    • Daniele Sciascia's avatar
      MW-405 Remove redundant conditions · fc26fd1c
      Daniele Sciascia authored
      Remove clause on `thd->variables.wsrep_on` in the following code:
      
      if (WSREP(thd))
      {
      ...
              if (thd->variables.wsrep_on &&
                  ...
      
      In the above snippet, `WSREP(thd)` already ensures thd->variables.wsrep_on
      fc26fd1c
    • Daniele Sciascia's avatar
      MW-405 Make sure wsrep is ready in wait_until_connected_again.inc · d970f805
      Daniele Sciascia authored
      wait_until_connected_again issues 'SHOW STATUS' query repeatedly
      until mysqld replies without errors.
      However, SHOW STATUS is treated specially by wsrep in that it is
      allowed to proceed even if wsrep is not yet in ready state. As a
      consequence, after returning from wait_until_connected_again,
      wsrep may not be ready yet and subsequent queries may fail with
      error "1047 WSREP has not yet prepared node for application use".
      To avoid those errors, the patch includes wait_wsrep_ready.inc at
      the end of the wait_until_connected_again.
      d970f805
  5. 29 Mar, 2018 2 commits
  6. 28 Mar, 2018 3 commits
  7. 27 Mar, 2018 3 commits
    • Daniel Bartholomew's avatar
      bump the VERSION · db16ae54
      Daniel Bartholomew authored
      db16ae54
    • Daniele Sciascia's avatar
      MDEV-13549 Fix and re-enable MTR test galera.galera_as_master · 58fad040
      Daniele Sciascia authored
      Was failing due to missing RESET MASTER
      58fad040
    • Daniele Sciascia's avatar
      MDEV-13549 Fix and re-enable test galera.galera_suspend_slave · 832025b5
      Daniele Sciascia authored
      Test galera_suspend_slave checks that after suspending a galera
      node, like this:
      ```
      --perl
              my $pid_filename = $ENV{'NODE_2_PIDFILE'};
              my $mysqld_pid = `cat $pid_filename`;
              chomp($mysqld_pid);
              system("kill -SIGSTOP $mysqld_pid");
              exit(0);
      EOF
      ```
      
      the remaining one node cluster is no longer able to successfully
      INSERT new rows:
      ```
      --error ER_UNKNOWN_COM_ERROR,ER_LOCK_WAIT_TIMEOUT,ER_LOCK_DEADLOCK,ER_ERROR_DURING_COMMIT
      INSERT INTO t1 VALUES (1);
      ```
      
      On rare occasions when the system is overloaded, it appears that
      suspending the process with ```system("kill -SIGSTOP $mysqld_pid")```
      takes some time, enough for the subsequent INSERT to succeed. In which
      case the test fails because it rightly expects the INSERT to fail.
      
      To fix the problem, the patch makes sure that the cluster has shrinked
      to one node, before trying to INSERT the new value.
      832025b5
  8. 26 Mar, 2018 5 commits
  9. 24 Mar, 2018 3 commits
  10. 23 Mar, 2018 3 commits