Commit graph

195553 commits

Author SHA1 Message Date
Norio Akagi
99566fc894 MDEV-27892 Improve an error message for foreign server exists
Improve and add more languages for the ERROR 1476: Foreign Server
already exists.
2022-05-24 10:31:00 +10:00
Tingyao Nian
3dd3dccb8e MDEV-22023 Update man pages titles to say MariaDB instead of MySQL
When reading the man page of e.g. 'mysql' on a system with MariaDB
installed one would actually see the man page of 'mariadb'. However the
man page had no indication of the page being for 'mariadb', which was
confusing for users.

Fix this by updating the man page title lines to use mariadb-* instead
of mysql* for MariaDB binaries that are drop-in replacements for MySQL
equivalents, indicating that the commands are actually of the MariaDB
version.

In long term, all the commands in man pages should be replaced by their
MariaDB counterparts. Update the title lines as a start, and only those
that exist as symlinks to their MariaDB counterparts.

Before:

    man mariadb-upgrade | head -n 1
    MYSQL_UPGRADE(1) ...

After:

    man mariadb-upgrade | head -n 1
    MARIADB-UPGRADE(1) ...

All new code of the whole pull request, including one or several files
that are either new files or modified ones, are contributed under the
BSD-new license. I am contributing on behalf of my employer Amazon Web
Services, Inc.
2022-05-24 09:21:12 +10:00
Vladislav Vaintroub
babb803222 MDEV-28648 main.ssl_timeout fails with OpenSSL 3.0.3
Depending on OpenSSL version, and at least in 3.0.3, the client-side socket
timeout is reported as generic error (SSL_ERROR_SYSCALL), losing further
details (both errno and GetLastError() return 0). This results in client
reporting "Unknown OpenSSL error" 2026, instead of another generic
"Lost connection to server during query" 2013

Adjusted test case.
2022-05-23 15:28:29 +02:00
Honza Horak
78412ab028 MDEV-27778 md5 in FIPS crashes with OpenSSL 3.0.0
OpenSSL 3.0.0+ does not support EVP_MD_CTX_FLAG_NON_FIPS_ALLOW any longer.
In OpenSSL 1.1.1 the non FIPS allowed flag is context specific, while
in 3.0.0+ it is a different EVP_MD provider.

Fixes #2010

part of MDEV-28133
2022-05-23 15:28:19 +02:00
Oleksandr Byelkin
987d16a0b4 Revert "don't build with OpenSSL 3.0, it doesn't work before MDEV-25785"
This reverts commit c9beef4315, because
we have OpenSSL 3.0 support here.

part of MDEV-28133
2022-05-23 15:28:06 +02:00
Vladislav Vaintroub
f0fa40efad MDEV-25785 Add support for OpenSSL 3.0
Summary of changes

- MD_CTX_SIZE is increased

- EVP_CIPHER_CTX_buf_noconst(ctx) does not work anymore, points
  to nobody knows where. The assumption made previously was that
  (since the function does not seem to be documented)
  was that it points to the last partial source block.
  Add own partial block buffer for NOPAD encryption instead

- SECLEVEL in CipherString in openssl.cnf
  had been downgraded to 0, from 1, to make TLSv1.0 and TLSv1.1 possible
   (according to https://github.com/openssl/openssl/blob/openssl-3.0.0/NEWS.md
   even though the manual for SSL_CTX_get_security_level claims that it
   should not be necessary)

- Workaround Ssl_cipher_list issue, it now returns TLSv1.3 ciphers,
  in addition to what was set in --ssl-cipher

- ctx_buf buffer now must be aligned to 16 bytes with openssl(
  previously with WolfSSL only), ot crashes will happen

- updated aes-t , to be better debuggable
  using function, rather than a huge multiline macro
  added test that does "nopad" encryption piece-wise, to test
  replacement of EVP_CIPHER_CTX_buf_noconst

part of MDEV-28133
2022-05-23 15:27:51 +02:00
Julius Goryavsky
7d3d3838c1 MDEV-28583: post-merge fixes 2022-05-23 13:11:14 +02:00
Marko Mäkelä
e86c1e671a Merge 10.5 into 10.6 2022-05-23 08:28:10 +03:00
Marko Mäkelä
a0f0687f6c Merge 10.4 into 10.5 2022-05-23 08:07:56 +03:00
Marko Mäkelä
2f6a014fa2 Merge 10.4 into 10.5 2022-05-23 08:07:03 +03:00
Masashi Tomooka
2577ff2667
MDEV-28560 Deprecate spider_buffer_size
The variable, spider_buffer_size, is used nowhere in the MariaDB Community Server.
2022-05-21 15:38:57 +09:00
Oleksandr Byelkin
3fe2d8e619 Merge branch '10.7' into bb-10.7-release 2022-05-20 21:32:50 +02:00
Oleksandr Byelkin
20d192bcfc Merge branch '10.6' into bb-10.6-release 2022-05-20 19:31:48 +02:00
Oleksandr Byelkin
f73bb92848 Merge branch '10.5' into bb-10.5-release 2022-05-20 19:30:08 +02:00
Oleksandr Byelkin
cf75793d00 Merge branch '10.4' into bb-10.4-release 2022-05-20 19:27:44 +02:00
Daniel Bartholomew
6a67c33867
bump the VERSION 2022-05-20 12:57:28 -04:00
Daniel Bartholomew
55266b05bd
bump the VERSION 2022-05-20 12:31:26 -04:00
Daniel Bartholomew
ebc140a78e
bump the VERSION 2022-05-20 12:05:54 -04:00
Oleksandr Byelkin
7d5d9ead2b Merge branch '10.3' into bb-10.3-release 2022-05-20 17:48:18 +02:00
Daniel Bartholomew
8872ad44a7
bump the VERSION 2022-05-20 11:46:31 -04:00
Daniel Bartholomew
68f0a5d008
bump the VERSION 2022-05-20 11:14:30 -04:00
Tuukka Pasanen
06f043d717 MDEV-28191: Suspend Lintian problems in mariadb-test-data package
Suspend
 national-encoding
 repeated-path-segment
 package-contains-documentation-outside-usr-share-doc

