1
0
mirror of https://github.com/MariaDB/server.git synced 2025-11-09 11:41:36 +03:00
Commit Graph

56 Commits

Author SHA1 Message Date
Oleksandr Byelkin
ba00960fda Merge branch 'bb-11.8-release' into bb-12.1-release 2025-11-05 08:58:12 +01:00
Sergei Golubchik
5ce9a03602 Merge branch '11.4' into 11.8 2025-11-04 12:39:27 +01:00
Marko Mäkelä
e6a1872628 Merge 10.6 into 10.11 2025-10-23 10:38:55 +03:00
Alexey Botchkov
f0c1477c6a MDEV-7451 Server audit: Table events for partitioned tables are duplicated for each partition.
Don't send notifications when partition is created.
2025-10-23 00:25:52 +04:00
Sergei Golubchik
38828f2078 MDEV-37501 plugins.server_audit Fails in 12.1+
DISCONNECT audit record is added at some point after the actual
disconnect. To have it at the deterministic place in the log,
we have to wait for it to be added before continuing.
2025-09-30 22:20:40 +02:00
Sergei Golubchik
90f5e09956 fix tests for --view
bead24b7f3 has unintentionally enabled many tests for --view.
these tests never run with --view before and needed fixing.
2025-08-03 14:59:18 +02:00
Sergei Golubchik
bead24b7f3 mariadb-test: wait on disconnect
Remove one of the major sources of race condiitons in mariadb-test.
Normally, mariadb_close() sends COM_QUIT to the server and immediately
disconnects. In mariadb-test it means the test can switch to another
connection and sends queries to the server before the server even
started parsing the COM_QUIT packet and these queries can see the
connection as fully active, as it didn't reach dispatch_command yet.

This is a major source of instability in tests and many - but not all,
still less than a half - tests employ workarounds. The correct one
is a pair count_sessions.inc/wait_until_count_sessions.inc.
Also very popular was wait_until_disconnected.inc, which was completely
useless, because it verifies that the connection is closed, and after
disconnect it always is, it didn't verify whether the server processed
COM_QUIT. Sadly the placebo was as widely used as the real thing.

Let's fix this by making mariadb-test `disconnect` command _to wait_ for
the server to confirm. This makes almost all workarounds redundant.

In some cases count_sessions.inc/wait_until_count_sessions.inc is still
needed, though, as only `disconnect` command is changed:

 * after external tools, like `exec $MYSQL`
 * after failed `connect` command
 * replication, after `STOP SLAVE`
 * Federated/CONNECT/SPIDER/etc after `DROP TABLE`

and also in some XA tests, because an XA transaction is dissociated from
the THD very late, after the server has closed the client connection.

Collateral cleanups: fix comments, remove some redundant statements:
 * DROP IF EXISTS if nothing is known to exist
 * DROP table/view before DROP DATABASE
 * REVOKE privileges before DROP USER
 etc
2025-07-16 09:14:33 +07:00
Vladislav Vaintroub
d4d0dd00b7 MDEV-37031 Fix broken server_audit.test on Windows
- The test was inadvertently skipped on Windows CI, due to the
  unjustified addition of include/have_tlsv13.inc in MDEV-33834 (log TLS
  version). That include didn't make sense here and just reduced
  coverage.

- Once skipped, the test got broken later by MDEV-12182 changes.
  Originally it expected only one localhost:PORT line in the audit log,
  assuming Unix socket connections. But on Windows, MTR uses TCP by
  default, so all entries had :PORT, and the diff failed.

Fix:
- Forced tcp connection for server_audit.test, via .cnf file
  Re-recorded result
  unix_socket + server_audit is still covered by other tests.
- Dropped the have_tlsv13.inc include to restore coverage—it wasn't
  testing TLS versions or ciphers anyway
2025-06-27 17:19:12 +02:00
Oleksandr Byelkin
f1102da37a Merge branch '11.8' into 12.0 2025-05-22 09:22:55 +02:00
Sergei Golubchik
fa47c73561 MDEV-12182 post-merge
* fix plugin version
* don't print :unavaliable for localhost
2025-05-02 13:56:25 +02:00
Sergei Golubchik
c1f2b5a141 MDEV-33834 post-merge
* move TLS version into the "object" column
* show that TLS version follows db name
* correctly check for have_ssl
2025-05-02 13:56:25 +02:00
Meng-Hsiu Chiang
2b464774f2 MDEV-33834 Extend audit plugin to include tls_version and tls_version_length variables
Add tls_version and tls_version_length variables to the audit plugin so
they can be logged. This is useful to help identify suspicious or
malformed connections attempting to use unsupported TLS versions. A log
with this information will allow to detect and block more malicious
connection attempts.

