Console View
|
Categories: connectors experimental galera main |
|
| connectors | experimental | galera | main | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-12.3-release' into bb-13.1-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42025 Unauthenticated handshake converts an unbounded CLIENT_CONNECT_WITH_DB database name cut the database name to SAFE_NAME_LEN+1 characters before converting it, a longer name is invalid anyway and stays invalid after the cut. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39596 Unexpected "No database selected" error for a CALL inside an anonymous block For name1.name2() the PATH loop searches CURRENT_SCHEMA for a package name1. In an anonymous block without a current database resolve_current_schema() called copy_db_normalized(), which raised ER_NO_DB_ERROR. But without a current schema there is no package to find, name1.name2 can only be schema.routine. Skip the unresolvable CURRENT_SCHEMA in an anonymous block, as it is done outside of stored programs. Unqualified names never get here without a current database, make_sp_name() and Create_qfunc::create_func() reject them first. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alessandro Vetere
iminelink@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41844 Test innodb.buf_pool_resize_pcur_restore is flaky The procedure read_into_first_new_block() requires that the page of a table is read into the first block that a buffer pool grow adds. While history exists, the purge coordinator runs once per second. It reads undo log pages, and purge_truncation_callback() reads the header page of each rollback segment. On a slow builder, these reads can take the first new block in all 5 attempts. Stop purge for the duration of the test with FLUSH TABLES ... FOR EXPORT on a separate connection. A read view does not stop these reads. Remove the wait for purge between the two cases, because purge is stopped. purge_sys_t::stop() waits only for the purge coordinator. Runs of purge_truncation_callback() that the coordinator submitted before can still read pages after FLUSH TABLES ... FOR EXPORT returns. Add the debug keyword purge_stop_wait_truncation, which makes purge_sys_t::stop() also wait for these runs, and set it in the test. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.8-release' into bb-12.3-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40543 Assertion `opt->value.str' failed in append_create_options on ALTER TABLE ... REORGANIZE PARTITION partition syntax is printed from the parsed option list, which contains =DEFAULT (NULL value) entries. Skip them, like frm writer does. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-39822 MHNSW index returns wrong results for M >= 128 * number of neighbors is stored in a byte * nodes have 2*M neighbors on the layer 0 => M cannot be larger than 127 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40935: Infinite loop in SET GLOBAL innodb_log_archive log_t::set_archive(): Ensure that a log checkpoint will be written even if no dirty pages exist in the buffer pool. This was reproduced with an intermittent livelock during the test innodb.log_file_size_online. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Jan Lindström
jan.lindstrom@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41737 Galera async replica SQL thread stops instead of retrying When a parallel replication worker on a Galera node loses local certification, the SQL thread stops instead of retrying the event group. - rpt_handle_event(): call wsrep_after_statement() only when the apply succeeded. On a wsrep deadlock error without a MariaDB error, raise ER_LOCK_DEADLOCK so the failure is retryable. - retry_event_group(): ignore the wsrep_after_statement() result. The error is reset right after. - Add a debug sync point and the test galera.MDEV-41737. Assisted-by: Claude:claude-4.6-sonnet |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-10.11-release' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41258 Crash in Item_func_nextval on prepared re-execution Sequence prelocking entries were matched across re-executions by db.str/table_name.str pointer identity, aliasing memory on the TABLE's own mem_root. Once the owning table was closed and reopened, those pointers went stale, leaving a dangling duplicate entry that still got opened and crashed. Fix: match entries by owning TABLE_LIST and position, deep-copied onto the statement's own arena. The relink was gated by has_prelocking_list, which stays true forever once a trigger is involved, so it silently stopped running after the first execution for such statements. Fix: moved it into its own function, called unconditionally per table, keeping the original gating, scoped to DML statements only. A stale entry's linked_table pointer could survive its owner's open being skipped, or a mid-statement open_tables() backoff (close_tables_for_reopen()), leaving open_table()'s backlink write to land on freed memory. Fix: clear it in TABLE_LIST::reinit_before_use() and in close_tables_for_reopen(). set_parameters() overwrote lex->default_used from each execution's own bound parameters only, losing a literal DEFAULT written in the statement text itself. Fix: also record default_used at prepare time and OR it in. A mid-execute_loop() reprepare() swaps in a freshly re-parsed lex, losing "EXECUTE ... USING DEFAULT" already folded into default_used by set_parameters() for this execution. Fix: save that bit before reprepare() and OR it back in afterwards. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-10.11-release' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Jan Lindström
jan.lindstrom@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40212 galera_duplicate_primary_value stalls on single applier Failure: - The test needs two write sets applied concurrently by two appliers on node 1, but never sets wsrep-slave-threads, so it defaults to 1. - lock_wait_wsrep_kill's debug sync parks the applier thread itself on WAIT_FOR wsrep_after_kill_continue; with only one applier, the second write set has no free thread, and WAIT_FOR wsrep_after_kill_reached_2 blocks until --debug-sync-timeout (300s). - The timeout does not fail the test, so it reports pass without ever reaching the concurrent brute-force state MDEV-31658 added it to cover. Fix: - Set wsrep-slave-threads=2 on node 1, so the two independent write sets apply concurrently, matching what the test is meant to exercise. Assisted-by: Teemu Ollakka <[email protected]> Assisted-by: https://mariadb.org/governance/governance-ai-policy/ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Alexey Yurchenko
alexey.yurchenko@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-35940, MDEV-35964 reenable MTR tests As MDEV-35940, MDEV-35964 have been fixed, reenable tests disabled because of them |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch '10.11' into 11.4 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.8-release' into bb-12.3-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41258 Crash in Item_func_nextval on prepared re-execution Sequence prelocking entries were matched across re-executions by db.str/table_name.str pointer identity, aliasing memory on the TABLE's own mem_root. Once the owning table was closed and reopened, those pointers went stale, leaving a dangling duplicate entry that still got opened and crashed. Fix: match entries by owning TABLE_LIST and position, deep-copied onto the statement's own arena. The relink was gated by has_prelocking_list, which stays true forever once a trigger is involved, so it silently stopped running after the first execution for such statements. Fix: moved it into its own function, called unconditionally per table, keeping the original gating, scoped to DML statements only. A stale entry's linked_table pointer could survive its owner's open being skipped, or a mid-statement open_tables() backoff (close_tables_for_reopen()), leaving open_table()'s backlink write to land on freed memory. Fix: clear it in TABLE_LIST::reinit_before_use() and in close_tables_for_reopen(). set_parameters() overwrote lex->default_used from each execution's own bound parameters only, losing a literal DEFAULT written in the statement text itself. Fix: also record default_used at prepare time and OR it in. A mid-execute_loop() reprepare() swaps in a freshly re-parsed lex, losing "EXECUTE ... USING DEFAULT" already folded into default_used by set_parameters() for this execution. Fix: save that bit before reprepare() and OR it back in afterwards. Assisted-By: Claude Opus 5.5 <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-10.11-release' into bb-11.4-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Pekka Lampio
pekka.lampio@galeracluster.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-38999 followup: close two more stale-read gaps, strengthen tests Review of the original fix surfaced two further ways a transaction could skip a causal wait it still needed, plus gaps in the test coverage for the fix overall. 1. wsrep_has_changes(thd) - used to detect "this transaction already holds locks, so stop re-waiting" - only reflects writes (appended certification keys / binlog cache content). A locking read (SELECT ... FOR UPDATE / LOCK IN SHARE MODE) takes InnoDB row locks without appending any certification key, so it stayed invisible to this check: a transaction that opened with such a read, then later ran a statement whose wsrep_sync_wait bit was configured, would still attempt a fresh causal wait - the same self-deadlock risk the original fix exists to avoid, reached via a path it didn't cover. Fixed with a new THD member, wsrep_trx_locking_read_done, set by wsrep_sync_wait() whenever the statement just waited for was a locking SELECT, checked alongside wsrep_has_changes(thd) in wsrep_must_sync_wait(), and reset at the same points the transaction boundary already resets equivalent per-transaction state (trans_begin, trans_commit[_implicit], trans_rollback[_implicit]). 2. wsrep::client_state::sync_wait_gtid_ caches "already performed a causal wait for this top-level command" for the lifetime of one dispatch_command() cycle. Inside a stored procedure CALL, that cycle spans every statement in the procedure body - sp_instr_stmt::execute() runs each one via mysql_execute_command() directly, with none of the wsrep before/after-command handling that would otherwise reset the cache between statements. A later read inside the same CALL could therefore see the stale cache from an earlier read in the same CALL and skip its own wait - the original bug's symptom, via a different gate. Fixed by ignoring the cache for a stored procedure's own top-level statements, identified by thd->spcont set and thd->in_sub_stmt clear. This is deliberately NOT extended to trigger or function bodies (thd->in_sub_stmt == SUB_STMT_TRIGGER/ SUB_STMT_FUNCTION): those execute nested inside another statement that may already hold locks of its own, so forcing a wait there reintroduces the self-deadlock risk the first fix avoids - caught by galera_var_replicate_aria_on.test, whose BEFORE INSERT trigger began timing out under an earlier, broader version of this change that bypassed the cache for any thd->spcont. Test changes: - galera_MDEV-38999_locks.test now takes its lock with SELECT ... FOR UPDATE instead of an UPDATE, so it actually exercises the wsrep_trx_locking_read_done gap above rather than a case wsrep_has_changes(thd) already covered. Its final convergence check no longer assumes the closing COMMIT succeeds - it genuinely conflicts with node_1's write to the same row and may be BF-aborted - and instead waits for node_2 to match whatever row count node_1 ends up with. - galera_MDEV-38999_autocommit.test's closing ROLLBACK assertion is no longer tolerant of ER_LOCK_WAIT_TIMEOUT; after the after_command_ after_result() fix it must always succeed cleanly. - galera_MDEV-38999_sp.test (new) exercises the stored-procedure staleness fix directly: a CALL whose second SELECT must still time out despite an earlier, successful SELECT in the same CALL. - galera_MDEV-38999_qcache.test (new) covers sql_cache.cc's own, independent wsrep_must_sync_wait()/wsrep_sync_wait() call site: a cached read hit before this transaction's first write must still wait, same as an uncached one. - The repeated applier-pause/resume/debug_sync boilerplate shared by these tests is factored into galera_mdev38999_{init,cleanup, pause_applier,wait_applier_paused,resume_applier}.inc. Assisted-by Claude AI |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40847 Server crash on EXPLAIN EXTENDED or CREATE VIEW of a deeply nested JSON_TABLE * check the stack in Json_table_nested_path::print(), it recurses once per NESTED PATH level * don't save a view definition if printing it failed * don't push the EXPLAIN EXTENDED note if printing it failed Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41813 OPTIMIZE TABLE makes tables grow PageBulk::init(): Add a parameter for a hint page number, so that we will try to allocate adjacent pages for the index. After this change, the innodb_alter_copy_bulk=ON code path may actually produce smaller files than the legacy code path. Based on mysql/mysql-server@a3e2dbddec48ec229484bdf082b8c2f34ccf8c0b Reviewed by: Thirunarayanan Balathandayuthapani |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42070 handlersocket crashes after open_index with huge number of return fields alloca() sizes in do_exec_on_index() and cmd_find_internal() depend on client-controlled counts (return fields, filters) bounded only by the request line length. * make DENA_ALLOCA_ALLOCATE always use malloc * free key_buf/filter_buf on the early "filterblob" return Also, a huge statement id in open_index or IN list length in exec resized a vector to 4G elements, aborting on std::bad_alloc. Limit both to 1024. Assisted-by: Claude:claude-opus-5-5 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-12.3-release' into bb-13.1-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41432 CONVERT TABLE ... TO PARTITION does not check privileges on the table it moves in The table being moved in got grant.privilege copied from the partitioned table, so check_grant() verified ALTER, DROP on it against the wrong database. Run check_access() on its own database instead. 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 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42009: Set GLOBAL innodb_log_file_size=ON is not crash safe log_t::header_rewrite(): Before setting log_sys.archive=true, ensure that any garbage entries at the end of the file will be zeroed out so that they cannot be mistaken for newer records. On Linux and Microsoft Windows we will attempt a shortcut for writing zeroes, before falling back to log_file_t::write(). |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Petrunia
sergey@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Followup: fix versioning.delete_history in MDEV-39226: Push whole multi-table ... | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Jan Lindström
jan.lindstrom@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40211 galera_connect.inc sleeps one second on each invocation Failure: - galera_connect.inc sleeps 1 second, unconditionally, before every connect, as a 2015 workaround for a node racing its own join/IST against another node's concurrent join (MDEV-7178). - ~700 tests in the galera/wsrep suites go through this include, so the blind sleep costs roughly that many seconds in a full run, whether or not any node is still joining. Fix: - Replace the sleep with include/galera_wait_ready.inc after connecting, polling the actual wsrep_ready state instead of guessing a fixed delay. galera_wait_ready.inc is the existing, already widely used helper for this, so this reuses it rather than adding a new check. - Add a $galera_no_wait_ready opt-out for a node that is expected to join a non-Primary component and so never becomes ready; galera_pc_weight.test isolates node_1 before connecting node_3, so node_3 needs it. - The ready check itself must not wait on causality: a test can legitimately connect a second session to a node whose applier is stuck behind a local lock (galera_lock_table.test does, via LOCK TABLES), and wsrep_sync_wait would otherwise block the check's own first query on that same stuck applier. Set it to 0 for the check and restore it from the global value afterward, without reading it back first, since even a bare SELECT of the session variable hits the same wait. Assisted-by: https://mariadb.org/governance/governance-ai-policy/ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41491 parsec ASAN crash on manually modified mysql.global_priv table the server didn't invoke auth plugin's preprocess_hash() for empty passwords, thus it didn't check whether empty passwords were acceptable and plugin's auth() method reliance on the binary hash being correctly preprocessed was broken. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Sergei Golubchik
serg@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| MDEV-41630 ST_IsValid crashes on polygons with many rings | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-40935: Assertion os_file_set_size() failed during shutdown os_file_set_size(): Consistently handle EINTR also after server shutdown has been initiated. This will avoid a crash when an innodb_log_archive=ON log file needs to be created or extended during shutdown. This only affects the posix_fallocate(2) or Linux fallocate(2) code path; if the file is being extended by regular writes, we will retry in case of EINTR. On Microsoft Windows, there is no clear documentation what would happen if the process is being terminated while SetFilePointerEx() or SetEndOfFile() are in progress. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.8-release' into bb-12.3-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
xnervwang
xnervwang@gmail.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-42005 sys.diagnostics(), sys.ps_trace_thread() and sys.ps_trace_statement_digest() leave session sql_log_bin disabled sys.diagnostics(), sys.ps_trace_thread(), and sys.ps_trace_statement_digest() save @@sql_log_bin in @log_bin before disabling binary logging, but calls to ps_setup_save(), ps_setup_reload_saved(), and statement_performance_analyzer() overwrite that saved value with 0. The trace procedures hit this when in_auto_setup or in_auto_enable is TRUE; diagnostics() hits it whenever the PERFORMANCE_SCHEMA engine is listed as supported, including with performance_schema=OFF. The three procedures now save the value in a local v_log_bin variable. The new sysschema.pr_ps_trace_thread test and added cases in sysschema.pr_diagnostics and sysschema.pr_ps_trace_statement_digest check @@sql_log_bin before and after a successful call. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Merge branch 'bb-11.4-release' into bb-11.8-release | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Marko Mäkelä
marko.makela@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41395 fixup: GCC 16 -Wstringop-overflow fil_system_t::default_encrypt_next(): Dereference the iterator only once to avoid a confusing and bogus -Wstringop-overflow by GCC 16.2.0. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Daniel Black
daniel@mariadb.org |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41870: segfault on bootstrap (SLES 15.7) SLES 15.7 earlier had a liburing 2.1 version. MariaDB packages are build with the version bumped 2.9. As ABI incompatable elements are compiled into MariaDB because of inlined functions, we need to explictly bump the dependency to include the 2.9 version of liburing. This is for both the server, and mariadb-backup if configured. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Oleksandr Byelkin
sanja@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| new CC 3.3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Susil
susil.behera@mariadb.com |
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
MDEV-41995 galera.MDEV-40727 result file has latin1 instead of utf8mb4 The four SHOW CREATE TABLE outputs in galera/r/MDEV-40727.result record DEFAULT CHARSET=latin1 COLLATE=latin1_swedish_ci. That is the server default on 10.11 and 11.4, but not on 11.8, where the tables that the test creates get utf8mb4 / utf8mb4_uca1400_ai_ci. The test therefore fails on 11.8. The merge of 11.4 into 11.8 (62b26c2f7cb8) brought in the 10.11/11.4 version of the result file. Use the utf8mb4 version, which 12.3 and later already have. Co-Authored-By: Claude Sonnet 5.5 <[email protected]> |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||