Package mariadb-test-data has test files
in directory '/usr/share/mysql/mysql-test/' which are not UTF-8
encoded and they should not be as they are for testing.

package also have Lintian warnings for files that
are not in correct place in directory 'usr/share/mysql/mysql-test'
but as they are all are test results they are not in incorrect place

At last there is intentional use for some repeated directories so
they are false-positives and should be suspended
2022-05-20 18:58:28 +10:00
Oleg Smirnov
40d9dbb28f MDEV-28246 Optimizer uses all partitions after upgrade to 10.3
Cause: a copy of the joined TABLE_LIST is created during multi_update::prepare
and TABLE::pos_in_table_list of the tables are set to point to the new
TABLE_LIST object. This prevents some optimization steps to perform correctly.
Solution: do not update pos_in_table_list during multi_update::prepare
2022-05-19 08:31:01 +04:00
KiyoshiTakeda
8881c0100e
MDEV-14642 Assertion 'table->s->db_create_options == part_table->s->db_create_options' failed in compare_table_with_partition
When trying to execute ALTER TABLE EXCHANGE PARTITION with different
definitions, assertion

    table->s->db_create_options == part_table->s->db_create_options

failed in compare_table_with_partition().

However, this execution should not be allowed since executing
'exchange partition' requires the identical structure of the two tables.

To fix the problem, I deleted the assertion code and added code that
returns an error that indicates tables have different definitions.

Reviewed By: Nayuta Yanagisawa
2022-05-18 23:38:56 +09:00
Sergei Golubchik
99a433ed1c Merge branch '10.6' into 10.7 2022-05-18 10:34:38 +02:00
Sergei Golubchik
b2187662bc Merge branch '10.5' into 10.6 2022-05-18 10:30:47 +02:00
Sergei Golubchik
7970ac7fe8 Merge branch '10.4' into 10.5 2022-05-18 09:50:26 +02:00
Andrei
98ca71ab28 MDEV-28461 semisync-slave server recovery fails to rollback prepared transaction
that is not in binlog.

Post-crash recovery of --rpl-semi-sync-slave-enabled server
failed to recognize a transaction in-doubt that needed rolled back.
A prepared-but-not-in-binlog transaction gets committed instead
to possibly create inconsistency with a master (e.g the way it was observed
in the bug report).

The semisync recovery is corrected now with initializing binlog coordinates
of any transaction in-doubt to the maximum offset which is
unreachable.
In effect when a prepared transaction that is not found in binlog
it will be decided to rollback because it's guaranteed to reside
in a truncated tail area of binlog.

