Commit graph

192759 commits

Author SHA1 Message Date
Kentoku SHIBA
982290fe9b Fix the following valgrind error on Spider
==22532== Conditional jump or move depends on uninitialised value(s)
==22532==    at 0x9EEDFA: String::append(char const*, unsigned long, charset_info_st const*) (sql_string.cc:587)
==22532==    by 0x17C12BA7: spider_string::append(char const*, unsigned int, charset_info_st const*) (spd_malloc.cc:913)
==22532==    by 0x17C68BD0: spider_db_mysql_util::append_column_value(ha_spider*, spider_string*, Field*, unsigned char const*, charset_info_st const*) (spd_db_mysql.cc:4573)
==22532==    by 0x17B7D298: spider_db_append_key_where_internal(spider_string*, spider_string*, spider_string*, st_key_range const*, st_key_range const*, ha_spider*, bool, unsigned long, unsigned int) (spd_db_conn.cc:1978)
==22532==    by 0x17C81A7C: spider_mbase_handler::append_key_where(spider_string*, spider_string*, spider_string*, st_key_range const*, st_key_range const*, unsigned long, bool) (spd_db_mysql.cc:11146)
==22532==    by 0x17C819B7: spider_mbase_handler::append_key_where_part(st_key_range const*, st_key_range const*, unsigned long) (spd_db_mysql.cc:11130)
==22532==    by 0x17C4B0F0: ha_spider::append_key_where_sql_part(st_key_range const*, st_key_range const*, unsigned long) (ha_spider.cc:15012)
==22532==    by 0x17B7FC8F: spider_db_append_key_where(st_key_range const*, st_key_range const*, ha_spider*) (spd_db_conn.cc:2707)
==22532==    by 0x17C28DF6: ha_spider::multi_range_read_next_first(void**) (ha_spider.cc:4559)
==22532==    by 0x17C2E0F5: ha_spider::multi_range_read_next(void**) (ha_spider.cc:5879)
==22532==    by 0xE27019: QUICK_RANGE_SELECT::get_next() (opt_range.cc:12647)

Conflicts:
	storage/spider/spd_malloc.cc
2021-05-13 02:37:33 +09:00
Marko Mäkelä
370b310b1d Merge 10.5 into 10.6 2021-05-12 07:47:51 +03:00
Monty
4d53a7585c Updated tests in decimal.c that match current API and usage 2021-05-11 21:25:08 +03:00
Monty
0df51e610b MDEV-25651 Server crash or assertion failure in THD::update_stats upon concurrent DROP TRIGGER
The problem was that in a timeout event,
thd->lex->restore_backup_query_tables_list() was called when it should
not have been.

Patch tested with the script in MDEV-25651 (not suitable for mtr)
2021-05-11 21:06:36 +03:00
Brandon Nesterenko
b6cfb2961e MDEV-14974: --port ignored for --host=localhost
Problem:
=======
MariaDB's command line utilities (e.g., mysql,
mysqldump, etc) silently ignore connection
property options (e.g., --port and --socket)
when protocol is not explicitly set via the
command-line for localhost connections.

Fix:
===
If connection properties are specified without a
protocol, override the protocol to be consistent.
For example, if --port is specified, automatically
set protocol=tcp.

Caveats:
=======
 * When multiple connection properties are
specified, nothing is overridden
 * If protocol is is set via the command-line,
its value is used

Reviewers:
========
Sergei Golubchik <serg@mariadb.com>
Vladislav Vaintroub <wlad@mariadb.com>
2021-05-11 11:50:41 -06:00
Marko Mäkelä
02380cd384 MDEV-21452 fixup: recursive recv_sys.mutex lock
In commit 38fd7b7d91 (MDEV-21452),
2 of the 3 callers of recv_sys.set_corrupt_fs() are already holding
recv_sys.mutex.
2021-05-11 09:58:23 +03:00
Monty
621501f38b MDEV-25606: Concurrent CREATE TRIGGER statements mix up in binlog and break replication
The bug is that we don't have a a lock on the trigger name, so it is
possible for two threads to try to create the same trigger at the same
time and both thinks that they have succeed.
Same thing can happen with drop trigger or a combinations of create and
drop trigger.

Fixed by adding a mdl lock for the trigger name for the duration of the
create/drop.