Users with 'server_audit_events' empty will have these two new variables
automatically visible in their logs, but if users don't want them, they
can always configure what fields to include by listing the fields in
'server_audit_events'.

In connection event, The TLS version will be populated in `object` field
in key=value format, and the key-value pair will be omitted when the
value is empty.

To ensure the MTR test result matches in all environments, the TLS
version string is replaced with a general `TLS_VERSION` to avoid the MTR
test failing unexpectedly. It stores the version with query `SHOW STATUS
LIKE 'Ssl_version'` and replace the output with `replace_result` command.

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.

[1]: https://docs.openssl.org/3.2/man3/SSL_get_version/
2025-05-02 13:56:25 +02:00
Sergei Golubchik
237e24497b Merge remote-tracking branch 'github/bb-11.4-release' into bb-11.8-serg 2025-04-27 19:40:00 +02:00
Oleksandr Byelkin
20b818f45e Merge branch '10.6' into 10.11 2025-04-21 11:23:11 +02:00
Alexey Botchkov
fbec528cbb MDEV-36245 review changes
Closes #3874
2025-04-19 10:16:19 +02:00
Alexander Barkov
36eba98817 MDEV-19123 Change default charset from latin1 to utf8mb4
Changing the default server character set from latin1 to utf8mb4.
2024-07-11 10:21:07 +04:00
Oleksandr Byelkin
036df5f970 Merge branch '10.10' into 10.11 2023-08-08 14:57:31 +02:00
Lena Startseva
9854fb6fa7 MDEV-31003: Second execution for ps-protocol
This patch adds for "--ps-protocol" second execution
of queries "SELECT".
Also in this patch it is added ability to disable/enable
(--disable_ps2_protocol/--enable_ps2_protocol) second
execution for "--ps-prototocol" in testcases.
2023-07-26 17:15:00 +07:00
Monty
e9fe39d566 MDEV-7389 Request: log warnings into SQL_ERROR_LOG
Changes:
- Audit_null records and displays warning count
- sql_error_log prints warnings