Mtr tests are reinforced to cover the described scenario.
2022-05-18 09:48:57 +02:00
Sergei Golubchik
23ddc3518f Merge branch '10.3' into 10.4 2022-05-18 01:25:30 +02:00
Sergei Golubchik
a0d4f0f306 Merge branch '10.2' into 10.3
commit 84984b79f2 is null-merged
2022-05-18 01:23:47 +02:00
Julius Goryavsky
d388e7eb86 MDEV-28583: Galera: binlogs disappear after rsync IST
This commit sends a flag indicating the presence of the "--bypass"
option from the donor node to the joiner nodes during rsync IST,
because without such a flag it is impossible to distinguish IST
from the SST on the joiner nodes (in IST/SST scripts, because the
"--bypass" option is still not passed to scripts from server code).
Specifically, this fixes an issue with binary logs disappearing
after IST (via rsync). There are also changes to diagnostic messages
here that will make it easier to diagnose script-related problems
in the future when debugging and when checking the logs. This commit
also adds more robust signal handlers - to handle exceptions during
script execution. These handlers won't mask some crashes and it
also unifies exit codes between different scripts. These changes
have already been helpful to debugging "bypass" flag handling.
2022-05-18 01:22:29 +02:00
Julius Goryavsky
b081ad8c65 MDEV-28423: Galera IST is failing on Joiner node
This commit fixes an issue with IST handling in
version 10.9 which is a regression after MDEV-26971
and related to trying to get a non-existent "total"
tag on the IST branch (this tag is only defined in
SST mode).
2022-05-18 01:22:29 +02:00
Aleksey Midenkov
107623c5c5 MDEV-28552 Assertion `inited==RND' failed in handler::ha_rnd_end
We cannot permanently change bits in read_partitions in the middle of
processing because ha_rnd_init()/ha_rnd_end() depends on that.
2022-05-18 01:22:29 +02:00
Sergei Golubchik
8609254f4f cleanup:have_log_bin.inc
prefer if/skip over require
(works better with debugging, not affected by query log)
2022-05-18 01:22:29 +02:00
Sergei Golubchik
74068dd2ac fix tests for embedded
followup for c9b5a05341
2022-05-18 01:22:29 +02:00
Sergei Golubchik
84984b79f2 Revert "MDEV-27524: Incorrect binlogs after Galera SST using rsync and mariabackup"
This reverts commit 17e0f5224c.
2022-05-17 19:37:32 +02:00
Alexander Barkov
c9b5a05341 MDEV-28588 SIGSEGV in __memmove_avx_unaligned_erms, strmake_root 2022-05-17 17:05:30 +04:00
Jan Lindström
4dffa7b5c5 MDEV-28546 : Possible to write/update with read_only=ON and not a SUPER privilege
Function wsrep_read_only_option was already removed in commit
d54bc3c0d1 because it could cause race condition on variable
opt_readonly so that value OFF can become permanent.
Removed function again and added test case. Note that writes
to TEMPORARY tables are still allowed when read_only=ON.
2022-05-17 10:28:21 +03:00
Sergei Golubchik
4a8a6f605d MDEV-28578 Server crashes in Item_field::fix_outer_field after CREATE SELECT
same as MDEV-26412, but in CREATE...SELECT.
fix: apply 39feab3cd3 to create rule too.
2022-05-16 20:18:18 +02:00
Sergei Golubchik
a2bcfa64fe galera.MDEV-26575 and galera_sr.galera_sr_shutdown_slave failures 2022-05-16 20:18:18 +02:00
Marko Mäkelä
3e564d468d MDEV-28541 Unused counter Innodb_encryption_key_rotation_list_length
The counter srv_stats.key_rotation_list_length is never updated, and
therefore Innodb_encryption_key_rotation_list_length will always be 0.

The view INFORMATION_SCHEMA.INNODB_TABLESPACES_ENCRYPTION comes close
to reporting this information.
2022-05-16 13:45:17 +03:00
Marko Mäkelä
4e1bf2bb23 MDEV-28537 Unused or useless InnoDB counters num_index_pages_written, num_non_index_pages_written
The counters were added in commit 5e55d1ced5
and any code to update them was
inadvertently removed in commit 2e814d4702
when applying InnoDB changes from MySQL 5.7.

Let us remove these counters that never reported anything useful. If such
statistics are really needed in a special case, they can be obtained by
instrumenting the code by some means, such as eBPF or a source code patch.
2022-05-16 13:41:53 +03:00
Daniele Sciascia
8d12dd8f50 MDEV-28053 Sysbench data load crashes Galera secondary node in async master slave setup
This patch fixes a problem that arises when a Galera node acts as a
replica for native replication. When parallel applying is enabled, it
is possible to end up with attempts to write binlog events with gtids
out of order. This happens because when multiple events are delivered
from the native replication stream and applied in concurrently, it is
for them to be replicated to the Galera cluster in an order which is
different from the original order in which they were committed in the
aync replication master.
To correct this behavior we now wait_for_prior_commit() before
replicating changes though galera. As a consequence, parallel appliers
may apply events in parallel until the galera replication step, which
is now serialized.
2022-05-16 12:17:13 +03:00
Jan Lindström
65eea2315f Update disabled.def 2022-05-16 12:17:13 +03:00
Jan Lindström
c79e2bfe9f MDEV-23595 : galera_3nodes.galera_wsrep_schema MTR failed: mysql_shutdown failed
Add disconnect.
2022-05-16 12:17:13 +03:00
Jan Lindström
e2173e8067 MDEV-18182 : Galera test failure on galera.galera_many_tables_nopk
Decrease the number of tables and operations.
2022-05-16 12:17:13 +03:00
Alexey Botchkov
b03ab1270d MDEV-28490 Strange result truncation with group_concat_max_len=1GB.
Arythmetic can overrun the uint type when possible group_concat_max_len
is multiplied to collation.mbmaxlen (can easily be like 4).
So use ulonglong there for calculations.
2022-05-15 23:28:06 +04:00
Sergei Golubchik
a68c698b46 fix occasional failures in --embedded
followup for d16c3aca3c
2022-05-15 20:37:51 +02:00
Sergei Golubchik
29c07643a1 enable -Wenum-compare -Wenum-conversion
to make the all headers -std=c++20 clean for those, who need c++20
(some plugins)
2022-05-15 20:37:51 +02:00
Michael Widenius
e03e72234a Fixed warning from UBSAN
The warning comes from copying POSITION objects where 'type' is not
initialized.  This does not affect any production code as when 'type'
was compared/used, it was always initialized.

Removed by initializing the type variable in the constructor
2022-05-15 17:59:43 +03:00