Patch tested by Elena
2021-05-10 21:11:46 +03:00
Daniel Bartholomew
5d8684863c
bump the VERSION 2021-05-10 11:33:29 -04:00
Marko Mäkelä
f8665314d4 Merge 10.5 into 10.6 2021-05-10 11:42:04 +03:00
Marko Mäkelä
0e1437e147 Merge 10.4 into 10.5 2021-05-10 10:01:15 +03:00
Marko Mäkelä
8c73fab7f7 Merge 10.3 into 10.4 2021-05-10 09:52:01 +03:00
Marko Mäkelä
98e6159892 Merge 10.2 into 10.3 2021-05-10 09:09:50 +03:00
Sujatha
1ef3207cb8 MDEV-19371: Implement binlog_expire_logs_seconds for purging of binary logs
Part2: Test scripts
2021-05-10 09:36:40 +05:30
Sujatha
49ff2cbff4 MDEV-19371: Implement binlog_expire_logs_seconds for purging of binary logs
Part1: Functional changes

Backporting upstream changes.
commit a7e1ef858ee82493dd8ad9a76bc9c22fe3b8c05b
Author: Neha Kumari <neha.n.kumari@oracle.com>
Note:
From the upstream patch only the new option binlog_expire_logs_seconds
specific changes are taken.

* Unlike in the upstream patch 'binlog_expire_logs_seconds' does not
  replace the "old" 'expire_logs_days', to preserve backward-compatibility.

* Datatype of 'expire_logs_days' variable is changed to double.

* Default value of 'binlog_expire_logs_seconds=0' similar to
  'expire_logs_days'.

* The purge_time can be specified in days with the micro-day precision.
  Eg:
  expire_logs_days=1 is the same as expire_logs_days=1.000000 to make
    binlog_expire_logs_seconds=86400.
  binlog_expire_logs_seconds=1 is the same as expire_logs_days=0.000012.

* If binary log is disabled and option 'expire_logs_days' or
  'binlog_expire_logs_seconds' used with purge_time > 0 a warning will be
  issued.
2021-05-10 09:36:40 +05:30
Vladislav Vaintroub
4205078b41 Fix clang-cl warning 2021-05-09 23:51:18 +02:00
Vladislav Vaintroub
f3c1e3f40f Remove incorrect comment. 2021-05-09 23:51:18 +02:00
Vladislav Vaintroub
bc64a03c3a Windows - Fix CMAKE_INTERPROCEDURAL_OPTIMIZATION build with MSVC
If IPO is enabled, MSVC compiles with /GL  which is not
compatible with cmake's WINDOWS_EXPORT_ALL_SYMBOLS.

