Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Categories: connectors experimental galera main
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

connectors experimental galera main
Marko Mäkelä
Merge 10.6 into 10.11
Monty
Remove rows and cost from optimizer trace for not usable key parts
  • winx64-debug: compile failed -  stdio
  • winx64-packages: compile failed -  stdio
Monty
Removed ctrl-l from the source
Marko Mäkelä
Cleanup: Remove the function dict_remove_db_name()
Sergei Petrunia
MDEV-34894: Poor query plan, because range estimates are not reused for ref(const)

(Variant 4, with @@optimizer_adjust_secondary_key_costs, reuse in two
places, and conditions are replaced with equivalent simpler forms in two more)

In best_access_path(), ReuseRangeEstimateForRef-3,  the check
for whether
"all used key_part_i used key_part_i=const"
was incorrect: it may produced a "NO" answer for cases when we
had:
key_part1= const // some key parts are usable
key_part2= value_not_in_join_prefix  //present but unusable
key_part3= non_const_value // unusable due to gap in key parts.

This caused the optimizer to fail to apply ReuseRangeEstimateForRef
heuristics. The consequence is poor query plan choice when the index
in question has very skewed data distribution.

The fix is enabled if its @@optimizer_adjust_secondary_key_costs flag
is set.
Julius Goryavsky
Merge branch '10.5' into '10.6'
Monty
Optimized max_part_bit in sql_select.cc to use my_find_first_bit.
Sergei Petrunia
MDEV-34720: Poor plan choice for large JOIN with ORDER BY and small LIMIT

(Variant 2b: call greedy_search() twice, correct handling for limited
search_depth)

Modify the join optimizer to specifically try to produce join orders that
can short-cut their execution for ORDER BY..LIMIT clause.

The optimization is controlled by @@optimizer_join_limit_pref_ratio.
Default value 0 means don't construct short-cutting join orders.
Other value means construct short-cutting join order, and prefer it only
if it promises speedup of more than #value times.

In Optimizer Trace, look for these names:
* join_limit_shortcut_is_applicable
* join_limit_shortcut_plan_search
* join_limit_shortcut_choice
Oleg Smirnov
MDEV-33281 Make BNL() hint work for join_cache_level=0

join_cache_level=0 disables join cache buffers, but the hint
BNL() now allows to employ BNL(H) buffers for particular tables
or query blocks.

This commit also adds a number of test cases including
OUTER JOINs to make sure hints do not break the rules of
join buffers application
Monty
Remove rows and cost from optimizer trace for not usable key parts
Yuchen Pei
MDEV-34716 [to-squash] 11.6 fixup caused by MDEV-31340

To be squashed with the top MDEV-34716 commit
Thirunarayanan Balathandayuthapani
MDEV-34855 Bootstrap hangs while shrinking the system tablespace

Reason:
=======
- During bootstrap, InnoDB shrinks the system tablespace while purge is
still active on system tablespace. This could lead to deadlock.

Fix:
====
Avoid System tablespace shrinking during bootstrap.
Move the shrinking logic of system tablespace after purge gets shutdown.
Nikita Malyavin
Auth: set thd->scramble in all cases during writing Initial Handshake Packet
Nikita Malyavin
Auth: release the plugins from responsibility to fill scramble_buff.

Fill it once during the Initial Handshake Packet parsing. This uses the fact
that the server guarantees first 20 bytes to be the scramble.
Vladislav Vaintroub
Fix threading issue during mariadb-import abort.
  • kvm-debug-asan-ubsan: uploading var.tar.gz -  
