Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Mohamed
mohamed1212213183@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40423 use-of-uninitialized-value in Gis_point::get_data_as_wkt(String*, char const**) const read_point_from_json() returned success for a GeoJSON position with fewer than two numbers, leaving x and/or y uninitialized. They were then stored in the WKB and read by ST_AsText(). Reject such positions as incorrect GeoJSON, since RFC 7946 requires at least two numbers. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '13.1' into 13.2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-13.1-release' into bb-13.2-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Making LOCK TABLES work with GTT tables as it works with TEMPORARY tables. Changes: - A GTT instance doesn't keep a metadata lock on the definition. The lock is released as soon as the instance is created, and a second use in the same statement reuses the instance without taking a lock. Because of this, ALTER or DROP of the definition from another session no longer waits. - LOCK TABLES for GTT always uses the GTT instance, not the table definition. One side effect of this is that one cannot do a DDL on the GTT definition, like ALTER, RENAME or DROP while one has a LOCK on the table. - One can use GTT instances without having them in LOCK TABLE, like one can do with temporary tables. - CREATE OR REPLACE GTT over a table locked with LOCK TABLES (plain, LIKE and SELECT) releases the replaced table's locks. If it was the last locked table, LOCK TABLES ends. - FLUSH TABLES now ignores temporary tables and GTT instances under LOCK TABLES. Without LOCK TABLES, FLUSH TABLE of a GTT removes the definition from the table cache, as before. - After FLUSH TABLES gtt WITH READ LOCK, statements skip the locked definition and use the instance. This fixes an assertion. - DDL on a GTT definition under LOCK TABLES fails: CREATE OR REPLACE (all kinds) gives ER_TABLE_NOT_LOCKED. ALTER, RENAME and DROP give ER_TABLE_IN_USE while the session has a GTT instance, and ER_TABLE_NOT_LOCKED when it has none (for example after TRUNCATE). - SHOW CREATE TABLE shows the session's instance if there is one. Under LOCK TABLES it can also show a definition that has no instance. - "LOCK TABLE gtt_table write" now succeeds inside a read-only transaction - mariadb-dump will not try to dump content of GTT tables. - Moved MDL_context::release_lock(enum_mdl_duration duration, MDL_ticket *ticket) from private to public and added a DBUG_ASSERT if the duration is incorrect. - The pseudo_slave_mode test cases now fail at LOCK TABLES. - Removed defines/functions: OPEN_FOR_LOCKED_TABLES_LIST, select_create::parent_global_tmp_table - CREATE OR REPLACE under LOCK TABLES now releases the locks of a dropped table after binary logging, also for normal tables." Bugs fixed: - A failed CREATE GLOBAL TEMPORARY TABLE ... SELECT left the GTT definition behind (on disk, or in the table definition cache if the GTT instance could not be opened). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '13.1' into bb-13.1-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bsrikanth-mariadb
srikanth.bondalapati@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42186: Info leak with optimizer_replay_context When @@optimizer_replay_context is set, the replay reports mismatches between the context and the optimizer's statistics as warnings that name tables, indexes and ranges. For a view, stored routine or trigger those names can belong to objects the invoker has no privilege to see, for example the base tables of a DEFINER view, or a key number and the view's hidden predicate through a records_in_range() call. Apply the same privilege checks the optimizer trace and the optimizer context recorder already use: * Optimizer_context_replay gets a missing_priv flag, set through missing_privilege(). Optimizer_context_replay::has_records() returns false once it is set, and every infuse_*()/store_*() entry point already bails out on !has_records(), so no warning is produced and no replayed data is used. * opt_trace.cc: report_missing_privilege() also notifies the replay, and the checks for tables, views, stored routines and the security context no longer return early when only a replay is active. Table-level SELECT is required, so column-level grants do not enable the replay, even when they cover all columns. The flag is never cleared within a statement. For a stored function or trigger the check runs when it is called, so output for tables already optimized stays. Add test opt_context_replay_view_leak. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 13.3 branch | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 mtr: do not suppress the reason of a client disconnect The global suppressions of "Aborted connection", in mariadb-test-run.pl and mtr_warnings.sql, hid the line that the client disconnect watcher writes when it aborts a command: "Aborted connection N to db: 'x' user: 'u' host: 'h' (Client disconnected)". Nothing showed when the watcher aborted a connection that it should have left alone. main.locale found one, because its server log is in German and the English entry did not match. Make the two entries skip a line that ends in "(Client disconnected)". Other aborted connections are suppressed as before. The tests that drop a client on purpose accept the reason with mtr.add_suppression(), details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 Abort the running statement when its client disconnects A watcher thread subscribes to the OS notification that a client has gone (e.g. TCP FIN or RST for a TCP socket, a gone client process for a named pipe) and aborts the running statement like KILL CONNECTION does. Controlled by the global variable disconnect_watcher. Details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42258: Windows ignores --back-log, simultaneous connects are refused On Windows, listen() with a positive backlog is limited to a small value, so a burst of simultaneous connections (e.g. 256 clients) overflows the accept queue and some are refused with WSAECONNREFUSED (10061). For TCP listening sockets, including the extra port, pass SOMAXCONN_HINT(back_log) when back_log >= 200, the range it supports (200-65535). Smaller values are passed as before. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| do not leave sleep behind. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'main' into bb-13.2-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 Abort the running statement when its client disconnects A watcher thread subscribes to the OS notification that a client has gone (e.g. TCP FIN or RST for a TCP socket, a gone client process for a named pipe) and aborts the running statement like KILL CONNECTION does. Controlled by the global variable disconnect_watcher. Details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| forgot to update this test | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| missed this spot | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
squash! 02490ed2c6c26194f84889e96e17a0536bb0275e - Moved GTT variables HA_OPTION_.. variables to an enum in handler.cc: GTT_NONE=0, GTT_TABLE=1, GTT_ON_COMMIT_DELETE_ROWS=2. The gtt options are now stored in TABLE_SHARE->gtt_options and TABLE_LIST->gtt_options. - Changed class Tmp_table_kind to an enum {TMP_TABLE_LOCAL, TMP_TABLE_GLOBAL, TMP_TABLE_LOCAL_OR_GLOBAL } - Moved find_tmp_table_share_w_base_key() to use find_tmp_table_share(..., 1). This was because functions where practically identical, except for a length subtraction in one place. - Fixed wrong test cases - Fixed compiler errors by moving code from 'main' |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
bsrikanth-mariadb
srikanth.bondalapati@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42044: I_S.OPTIMIZER_CONTEXT exposes rows, DDL and statistics ... Optimizer Context has DDLs of used tables and VIEWs, table statistics, and even captured table rows which include all, even the columns that the query doesn't read. The user running the query might not have access to some of this information. Making it available in the optimizer context would create an opportunity to bypass the security controls. There is a similar issue in the Optimizer Trace. It is solved by NOT producing optimizer trace if it would expose data that's not available otherwise. We have to extend that logic for context recorder as well. Optimizer Trace relied on opt_trace_disable_if_no_tables_access(), to check if the query object had privilege to execute. Solution ======== Run opt_trace_disable_if_no_tables_access() once in mysql_execute_command(), after the trace, and recorder are created. Along with it set missing_priv flag in the recorder object if needed. This flag is used to skip recording the stats, and not dump the context at the end of query execution. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alexey Yurchenko
alexey.yurchenko@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MGL-301 Add MTR tests and fix error reporting | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 mtr: do not suppress the reason of a client disconnect The global suppressions of "Aborted connection", in mariadb-test-run.pl and mtr_warnings.sql, hid the line that the client disconnect watcher writes when it aborts a command: "Aborted connection N to db: 'x' user: 'u' host: 'h' (Client disconnected)". Nothing showed when the watcher aborted a connection that it should have left alone. main.locale found one, because its server log is in German and the English entry did not match. Make the two entries skip a line that ends in "(Client disconnected)". Other aborted connections are suppressed as before. The tests that drop a client on purpose accept the reason with mtr.add_suppression(), details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
forkfun
alice.sherepa@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42222 String copy must not share a heap buffer A copy of a String pointed to the buffer of the original and kept its capacity without owning the buffer. Condition pushdown copies items with shallow_copy(): all String members of the copy, and Arg_comparator::value1/value2 of a copied comparison, shared the buffers of the original item. When the original item reallocated a buffer for a longer value, the copy kept using the freed one, e.g. UPPER, CAST(.. AS CHAR), STR_TO_DATE and JSON_EXTRACT comparison on 2nd execution of a prepared statement. The copy constructor of a String that owns its buffer copies the data now. A copy of a String that doesn't own its buffer points to the same data and has no capacity. Assignment still makes the String point to the data of the other one, but without capacity. No code that writes through an assigned String was found. SFORMAT copied every String argument twice per row. It passes them by reference now, to avoid copying the data. Tests: main.in_subq_cond_pushdown and main.ctype_ucs. Assisted-By: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42258: Windows ignores --back-log, simultaneous connects are refused On Windows, listen() with a positive backlog is limited to a small value, so a burst of simultaneous connections (e.g. 256 clients) overflows the accept queue and some are refused with WSAECONNREFUSED (10061). For TCP listening sockets, including the extra port, pass SOMAXCONN_HINT(back_log) when back_log >= 200, the range it supports (200-65535). Smaller values are passed as before. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-13.1-release' into bb-13.2-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40382 Support --ssl-crl on server builds with WolfSSL --ssl-crl was silently discarded on WolfSSL: sslopt-case.h nulled opt_ssl_crl after option parsing, and new_VioSSLFd() skipped CRL loading for HAVE_WOLFSSL. A revoked certificate could still authenticate a REQUIRE X509 / REQUIRE SUBJECT account. WolfSSL's OpenSSL-compat layer already implements X509_STORE_load_locations/X509_STORE_set_flags with real CRL enforcement, so remove both restrictions. Also fix X509_STORE_set_flags()'s success check: unlike OpenSSL, WolfSSL can return negative error codes on failure, which == 0 missed. Existing CRL tests were fixed to run with WolfSSL as well. Note: on Windows, a revoked cert sometimes surfaces as ECONNRESET instead of a TLS alert; the test's regex handles this too. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
drrtuy
drrtuy@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Item_sum_test_plugin_first shallow copy changed b/c its implementation leaked memory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Rename gtt functions. Renames: - global_tmp_table() -> is_gtt() - local_tmp_table() -> is_local_tmp_table() New functions: - is_gtt_instance() - is_gtt_definition() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 mariabackup: run the debug DDL as one statement The debug thread of mariabackup that emulates a DDL sends several statements in one query, and closes its connection as soon as the first of them returned. The server used to run the rest. A server that aborts the statement of a client that is gone does not, and mariabackup.innodb_ddl_on_intermediate_table hangs, as the debug sync signals the main thread waits for do not come. Run the statements in one BEGIN NOT ATOMIC block, so that the client waits for all of them. The ALTER of that test fails with a lock wait timeout on purpose, which the handler of the block ignores, as the thread did before. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
remove two deprecated hashicorp_key_management_* variables hashicorp_key_management_use_cache_on_timeout - was default to enabled, now enabled always hashicorp_key_management_cache_timeout - was default to INT64_MAX, now no timeout |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 mtr: do not suppress the reason of a client disconnect The global suppressions of "Aborted connection", in mariadb-test-run.pl and mtr_warnings.sql, hid the line that the client disconnect watcher writes when it aborts a command: "Aborted connection N to db: 'x' user: 'u' host: 'h' (Client disconnected)". Nothing showed when the watcher aborted a connection that it should have left alone. main.locale found one, because its server log is in German and the English entry did not match. Make the two entries skip a line that ends in "(Client disconnected)". Other aborted connections are suppressed as before. The tests that drop a client on purpose accept the reason with mtr.add_suppression(), details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Removed mdl_ticket from TMP_TABLES_SHARE This is preparation for versioning of GTT tables and also remove LOCK TABLE for GTT instances and make GTT tables work as normal temporary |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Changed ha_table_exists() to return Table_type to provide more information - Added TABLE_TYPE_GLOBAL_TEMPORARY to Table_type - Added TABLE_TYPE_FRM_ONLY to allow ha_table_exists() to inform caller that frm file exists but is not readable or has bad information. - Removed parameter is_sequence from ha_table_exists() |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-21322 Report Slave Progress to the Master (Draft: Commit message is staged on the PR.) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Monty
monty@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Release the GTT metadata locks at the end of open_tables() | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
remove two hashicorp_key_management_* variables hashicorp_key_management_use_cache_on_timeout - was default to enabled, now enabled always hashicorp_key_management_cache_timeout - was default to INT64_MAX, now no timeout |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-21322 Report Slave Progress to the Master (Draft: Commit message is staged on the PR.) |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '12.3' into 13.1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Tarun Wadhwa
tarunwadhwa85@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-37605: Extend mariadb-binlog to convert InnoDB-based binlogs to legacy format MariaDB 12.3 added support for storing binary logs inside InnoDB tablespace files (.ibb) instead of traditional flat sequential files. There was previously no way to convert these back to the legacy format, which is needed for downgrades, migrations, and third-party tooling that only understands classic binlogs. This adds a --convert-engine-binlog option to mariadb-binlog that reads one or more InnoDB-based binlogs and writes out equivalent legacy-format binlog files. Usage: mariadb-binlog --convert-engine-binlog -r output_legacy_binlog \ input1.ibb input2.ibb This produces output_legacy_binlog.0000001, .0000002, etc. Note there isn't a direct correlation between the number of input files and output files. The output is split whenever the current file hits --max-binlog-size (default 1GB, since legacy binlogs cannot exceed 4GB), and also on every server restart recorded in the InnoDB binlog, so a single input file can produce several output files and a restart boundary can force a split even before the size limit is reached. Additionally, --max-binlog-size is also supported as a standalone option to control this rotation threshold directly. Only --convert-engine-binlog, -r, and --max-binlog-size are supported alongside this mode; any other option will cause mariadb-binlog to throw an error. Caveats: - Encryption: InnoDB-based binlogs don't currently support encryption, so the converter doesn't handle it either. Output legacy binlogs are never encrypted by this mode. - Checksums: InnoDB-based binlogs rely on page-level checksums instead of the legacy per-event checksums, so the initial implementation generates legacy output with no event-level checksum. Reviewed-by: Kristian Nielsen <[email protected]> Reviewed-by: Brandon Nesterenko <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Vladislav Vaintroub
vvaintroub@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38741 Abort the running statement when its client disconnects A watcher thread subscribes to the OS notification that a client has gone (e.g. TCP FIN or RST for a TCP socket, a gone client process for a named pipe) and aborts the running statement like KILL CONNECTION does. Controlled by the global variable disconnect_watcher. Details in PR#6035. Assisted-by: Claude:claude-sonnet-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ParadoxV5
paradox.ver5@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-21322: Delete extra `remove_slave()` call The `Ack_receiver::remove_slave()` call in `kill_zombie_dump_threads()`’s loop callback is not necessary, because binlog dump threads that have called `Ack_receiver::add_slave()` will call `remove_slave()` during cleanup anyway. This commit erases this extraneous call, for it wastes the dump thread’s normal `remove_slave()` step, which locks `Ack_receiver`’s global mutex. MDEV-21322 (report ACKs on SHOW SLAVE HOSTS) also has trouble matching its synchronization needs with this global lock acquisition. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||