1
0
mirror of https://github.com/MariaDB/server.git synced 2025-04-20 09:08:00 +03:00

30 Commits

Author SHA1 Message Date
Dave Gosselin
4911ec1a5b mtr on FreeBSD detects core count for --parallel=auto 2024-05-16 10:07:03 +10:00
Dave Gosselin
89084c2ea4 MDEV-33078 SysInfo.pm reports incorrect CPU count on macOS
When running on macOS, MTR will ask the operating system for the core count when --parallel=auto
2024-05-07 09:08:57 +10:00
Aleksey Midenkov
848b3af816 MDEV-30836 MTR MSYS2 fix attempt
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... :(
2023-09-05 17:43:15 +10:00
Aleksey Midenkov
640cd404af MDEV-30836 MTR Cygwin fix
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.
2023-09-05 17:43:15 +10:00
Aleksey Midenkov
4ed583031a MDEV-30836 MTR Cygwin subshell wrapper fix
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
2023-09-05 17:43:15 +10:00
Daniel Black
2301093f8f MDEV-25894: support AIX as a platform in mtr
Parital backport of 48938c57c7f75b2a7627212b01cd65cfd6830261
so platform dependent AIX tests can be done.
2021-07-02 17:17:19 +10:00
Marko Mäkelä
be85d3e61b Merge 10.2 into 10.3 2019-05-14 17:18:46 +03:00
Vicențiu Ciorbaru
5543b75550 Update FSF Address
* Update wrong zip-code
2019-05-11 21:29:06 +03:00
Sergei Golubchik
a39337415d MDEV-14900 Upstream 10.3 debian patches
applied (at least partially):
* armhf_mroonga_storage_fail.patch (unaligned write)
* mysqld_multi.server_lsb-header.patch (add LSB header)
* fix-spelling-errors.patch (tabxml.cpp)
* hurd_socket.patch (in Platform.pm)
* remove-systemd-obsolete-target.patch
2018-08-12 11:37:42 +02:00
Vladislav Vaintroub
b38d3c3d8a MDEV-10907 MTR and server writes can interleave in the error log
Ensure atomic appends to the error log by using CreateFile with
FILE_APPEND_DATA flag to open error log file (both MTR and server)
2016-09-27 12:34:15 +00:00
Sergei Golubchik
c58f561e0d MDEV-5707 MTR fails on kfreebsd
apply debian's patch to workaround kfreebsd bug
2014-10-02 12:57:20 +02:00
Kent Boortz
68f00a5686 Updated/added copyright headers 2011-06-30 17:37:13 +02:00
Bjorn Munch
5a85609d6b Fixed copyright headers in mtr src files 2011-01-18 11:03:44 +01:00
Bjorn Munch
6ddeb379fe Bug #45771 AIX and i5/OS Perl bug: check_socket_path_length in MTR fails
Bug in Perl
Scrap attempt to do this smartly on AIX, just drop the test and assume it's OK
This commit undoes the previous push and adds a line to ignore on AIX
2009-08-06 09:30:53 +02:00
Bjorn Munch
47227d7f6a Bug #45771 AIX and i5/OS Perl bug: check_socket_path_length in MTR fails
Bug is actually in Perl
Fixed by trapping and ignoring error from IO::Socket::UNIX
2009-08-05 09:41:40 +02:00
Bjorn Munch
e0c6aad83a Bug #43172 MTR leaves test files in /tmp after check_socket_path_length finds path too long
Faulty logic in cleanup
Put test file into tmpdir, cleanup by removing tmpdir
2009-02-25 10:32:13 +01:00
Magnus Svensson
c2a4f3901b Bug#35735 mysql-test-run.pl creates tmpdir for socket path longer than 70
- Additional patch with improved protection by putting it all inside an "eval"
 - Calling 'hostpath' on a truncated socket may also croak.
 - Remove the need to create any directory parts of "path" inside the function.
2009-01-21 18:18:03 +01:00
Magnus Svensson
7dca45f8b2 Merge 2008-10-08 22:43:37 +02:00
Magnus Svensson
ce9f585b48 Merge 2008-10-08 22:30:56 +02:00
Magnus Svensson
e75daedf17 WL4189 Active state perl fixes 2008-10-08 20:25:28 +02:00
Magnus Svensson
853880910c Memoize functions that converts between different paths, a given input string will always return the same output. This save a lot of calls to cygpath for example 2008-09-22 19:15:55 +03:00
Magnus Svensson
670a46aa0a Print 'cygpath -m' command if it fails 2008-09-22 18:44:35 +03:00
Magnus Svensson
862f105151 Make sure the direcory where the test socket is to be created exists 2008-09-20 15:21:29 +03:00
Magnus Svensson
af23ec8579 WL#4189 Wrap the check for socket path length in eval 2008-09-15 16:27:12 +02:00
Magnus Svensson
93d835213e Debug printouts 2008-08-11 10:41:23 +02:00
Magnus Svensson
182b14114a Fixup mtr_unique. Remove usage of ps and grep. Make it a module. Move _process_alive to Platform.pm. Rename opt_baseport to baseport, it's not an option 2008-08-10 19:46:43 +02:00
unknown
2d226292ff Always return 0 inidcating that socket path would not be truncated when
running on windows. Apparently Cygwin tries to emulate UNIX Socket and thus
fails to create one.
2008-04-22 21:55:09 +02:00
unknown
1737e14c96 Since IO::Socket::UNIX is part of core perl, it's not enough to
"eval use" it. Instead trap the error that occurs when creating the socket
on platforms that does not support it.
2008-04-22 12:43:38 +02:00
unknown
3d861b6724 Add check for unix socket path truncation
Don't allow unix socket path to be truncated 


mysql-test/lib/My/Platform.pm:
  Add check for unix socket path truncation
mysql-test/mysql-test-run.pl:
  Don't allow socket path to be truncated. Fail and ask user to correct the problem by
  using a shorter path with  --tmpdir
2008-04-21 18:32:32 +02:00
unknown
0d01221c17 Use My::Platform
Put all path conversions in one file
Convert the --tmpdir  passed to "mysqld --verbose --help"


mysql-test/lib/My/Find.pm:
  Use My::Platform
mysql-test/lib/My/SafeProcess.pm:
  use My::Platform
mysql-test/lib/mtr_cases.pm:
  Use My::Platform
mysql-test/lib/mtr_misc.pl:
  Move 'mtr_native_path' to My::Platform
mysql-test/lib/My/Platform.pm:
  New BitKeeper file ``mysql-test/lib/My/Platform.pm''
mysql-test/lib/t/Platform.t:
  New BitKeeper file ``mysql-test/lib/t/Platform.t''
2008-02-20 14:55:30 +01:00