Reviewer: Alexey Botchkov <holyfoot@askmonty.org>
2023-05-24 13:21:55 +03:00
Oleksandr Byelkin
c7c415734d Merge branch '10.10' into 10.11 2023-01-31 11:07:08 +01:00
Sergei Golubchik
db50919f97 MDEV-27631 Assertion `global_status_var.global_memory_used == 0' failed in mysqld_exit
plugin_vars_free_values() was walking plugin sysvars and thus
did not free memory of plugin PLUGIN_VAR_NOSYSVAR vars.

* change it to walk all plugin vars
* add the pluginname_ prefix to NOSYSVARS var names too,
  so that plugin_vars_free_values() would be able to find their
  bookmarks
2023-01-20 15:44:15 +01:00
Oleksandr Byelkin
594bed9b42 MDEV-5215 prerequisite: remove test and test_* database hacks in the test suite 2022-11-01 16:33:00 +01:00
Marko Mäkelä
3a79e5fd31 Merge 10.3 into 10.4 2021-10-28 08:28:39 +03:00
Marko Mäkelä
657bcf928e Merge 10.2 into 10.3 2021-10-28 07:50:05 +03:00
Alexey Botchkov
d627d00b13 MDEV-26556 An improper locking bug(s) due to unreleased lock.
Get rid of the global big_buffer.
2021-10-25 19:53:25 +04:00
Marko Mäkelä
50de71b026 Merge 10.3 into 10.4 2021-03-31 09:47:14 +03:00
Marko Mäkelä
d6d3d9ae2f Merge 10.2 into 10.3 2021-03-31 08:01:03 +03:00
Alexey Botchkov
94dea8ef5b MDEV-25457 CREATE / DROP PROCEDURE not logged with audit plugin.
CREATE/DROP PROCEDIRE/FUNCTION is now treated as DDL.
2021-03-29 16:59:34 +04:00
Alexey Botchkov
96475b78c5 MDEV-25457 CREATE / DROP PROCEDURE not logged with audit plugin.
CREATE/DROP PROCEDIRE/FUNCTION is now treated as DDL.
2021-03-27 23:07:31 +04:00
Marko Mäkelä
8bab5bb332 Merge 10.3 into 10.4 2021-03-05 10:36:51 +02:00
Alexey Botchkov
25ecf8ed4b MDEV-24965 With ALTER USER ...IDENTIFIED BY command, password doesn't replaced by asterisks in audit log.
Check for the ALTER USER command added.
2021-02-26 13:26:00 +04:00
Marko Mäkelä
fd5e103aa4 Merge 10.3 into 10.4 2021-01-11 10:35:06 +02:00
Alexey Botchkov
78292047a4 MDEV-19442 server_audit plugin doesn't consider proxy users in server_audit_excl_users/server_audit_incl_users.
Check the proxy user just as the connection user against the
incl_users_list and excl_users_list.
2020-12-28 15:12:32 +04:00
Marko Mäkelä
7b2bb67113 Merge 10.3 into 10.4 2020-10-29 13:38:38 +02:00
Alexey Botchkov
5a9484b784 MDEV-19443 server_audit plugin doesn't log proxy users.
PROXY_USER event added.

Conflicts:
	plugin/server_audit/server_audit.c
2020-10-23 12:28:42 +04:00
Alexey Botchkov
cc1646dae8 MDEV-19443 server_audit plugin doesn't log proxy users.
PROXY_USER event added.
2020-10-23 09:17:36 +04:00
Marko Mäkelä
af91266498 Merge 10.3 into 10.4
In main.index_merge_myisam we remove the test that was added in
commit a2d24def8c because
it duplicates the test case that was added in
commit 5af12e4635.
2020-04-16 12:12:26 +03:00
Sergey Vojtovich
06219c2ad4 MDEV-21599 - plugins.server_audit fails sporadically in buildbot
Fixed a couple of race conditions in the test case to ensure stable order
of events. Also removed all sleeps. Test execution time is down from 18s
to 0.15s.

On disconnect audit event is triggered after control is returned to
mysqltest client. Which means mysqltest may issue more commands
concurrently before disconnect is actually logged.

Similar problem happens with regular query execution: an event is
triggered after control is returner to the client. Which may end
up with unstable order of events in different connections.

Delayed insert rows are enqueued separately and can either be combined
into single event or go as separate events. Reduced number of inserted
rows to 1 to stabilize result.

Also backported 2b3f6ab from 10.5.
2020-04-10 19:35:53 +04:00
Sergei Golubchik
2b3f6ab417 MDEV-21599 plugins.server_audit fails sporadically in buildbot 2020-03-14 09:48:46 +01:00
HF
3fb0fe400c MENT-510 Failing test(s): perfschema.threads_insert_delayed.
orig_test_id should be set properly.
Also fixed sporadic test failure.
2019-11-29 21:25:52 +00:00
Alexey Botchkov
bfa6db38cd MENT-510 Failing test(s): perfschema.threads_insert_delayed.
The thread_id of the INSERT DELAYED thread should not be set to 0.
2019-11-27 09:31:47 +04:00
Alexey Botchkov
0e403db2c8 MENT-237 Audit to show INSERT DELAYED for the executing user.
Add notifications about the user and connection that actually
did the DELAYED insert.
2019-11-27 09:23:00 +04:00
Alexey Botchkov
a529188e05 MDEV-17456 Malicious SUPER user can possibly change audit log configuration without leaving traces.
The 'SET server_audit_logging ' statements should be logged no matter
what.
2019-04-29 01:25:17 +04:00
Alexey Botchkov
cd26cdcd97 MDEV-19141 server_audit_excl_users accepts only values with less than 1024 chars.
Since this limit is imposed by the SHOW_VAR_FUNC_BUFF_SIZE, we just
launch the error message.
2019-04-29 00:11:48 +04:00
Alexey Botchkov
dab4abbb09 MDEV-15480 Audit plugin does not respect QUERY_DML for audit plugin.
QUERY_DML_NO_SELECT flag added.
2018-05-10 19:23:35 +04:00
Sergei Golubchik
7bd258c44c fix plugins.server_audit test for --ps 2018-02-15 10:06:14 +01:00
Alexey Botchkov
2e964b233b MDEV-13921 Audit log writes invalid SQL if single-line comments are
present.

        Escape special characters (like \r \n \t) instead of
        replacing them with spaces.
2017-11-03 17:05:41 +04:00
Alexey Botchkov
1707cfc9ef MDEV-8211 plugins.server_audit fails sporadically in buildbot.
More fixes to assure the order of queries in the log.
2015-06-08 21:55:52 +05:00
Alexey Botchkov
96b37035e4 MDEV-8211 plugins.server_audit fails sporadically in buildbot.
Connection event can happen before the query ends. Added a delay to
   confirm the order.
2015-06-08 21:40:17 +05:00
Alexey Botchkov
1ae05db49c MDEV-8078 Memory disclosure/buffer overread on audit plugin.
If the SET PASSWORD query doesn't have the password string,
        the parsing of it can fail. It manifested first in MySQL 5.6 as
        it started to hide password lines sent to the plugins.
        Fixed by checking for that case.
2015-06-07 15:40:42 +05:00