Since server.dll can't autoexport symbols from /GL compiled objects,
IPO must be disabled for dbug, string,mysys, and sql targets (in case we
build "plugin" DLLs that need server.dll's symbols)
2021-05-09 23:51:18 +02:00
Vladislav Vaintroub
f33e8e4a95 Windows : fix warning about potential division by 0
The warning brought by code analysis, unsafe arithmetic in timer related code
2021-05-09 13:26:03 +02:00
Vladislav Vaintroub
fbad1b1150 MDEV-19237 - small performance tweak
Avoid calling constructor for Protocol_text, if not necessary.
2021-05-09 13:23:22 +02:00
Vladislav Vaintroub
d0785f7731 MDEV-25232 Ninja MSVC build sets default CMAKE_BUILD_TYPE to Debug
This is incosistent with other single config generators, where
the default type has always been RelWithDebInfo.

Fixed by moving setting of CMAKE_BUILD_TYPE right before PROJECT.
2021-05-09 10:32:49 +02:00
Sergei Golubchik
e1bf1aea5c force jemalloc to be used in release rpm/deb builds
unless explicitly overruled with -DWITH_JEMALLOC=no
2021-05-08 18:02:34 +02:00
Sergei Golubchik
66acec99d5 XA PREPARE and SHOW STATUS
XA transaction only allows to access data in specific states,
in ACTIVE, but not in IDLE or PREPARE.

But even then one should be able to run SHOW STATUS.
2021-05-08 18:02:34 +02:00
Sergei Golubchik
18fbe566bd mtr --gdb='commands' and restarts
if mysqld is restarted during a test, the debugger script
should be reused or overwritten, but not appended to the existing file
2021-05-08 18:02:34 +02:00
Sergei Golubchik
af781f1ac4 fix mtr --client-gdb to work
mysqltest has no --gdb option
2021-05-08 18:02:34 +02:00
Sergei Golubchik
ad4b51948f Revert "Connect: remove Mongo dependencies"
This reverts commit 72fa9dabad

but doesn't recover deleted jars - they still exist in
mysql-test/connect/std_data, no need to have them twice.

Also it removes a redundant copy on JavaWrappers.jar
2021-05-08 18:02:11 +02:00
Vladislav Vaintroub
afb8e87391 Skip auth_named_pipe test, if plugin was not built 2021-05-07 21:42:42 +02:00
Marko Mäkelä
916b237b3f Merge 10.5 into 10.6 2021-05-07 15:00:27 +03:00
Marko Mäkelä
76c2b5106e Fix clang++-11 -Wsometimes-uninitialized 2021-05-07 14:52:46 +03:00
Marko Mäkelä
a04202673f MDEV-18518 fixup: Remove unused variables 2021-05-07 14:18:36 +03:00
Oleksandr Byelkin
35977e81f9 Merge branch 'bb-10.5-release' into 10.5 2021-05-07 12:13:17 +02:00
Oleksandr Byelkin
72753d2b65 Merge branch 'bb-10.3-release' into 10.3 2021-05-07 11:51:22 +02:00
Oleksandr Byelkin
583b72ad0d Merge branch 'bb-10.4-release' into 10.4 2021-05-07 11:50:24 +02:00
Oleksandr Byelkin
c225eee219 Merge branch 'bb-10.2-release' into 10.2 2021-05-07 11:18:55 +02:00
Jan Lindström
c74f059abc Update Galera disabled.def files on 10.6 2021-05-07 09:45:56 +03:00
Vladislav Vaintroub
a5b3982585 MDEV-25613 assertion (file_system.n_open > 0) failed
Remove operations on fil_system.n_open from mariabackup, as they are not
protected by the mutex, and serve no higher purpose anyway.
2021-05-07 08:13:28 +02:00
Marko Mäkelä
2ceadb3903 MDEV-25506 (2 of 3): Kill during DDL leaves orphan .ibd file
dict_drop_index_tree(): Even if SYS_INDEXES.PAGE contains the
special value FIL_NULL, the tablespace identified by SYS_INDEXES.SPACE
may exist and may need to be dropped. This would definitely be the case
if the server had been killed right after a FILE_CREATE record was
persistently written during CREATE TABLE, but before the transaction
was committed.

btr_free_if_exists(): Simplify the interface, to avoid repeated
tablespace lookup.

One more scenario is known to be broken: If the server is killed
during DROP TABLE (or table-rebuilding ALTER TABLE) right after a
FILE_DELETE record has been persistently written but before the
file was deleted, then we could end up recovering no tablespace
at all, and failing to delete the file, in either of fil_name_process()
or dict_drop_index_tree().

Thanks to Elena Stepanova for providing "rr replay" and data directories
of these scenarios.
2021-05-06 16:34:10 +03:00
Marko Mäkelä
cc2ddde4d8 MDEV-18518 follow-up fixes
Make DDL operations that involve FULLTEXT INDEX atomic.
In particular, we must drop the internal FTS_ tables in the same
DDL transaction with ALTER TABLE.

Remove all references to fts_drop_orphaned_tables().

row_merge_drop_temp_indexes(): Drop also the internal FTS_ tables
that are associated with index stubs that were created in
prepare_inplace_alter_table_dict() for
CREATE FULLTEXT INDEX before the server was killed.

fts_clear_all(): Remove the fts_drop_tables() call. It has to be
executed before the transaction is committed!

dict_load_indexes(): Do not load any metadata for index stubs
that had been created by prepare_inplace_alter_table_dict()

fts_create_one_common_table(), fts_create_common_tables(),
fts_create_one_index_table(), fts_create_index_tables():
Remove redundant error handling. The tables will be dropped
just fine by dict_drop_index_tree().

commit_try_norebuild(): Also drop the FTS_ tables when dropping
FULLTEXT INDEX.

The changes to the test case innodb_fts.crash_recovery has been
extensively tested. The non-debug server will be killed while
the 3 ALTER TABLE are in any phase of execution. With the debug
server, DEBUG_SYNC should make the test deterministic.
2021-05-06 16:04:29 +03:00
Alexey Yurchenko
54d7ba9609 MDEV-25418: Improve mariabackup SST script compliance with native MariaDB SSL practices
and configuration.

1. Pass joiner's authentication information to donor together with address
   in State Transfer Request. This allows joiner to authenticate donor on
   connection. Previously joiner would accept data from anywhere.

2. Deprecate custom SSL configuration variables tca, tcert and tkey in favor
   of more familiar ssl-ca, ssl-cert and ssl-key. For backward compatibility
   tca, tcert and tkey are still supported.

3. Allow falling back to server-wide SSL configuration in [mysqld] if no SSL
   configuration is found in [sst] section of the config file.

4. Introduce ssl-mode variable in [sst] section that takes standard values
   and has following effects:
    - old-style SSL configuration present in [sst]: no effect
      otherwise:
    - ssl-mode=DISABLED or absent: retains old, backward compatible behavior
      and ignores any other SSL configuration
    - ssl-mode=VERIFY*: verify joiner's certificate and CN on donor,
                        verify donor's secret on joiner
                        (passed to donor via State Transfer Request)
                        BACKWARD INCOMPATIBLE BEHAVIOR
    - anything else enables new SSL configuration convetions but does not
      require verification

    ssl-mode should be set to VERIFY only in a fully upgraded cluster.

    Examples:

    [mysqld]
    ssl-cert=/path/to/cert
    ssl-key=/path/to/key
    ssl-ca=/path/to/ca

    [sst]

     -- server-wide SSL configuration is ignored, SST does not use SSL

    [mysqld]
    ssl-cert=/path/to/cert
    ssl-key=/path/to/key
    ssl-ca=/path/to/ca

    [sst]
    ssl-mode=REQUIRED

     -- use server-wide SSL configuration for SST but don't attempt to
        verify the peer identity

    [sst]
    ssl-cert=/path/to/cert
    ssl-key=/path/to/key
    ssl-ca=/path/to/ca
    ssl-mode=VERIFY_CA

     -- use SST-specific SSL configuration for SST and require verification
        on both sides

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
2021-05-06 04:03:07 +02:00
Alexey Yurchenko
cf67ca48d6 MDEV-25418 rsync SST does not work with stunnel encryption
1. Fix eval command line to correctly pass stunnel option to rsync on donor.
2. Deprecate `tkey`, `tcert` and `tca` options in [sst] section in favor of
   conventional `ssl-key`, `ssl-cert` and `ssl-ca`, but keep their precedence
   for backward compatibility.
3. Default to require SSL encryption if at least SSL key and cert files are
   specified in configuration, either in [sst] or [mysqld] sections.
4. Enable `verify*` option for stunnel on donor only if
   a. CA file is specified somewhere in the configuration
   b. it is explicitly requested in [sst] section by either specifying
   ssl-mode or CA file there. In this case if ssl-mode is not explicitly
   given, it defaults to VERIFY_CA.

   ssl-mode maps to stunnel options as follows:
   VERIFY_CA       -> verifyChain = yes
   VERIFY_IDENTITY -> verifyPeer = yes

   Example to require donor to verify joiner identity:
```
[mysqld]
ssl-cert=/path/to/cert
ssl-key=/path/to/key
ssl-ca=/path/to/ca

[sst]
ssl-mode=VERIFY_IDENTITY
```
5. If SSL verification is requested, joiner verifies donor by checking the
   secret passed to donor via SST request.

Signed-off-by: Julius Goryavsky <julius.goryavsky@mariadb.com>
2021-05-06 01:40:24 +02:00
Julius Goryavsky
ee1e877470 MDEV-24962 addendum: improved handling of paths with spaces 2021-05-06 01:25:51 +02:00
Julius Goryavsky
6895c9eaa0 MDEV-24962 addendum: mariabackup does not understand --log-bin-index and --log-basename options 2021-05-06 01:25:27 +02:00
Nikita Malyavin
3f55c56951 Merge branch bb-10.4-release into bb-10.5-release 2021-05-05 23:57:11 +03:00
Vicențiu Ciorbaru
ca1dc0789b Follow-up for Deb: Stop depending on empty transitional package dh-systemd
058d93d47a introduced a switch in autobake
script to append dh-systemd package when it is necessary. However, the
change was not complete as it didn't actually remove the dh-systemd
dependency in debian/control.
2021-05-05 23:16:43 +03:00
Nikita Malyavin
a4139f8d68 remove the test for MDEV-16962
after b9d64989 the test for MDEV-16962 is not suitable anymore
(and probably the bug is not reproducible).
2021-05-05 23:06:12 +03:00
Oleksandr Byelkin
0775ca315e MDEV-23542 Server crashes in thd_clear_errors()
1) Checked presence of mysys_var.
2) Removed unneeded thd_clear_errors,
  its content added to THD::change_user.
2021-05-05 23:06:12 +03:00
Nikita Malyavin
da63eb16c9 fix galera_password.result for 10.4 2021-05-05 23:06:12 +03:00
Nikita Malyavin
509e4990af Merge branch bb-10.3-release into bb-10.4-release 2021-05-05 23:03:01 +03:00
Oleksandr Byelkin
4f143a88bc Fix of ppc64 by Wlad 2021-05-05 17:21:05 +02:00
Sujatha
625e44a80d MDEV-25597: Disable rpl_semi_sync_slave_compressed_protocol.test 2021-05-05 15:46:22 +05:30
Marko Mäkelä
b2e0a45d7a Merge 10.5 into 10.6 2021-05-05 13:15:06 +03:00