Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ssl_info_client without a password hash: COM_QUIT alone if not verified Without a password hash the client cannot prove that it has verified the server certificate, it can only say so. It sends COM_QUIT and the version if it has verified the certificate, and COM_QUIT alone if it has not. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.4' into 11.8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40530 require_secure_transport=CLIENT An account without a password hash (PAM, gssapi, empty password) cannot prove that the client has verified the server certificate, so with require_secure_transport=ON it cannot connect over TCP, unless it requires a client certificate. require_secure_transport=CLIENT trusts such clients, as require_secure_transport did before ssl_info_client. Accounts with a password hash still need a valid ssl_info_client. my_getopt: an enum that starts with OFF,ON accepts TRUE and FALSE, like a boolean does, so --require-secure-transport=TRUE still works. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Petrunia
sergey@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38274: Unexpectedly large pages_read_count in main.analyze_stmt_prefetch_count The testcase checked the values of pages_prefetch_read_count and pages_read_count that InnoDB reported for the query. The numbers depend on how fast the prefetch thread is in comparison with the query thread. It can also happen that we request to prefetch a page but then still have to wait for it to be read, which is counted in pages_read_count. Replace the checks in the file with ones that will hold in all circumstances. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-30836 MTR hangs on Windows after warnings in the log at shutdown Follow-up to the MDEV-30836 fix. With --force, parse_protocol() returned 1 after a worker reported WARNINGS, so the manager went on reading from the socket of that worker. A worker that was told to exit with BYE sends WARNINGS and exits, and does not send anything more. On Windows Perl, non-blocking reads do not work, so the manager could block in that read. It then never handled the results of the other workers, and mtr hung after the last test. Return 2 for such a worker, as for the other cases where the worker needs no response, to continue with the next ready socket. The closed socket is handled later, when it becomes readable. A worker that was not told to exit also sends WARNINGS, before it restarts servers or after a test with side effects, and then goes on to send TESTRESULT. Keep reading from it, as before. The manager remembers the workers it said BYE to. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'br-11.8-merge' into bb-12.3-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-30836 MTR hangs on Windows after warnings in the log at shutdown Follow-up to the MDEV-30836 fix. With --force, parse_protocol() returned 1 after a worker reported WARNINGS, so the manager went on reading from the socket of that worker. A worker that was told to exit with BYE sends WARNINGS and exits, and does not send anything more. On Windows Perl, non-blocking reads do not work, so the manager could block in that read. It then never handled the results of the other workers, and mtr hung after the last test. Return 2 for such a worker, as for the other cases where the worker needs no response, to continue with the next ready socket. The closed socket is handled later, when it becomes readable. A worker that was not told to exit also sends WARNINGS, before it restarts servers or after a test with side effects, and then goes on to send TESTRESULT. Keep reading from it, as before. The manager remembers the workers it said BYE to. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.8' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
send ssl_info_client to prove the authentication was not relayed A MitM can relay the authentication, let the client fail on ssl_info and keep using the authenticated connection. * MARIADB_CLIENT_SSL_INFO_CLIENT: set it whenever TLS is used * after the authentication OK packet send ssl_info_client, the server does not reply (but might disconnect in case of active MitM). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
main.udf_query_cache fails with Qcache_hits > 0 Since MDEV-33145 FLUSH STATUS resets only session status, so global Qcache_hits left by earlier tests on the same server was not reset. Use FLUSH GLOBAL STATUS. Assisted-By: Claude Opus 5.5 <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 Abort the running statement when its client disconnects The server notices that a client is gone only when it reads from or writes to the socket. A statement that waits, for example for an InnoDB row lock, keeps running, and its transaction keeps its locks. Watch the client socket from the end of login until the connection ends or the client sends COM_QUIT, with epoll (Linux), kqueue (BSD, macOS), or on Windows with WSAEventSelect and an I/O completion port, and the exit of the client process for a named pipe. When the client has gone, the watcher sets THD::client_gone. If a command that expects an answer is running, it is aborted with KILL_CONNECTION. If the connection is idle, the next such command is aborted when it starts. COM_QUIT and COM_STMT_CLOSE are not aborted, a client can send them and then quit. The watcher and the connection thread order their accesses with fences, no lock is taken for a command. The socket is not shut down, the connection ends after the error is sent, and the reason, "Client disconnected", is logged once. An idle connection with the disconnect noted shows that State in the processlist. Galera connections are not aborted. The global variable disconnect_watcher, ON by default, can be set OFF, which also ends the watches that exist. It exists only where there is a watcher: Linux, Windows, the BSDs and macOS, not the embedded server. mysqltest dirty_close takes an optional linger or nolinger argument. New tests: main.disconnect_*, sys_vars.disconnect_watcher_basic and mysql_client_test test_disconnect_*. Some rpl and innodb tests are adjusted to pass with the watcher ON and OFF. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.4' into 11.8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.4' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Fix wsrep.wsrep_off result after MDEV-35867 Failed REPAIR now reports "Operation failed". Assisted-By: Claude Opus 5.5 <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.8' into 12.3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hemant Dangi
hemant.dangi@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42091: --prepare must not trust plugin_dir from backup-my.cnf Issue: backup-my.cnf is part of the backup/transfer directory and can arrive over an untrusted channel (e.g. a Galera SST stream). --prepare honored its plugin_dir value as-is, letting whoever supplied the backup redirect plugin loading to a directory of their choosing. Solution: Pass the joiner's own, locally-resolved --plugin-dir on the --prepare command line: it wins over whatever backup-my.cnf says, regardless of content, unless the user already chose one explicitly via inno-apply-opts, which takes priority as a deliberate local choice. Resolve it by asking the joiner's own mariadbd, which is config- and compiled-default-aware, falling back to a plain config lookup if that's unavailable. Add a regression test driving the real SST joiner script directly: deliver a backup stream whose backup-my.cnf claims an attacker-chosen plugin_dir, and confirm that directory is never referenced. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '10.11' into 11.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '10.11' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40530 Bind the client authentication response to the server certificate MDEV-31855 introduced ssl_info that let the client verify that it uses the correct certificate. But MitM could hijack the connection after the authentication - the client will detect it and disconnect but the server won't and will continue talking to the attacker. Let's introduce ssl_info_client packet that enables the server to verify that the client uses the correct certificate. When require_secure_transport=ON and the connection isn't local: * the server sets MARIADB_CLIENT_SSL_INFO_CLIENT in the initial handshake * the client sets it in the reply, if it understands it * when both sides have it, the client sends ssl_info_client right after the OK packet, acl_authenticate() reads it before the session is used (init_connect, audit, etc) * a connection is rejected unless ssl_info_client is valid, either for the server certificate fingerprint or for "CA" (the client verified the certificate itself) * an account without a password hash (plugin has no hash_password() or empty password) is rejected unless the account REQUIRE a client certificate Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41811 Atomic CoR: a failed CREATE OR REPLACE ... SELECT NEXTVAL() loses the old table The reason for this failure is commit bb4dd70e7c6509ed9bf8c38d44dffb6d2fcca415 which generated a new error code in ha_discover_table() that ddl_log_revert() for create and replace table cannot handle. The code also did not take into account that share and thd->lex->query_tables are not guaranteed to refer to the same table. I removed the code for handling sequences from ha_discover_table() and did instead generate the correct error in open_table_error(). This handles many cases the old code did not handle. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| fix format | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 Abort the running statement when its client disconnects The server notices that a client is gone only when it reads from or writes to the socket. A statement that waits, for example for an InnoDB row lock, keeps running, and its transaction keeps its locks. Watch the client socket from the end of login until the connection ends or the client sends COM_QUIT, with epoll (Linux), kqueue (BSD, macOS), or on Windows with WSAEventSelect and an I/O completion port, and the exit of the client process for a named pipe. When the client has gone, the watcher sets THD::client_gone. If a command that expects an answer is running, it is aborted with KILL_CONNECTION. If the connection is idle, the next such command is aborted when it starts. COM_QUIT and COM_STMT_CLOSE are not aborted, a client can send them and then quit. The watcher and the connection thread order their accesses with fences, no lock is taken for a command. The socket is not shut down, the connection ends after the error is sent, and the reason, "Client disconnected", is logged once. An idle connection with the disconnect noted shows that State in the processlist. Galera connections are not aborted. The global variable disconnect_watcher, ON by default, can be set OFF, which also ends the watches that exist. It exists only where there is a watcher: Linux, Windows, the BSDs and macOS, not the embedded server. mysqltest dirty_close takes an optional linger or nolinger argument. New tests: main.disconnect_*, sys_vars.disconnect_watcher_basic and mysql_client_test test_disconnect_*. Some rpl and innodb tests are adjusted to pass with the watcher ON and OFF. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '10.11' into 11.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.4' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Compiling ha_videx statically causes 'drop table xxx' to not generate errors The issue was that ha_videx::delete_table() returns 0, which means that the table was successfully deleted, which confused delete_table_force to belive that the table was succesfully deleted, which in turn casued the "Unknown table" error to not be given. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-30836 MTR hangs on Windows after warnings in the log at shutdown Follow-up to the MDEV-30836 fix. With --force, parse_protocol() returned 1 after a worker reported WARNINGS, so the manager went on reading from the socket of that worker. The worker sends WARNINGS in reply to BYE and exits, and does not send anything more. On Windows Perl, non-blocking reads do not work, so the manager could block in that read. It then never handled the results of the other workers, and mtr hung after the last test. Return 2, as for the other cases where the worker needs no response, to continue with the next ready socket. The closed socket is handled later, when it becomes readable. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41811 Atomic CoR: a failed CREATE OR REPLACE ... SELECT NEXTVAL() loses the old table The reason for this failure is commit bb4dd70e7c6509ed9bf8c38d44dffb6d2fcca415 (MDEV-13005) which generated a new error code in ha_discover_table() that ddl_log_revert() for create and replace table cannot handle. The code also did not take into account that share and thd->lex->query_tables are not guaranteed to refer to the same table. I removed the code for handling sequences from ha_discover_table() and instead generate the correct error in open_table_error(). This handles many cases the old code did not handle. Changes: - share->table_type == TABLE_TYPE_SEQUENCE is set early in open for sequences to be able to generate correct error messages - share->table_type == TABLE_TYPE_VIEW is now set for views during open This is mainly to make the table_type have an usable value for views. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40530 require_secure_transport=CLIENT: the client says it has verified With require_secure_transport=CLIENT a client without a password hash must still set MARIADB_CLIENT_SSL_INFO_CLIENT and say that it has verified the server certificate: ssl_info_client is COM_QUIT and the version if it has, and COM_QUIT alone if it has not. This is not a proof, a man in the middle can say it too, but a client that does not verify the server certificate is rejected and an old client that does not know ssl_info_client is rejected too. A client cannot simply abort after the OK packet if it has not verified the certificate: an account that requires a client certificate does not need ssl_info_client. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.8-merge' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-30836 MTR hangs on Windows after warnings in the log at shutdown Follow-up to the MDEV-30836 fix. With --force, parse_protocol() returned 1 after a worker reported WARNINGS, so the manager went on reading from the socket of that worker. The worker sends WARNINGS in reply to BYE and exits, and does not send anything more. On Windows Perl, non-blocking reads do not work, so the manager could block in that read. It then never handled the results of the other workers, and mtr hung after the last test. Return 2, as for the other cases where the worker needs no response, to continue with the next ready socket. The closed socket is handled later, when it becomes readable. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Hemant Dangi
hemant.dangi@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41158: authenticate the mariabackup SST backup-data stream too Issue: The joiner's per-transfer secret was only generated for ssl-mode=VERIFY_*, and checked only on the small GTID stage: the backup-data stage itself was accepted unauthenticated, letting any TCP peer reaching the SST port supply a backup --prepare then runs. Solution: Generate the secret unconditionally and require it on the backup-data stream too, built in lockstep with the existing encrypt/decompress/ progress wrapping so the check can't be silently skipped by it. Add sst-mariabackup-allow-unauthenticated-donor for rolling upgrades, failing closed on invalid values; VERIFY_*'s own pre-existing secret check is unaffected by it. Add a regression test covering the authenticated pipeline with that wrapping active. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41238 mysqltest PS_bind sends wrong integers on big-endian PS_bind bound integers as MYSQL_TYPE_LONG (4 bytes) from a long (8 bytes) buffer, so big-endian platforms sent the high half (0). Bind them as MYSQL_TYPE_LONGLONG, and doubles as MYSQL_TYPE_DOUBLE instead of MYSQL_TYPE_DECIMAL. Assisted-By: Claude Opus 5.5 <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '10.11' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '11.4' into 11.8 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38274 fix lost in 11.4->11.8 merge The merge 0e86a0d055f kept the old 11.8 version of main.analyze_stmt_prefetch_count. Take the 11.4 version and keep "character set latin1" from MDEV-19123. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Enabling ha_videx causes 'drop table xxx' to not generate errors Fixed by having videx_hton->drop_table return -1 (no table data attached to this object) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40386 DuckDB configure fails in rpm builds DuckDB's configure checks link with -specs=redhat-package-notes but without the RPM_* environment, and the linker launcher list was split into separate cmake arguments. Run DuckDB's cmake under the launcher's env and pass the launcher with a non-";" list separator. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||