1. 15 Sep, 2023 1 commit
  2. 14 Sep, 2023 5 commits
  3. 13 Sep, 2023 3 commits
    • Brandon Nesterenko's avatar
      MDEV-31177: SHOW SLAVE STATUS Last_SQL_Errno Race Condition on Errored Slave Restart · 1407f999
      Brandon Nesterenko authored
      The SQL thread and a user connection executing SHOW SLAVE STATUS
      have a race condition on Last_SQL_Errno, such that a slave which
      previously errored and stopped, on its next start, SHOW SLAVE STATUS
      can show that the SQL Thread is running while the previous error is
      also showing.
      
      The fix is to move when the last error is cleared when the SQL
      thread starts to occur before setting the status of
      Slave_SQL_Running.
      
      Thanks to Kristian Nielson for his work diagnosing the problem!
      
      Reviewed By:
      ============
      Andrei Elkin <andrei.elkin@mariadb.com>
      Kristian Nielson <knielsen@knielsen-hq.org>
      1407f999
    • Daniel Black's avatar
      MDEV-31369 Disable TLS v1.0 and 1.1 for MariaDB · 1831f8e4
      Daniel Black authored
      Remove TLSv1.1 from the default tls_version system variable.
      
      Output a warning if TLSv1.0 or TLSv1.1 are selected.
      
      Thanks Tingyao Nian for the feature request.
      1831f8e4
    • Oleg Smirnov's avatar
      MDEV-31315 Add client_ed25519.dll to the list of plugins shipped with HeidiSQL · 5fe8d0d5
      Oleg Smirnov authored
      There is a list of plugins in the WiX configuration file for HeidiSQL,
      and the installer only installs DLLs from that list although the HeidiSQL
      portable archive may include other plugins.
      
      This commit adds client_ed25519.dll to this list and also rearranges
      the list alphabetically, so it is easier to verify its contents
      5fe8d0d5
  4. 11 Sep, 2023 9 commits
  5. 09 Sep, 2023 1 commit
  6. 08 Sep, 2023 7 commits
  7. 07 Sep, 2023 1 commit
    • Kristian Nielsen's avatar
      MDEV-10356: rpl.rpl_parallel_temptable failure due to incorrect commit optimization of temptables · e937a64d
      Kristian Nielsen authored
      The problem was that parallel replication of temporary tables using
      statement-based binlogging could overlap the COMMIT in one thread with a DML
      or DROP TEMPORARY TABLE in another thread using the same temporary table.
      Temporary tables are not safe for concurrent access, so this caused
      reference to freed memory and possibly other nastiness.
      
      The fix is to disable the optimisation with overlapping commits of one
      transaction with the start of a later transaction, when temporary tables are
      in use. Then the following event groups will be blocked from starting until
      the one using temporary tables is completed.
      
      This also fixes occasional test failures of rpl.rpl_parallel_temptable seen
      in Buildbot.
      Signed-off-by: default avatarKristian Nielsen <knielsen@knielsen-hq.org>
      e937a64d
  8. 06 Sep, 2023 8 commits
  9. 05 Sep, 2023 5 commits
    • Aleksey Midenkov's avatar
      MDEV-30836 MTR hangs after tests have completed · a49b9314
      Aleksey Midenkov authored
      The problem is in manager/worker communication when worker sends
      WARNINGS and then TESTRESULT. If manager yet didn't read WARNINGS
      response both responses get into the same buffer, can_read() will
      indicate we have data only once and we must read all the data from the
      socket at once. Otherwise TESTRESULT response is lost and manager
      waits it forever.
      
      The fix now instead of single line reads the socket in a loop. But if
      there is only one response in the buffer the second read will be
      blocked waiting until new data arrives. That can be overcame by
      blocking(0) which sets the handle into non-blocking mode. If there is
      no data second read just returns undef.
      
      The problem is non-blocking mode is not supported by all perl flavors
      on Windows. Strawberry and ActiveState do not support it. Cygwin and
      MSYS2 do support. There is some ioctl() hack that was known to "work"
      but it doesn't do what is expected (it does not return data when there
      is data). So for Windows if it is not Cygwin we disable the fix.
      a49b9314
    • Aleksey Midenkov's avatar
      MDEV-30836 MTR MSYS2 fix attempt · 848b3af8
      Aleksey Midenkov authored
      MSYS2 is basically Cygwin, except it has more easy installation (but
      with tools which are not used) and it has some more control of path
      conversion via MSYS2_ARG_CONV_EXCL and MSYS2_ENV_CONV_EXCL. So it
      should be more Windows-friendly than Cygwin.
      
      Installation
      
      Similar to Cygwin, except installing patch requires additional command
      run from shell:
      
          pacman -S patch
      
      MSYS2 still doesn't work as it returns wierd "Bad address" when
      exec-ing forked process from create_process(). Same exec from
      standalone perl -e runs just fine... :(
      848b3af8
    • Aleksey Midenkov's avatar
      MDEV-30836 MTR Cygwin fix · 640cd404
      Aleksey Midenkov authored
      Cygwin is more Unix-oriented. It does not treat \n as \r\n in regexps
      (fixed by \R), it supplies Unix-style paths (fixed by
      mixed_path()). It does some cleanup on paths when running exe, so it
      will be different in exe output (like with $exe_mysqld, comparing
      basename() is enough).
      
      Cygwin installation
      
      1. Just install latest perl version (only base package) and
         patchutils from cygwin-setup;
      2. Don't forget to add c:\cygwin64\bin into system path
         before any other perl flavors;
      3. There is path-style conflict (see below), you must replace
         c:\cygwin64\bin\sh.exe with the wrapper. Run MTR with
         --cygwin-subshell-fix=do for that. Make sure you are running Cygwin
         perl for the option to work.
      4. Restart buildbot via net stop buildbot; net start buildbot
      
      Path-style conflict of Cygwin-ish Perl
      
      Some exe paths are passed to mysqltest which are executed by a native
      call. This requires native-style paths (\-style). These exe paths also
      executed by Perl itself. Either by MTR itself which is not so
      critical, but also by tests' --perl blocks which is impossible to
      change. And if Perl detects shell-expansion or uses pipe command it
      passess this exe path to /bin/sh which is Cygwin-compiled bash that
      cannot work with \-style (or at least in -c processing). Thus we require
      \-style on some parts of MTR execution and /-style on another parts.
      
      The examples of tests which cover these different parts are:
      
          main.mysqlbinlog_row_compressed \
          main.sp_trans_log
      
      That could be great to force Perl to use something different from
      /bin/sh, but unfortunately /bin/sh is compiled-in into binary. So the
      only solution left is to overwrite /bin/sh with some wrapper script
      which passes the command to cmd.exe instead of bash.
      640cd404
    • Aleksey Midenkov's avatar
      MDEV-30836 MTR Cygwin subshell wrapper fix · 4ed58303
      Aleksey Midenkov authored
      See "Path-style conflict" in "MDEV-30836 MTR Cygwin fix" for explanation.
      
      To install subshell fix use --cygwin-subshell-fix=do
      To uninstall use --cygwin-subshell-fix=remove
      
      This works only from Cygwin environment. As long as perl on PATH is
      from Cygwin you are on Cygwin environment. Check it with
      
           perl --version
      
           This is perl 5, version 36, subversion 1 (v5.36.1) built for
           x86_64-cygwin-threads-multi
      4ed58303
    • Aleksey Midenkov's avatar
      MDEV-30836 run_test_server() refactored · 0815a3b6
      Aleksey Midenkov authored
      run_test_server() is actually manager main loop. We move out this
      function into Manager package and split into run() and
      parse_protocol(). The latter is needed for the fix. Moving into
      separate package helps to make some common variables which was local
      to run_test_server().
      
      Functions from the main package is now prefixed with main:: (should be
      reorganized somehow later or auto-imported).
      0815a3b6