Vladislav Vaintroub
Fix test case
Marko Mäkelä
MDEV-34845 buf_flush_buffer_pool(): Assertion `!os_aio_pending_reads()' failed

buf_flush_buffer_pool(): Wait for any pending asynchronous reads
to complete. This assertion failed in a run where buf_read_ahead_linear()
had been triggered in an SQL statement that was executed right
before shutdown.

Reviewed by: Debarun Banerjee
Marko Mäkelä
MDEV-34791: Redundant page lookups hurt performance

btr_cur_t::search_leaf(): When the index root page is also a leaf page,
we may need to upgrade our existing shared root page latch into an
exclusive latch. Even if we end up waiting, the root page won't be able
to go away while we hold an index()->lock. The index page may be split;
that is all.

btr_latch_prev(): Acquire the page latch while holding a buffer-fix
and an index tree latch. Merge the change buffer if needed. Use
buf_pool_t::page_fix() for this special case instead of complicating
buf_page_get_low() and buf_page_get_gen().

row_merge_read_clustered_index(): Remove some code that does not seem
to be useful. No difference was observed with regard to removing this
code when a CREATE INDEX or OPTIMIZE TABLE statement was run concurrently
with sysbench oltp_update_index --tables=1 --table_size=1000 --threads=16.

buf_pool_t::unzip(): Decompress a ROW_FORMAT=COMPRESSED page.

buf_pool_t::page_fix(): Handle also ROW_FORMAT=COMPRESSED pages
as well as change buffer merge. Optionally return an error.
Add a flag for suppressing a page latch wait and a special return
value -1 to indicate that the call would block.
This is the preferred way of buffer-fixing blocks.
The functions buf_page_get_gen() and buf_page_get_low() are only being
invoked with rw_latch=RW_NO_LATCH in operations on SPATIAL INDEX.

buf_page_t: Define some static functions for interpreting state().

buf_page_get_zip(), buf_read_page(),
buf_read_ahead_random(), buf_read_ahead_linear():
Remove the redundant parameter zip_size. We must look up the
tablespace and can invoke fil_space_t::zip_size() on it.

buf_page_get_low(): Require mtr!=nullptr.

buf_page_get_gen(): Implement some lock downgrading during recovery.

ibuf_page_low(): Use buf_pool_t::page_fix() in a debug check.
We do wait for a page read here, because otherwise a debug assertion in
buf_page_get_low() in the test innodb.ibuf_delete could occasionally fail.

PageConverter::operator(): Invoke buf_pool_t::page_fix() in order
to possibly evict a block. This allows us to remove some
special case code from buf_page_get_low().
Marko Mäkelä
Merge 10.6 into 10.11
Nikita Malyavin
MDEV-12320 configurable default authentication plugin for the server

* Add a new cmdline-only variable "default_auth_plugin".
* A default plugin is locked at the server init and unlocked at the deinit
  stages. This means that mysql_native_password and old_password_plugin, when
  default, are locked/unlocked twice.
Dmitry Shulga
MDEV-34551: Column list in the trigger definition

Added support of the clause `update of <columns>` by the parser
and initial implementation of UPDATE statement processing.
Dmitry Shulga
MDEV-34551: Column list in the trigger definition

Added support of the clause `UPDATE OF <columns>` for
BEFORE/AFTER UPDATE triggers. Triggers defined with this clause
are fired and run actions only in case an UPDATE statement affects
any of the listed columns. For columns not specified in the clause
`UPDATE OF <columns>`, an UPDATE statement with such columns as
targets don't result in running a trigger.

Output of SHOW TRIGGERS doesn't affected by this task. Output of
the statement SHOW CREATE TRIGGER shows the clause `UPDATE OF <columns>`
if it was specified on trigger creation.
Monty
Optimized max_part_bit in sql_select.cc to use my_find_first_bit.
Sergei Petrunia
Code cleanup in test_if_skip_sort_order()

Added comments
Moved a part into find_indexes_matching_order().
Monty
Remove rows and cost from optimizer trace for not usable key parts
Monty
Temp push of
TODO-4858: Make ref(const) access reuse estimates from range if possible
Denis Protivensky
MDEV-33133: MDL conflict handling code should skip BF-aborted trxs

It's possible that MDL conflict handling code is called more
than once for a transaction when:
- it holds more than one conflicting MDL lock
- reschedule_waiters() is executed,
which results in repeated attempts to BF-abort already aborted
transaction.
In such situations, it might be that BF-aborting logic sees
a partially rolled back transaction and erroneously decides
on future actions for such a transaction.

The specific situation tested and fixed is when a SR transaction
applied in the node gets BF-aborted by a started TOI operation.
It's then caught with the server transaction already rolled back,
but with no MDL locks yet released. This caused wrong state
detection for such a transaction during repeated MDL conflict
handling code execution.

Signed-off-by: Julius Goryavsky <[email protected]>
Julius Goryavsky
MDEV-30822: Adjust wsrep_sst_mariabackup.sh to understand both pre-MDEV-18931 and post-MDEV-18931 file naming

This commit adds support for legacy names for files such
as mariadb_backup_galera_info, mariadb_backup_checkpoints
and mariabackup_binlog_info to allow upgrading from old
to new server versions without stopping the galera cluster.

In addition, improved handling of errors to prevent hangs
detected during stress testing of the updated SST script
for mariabackup (when conditions for hangs at the mariabackup
stage were artificially created).
Vladislav Vaintroub
Fix init_tp_connections
Ian Gilfillan
MDEV-26114: Update Sys Schema README
Marko Mäkelä
Merge 10.6 into 10.11
Denis Protivensky
MDEV-33133: MDL conflict handling code should skip BF-aborted trxs

It's possible that MDL conflict handling code is called more
than once for a transaction when:
- it holds more than one conflicting MDL lock
- reschedule_waiters() is executed,
which results in repeated attempts to BF-abort already aborted
transaction.
In such situations, it might be that BF-aborting logic sees
a partially rolled back transaction and erroneously decides
on future actions for such a transaction.

The specific situation tested and fixed is when a SR transaction
applied in the node gets BF-aborted by a started TOI operation.
It's then caught with the server transaction already rolled back,
but with no MDL locks yet released. This caused wrong state
detection for such a transaction during repeated MDL conflict
handling code execution.

Signed-off-by: Julius Goryavsky <[email protected]>
Yuchen Pei
MDEV-15696 Implement SHOW CREATE SERVER

One change is that if the port is not supplied or out of bound, the
old behaviour is to print 3306. The new behaviour is to not print
it (if not supplied) or the out of bound value.
Monty
Optimized max_part_bit in sql_select.cc to use my_find_first_bit.
  • winx64-debug: compile failed -  stdio
  • winx64-packages: compile failed -  stdio
Vladislav Vaintroub
WIP
Nikita Malyavin
Auth: release the plugins from responsibility to fill scramble_buff.

Fill it once during the Initial Handshake Packet parsing. This uses the fact
that the server guarantees first 20 bytes to be the scramble.
Vladislav Vaintroub
mariadb-import, multithreading - improve error handing

In case of error in one connection, issue KILL CONNECTION for all others,
or server will still do LOAD FILE, possibly for hours, after we exited.
Marko Mäkelä
MDEV-34823 Invalid arguments in ib_push_warning()

In the bug report MDEV-32817 it occurred that the function
row_mysql_get_table_status() is outputting a fil_space_t*
as if it were a numeric tablespace identifier.

ib_push_warning(): Remove. Let us invoke push_warning_printf() directly.

innodb_decryption_failed(): Report a decryption failure and set the
dict_table_t::file_unreadable flag. This code was being duplicated in
very many places. We return the constant value DB_DECRYPTION_FAILED
in order to avoid code duplication in the callers and to allow tail calls.

innodb_fk_error(): Report a FOREIGN KEY error.

dict_foreign_def_get(), dict_foreign_def_get_fields(): Remove.
This code was being used in dict_create_add_foreign_to_dictionary()
in an apparently uncovered code path. That ib_push_warning() call
would pass the integer i+1 instead of a pointer to NUL terminated
string ("%s"), and therefore the call should have resulted in a crash.

dict_print_info_on_foreign_key_in_create_format(),
innobase_quote_identifier(): Add const qualifiers.

row_mysql_get_table_error(): Replaces row_mysql_get_table_status().
Display no message on DB_CORRUPTION; it should be properly reported at
the SQL layer anyway.