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
Vladislav Vaintroub
MDEV-34482 threads running events are not visible for definer

Fixed to additionally show event worker threads, in SHOW PROCESSLIST
and I_S.PROCESSLIST, if event worker runs under current user context.
Rucha Deodhar
MDEV-39119: Improve error handling when using OLD_VALUE as alias name

Analysis:
Since OLD_VALUE_SYM was part of reserved keywords, it did not allow
old_value in the alias.
Fix:
Change OLD_VALUE_SYM from reserved keyword to keyword_sp_var_and_label.
Vladislav Vaintroub
MDEV-37256 Add permission check for LOAD INDEX INTO CACHE and CACHE INDEX

Previously, no access check was done for these commands. Now, we require
any table-level permission, which consistent with other admin commands
like CHECKSUM.
Rex Johnston
MDEV-38070 wrong resultset with having and or condition

During join execution of a query involving an aggregation,
ref items pointing to types that call Item_ref::val_native
(which includes TIMESTAMP fields) will return a value from
Item_field::field, rather than Item_field::result_field.
This will result in a potentially incorrect grouping comparison
and an incorrect result.

Affected statements will involve a derived grouped table with
an aggregation function TIMESTAMP field and outer having clause.
Marko Mäkelä
MDEV-39139 InnoDB fails to start up with small RLIMIT_AS

innodb_init_params(): When no innodb_buffer_pool_size_max has been
specified, cap the default to a quarter of the address space limit.

Reviewed by: Vladislav Vaintroub
Marko Mäkelä
Merge 11.4 into 11.8
Yuchen Pei
MDEV-38752 [demo] Add flag VCOL_TRUNCATED

still not persistent
Aleksey Midenkov
MDEV-28619 with_flags cleanup

The best practice is to init as much info as possible in class
constructor. with_flags access may be needed before fix_fields() or
fix_fields() may be not called at all like it takes place in
MDEV-28619. The fix for MDEV-28619 requires WINDOW_FUNC check on
unfixed item.
Vladislav Vaintroub
MDEV-34482 threads running events are not visible for definer

Fixed to additionally show event worker threads, in SHOW PROCESSLIST
and I_S.PROCESSLIST, if event worker runs under current user context.
Vladislav Vaintroub
MDEV-38954 - do not use any charset conversions for session tracker info.

MySQL converts neither variables nor database name in session tracker info.
And hence we should not do any conversions, in order to keep protocol
compatible.
Yuchen Pei
MDEV-38752 [demo] Add flag VCOL_TRUNCATED

test taken from pr4759

still not persistent
Daniel Black
MDEV-39158: Debian dh_installchangelogs parsing timestamp

Per policy[1] the date is meant to be a RFC 5322 type
timestamp.

[1] https://www.debian.org/doc/debian-policy/ch-source.html#debian-changelog-debian-changelog
Marko Mäkelä
Merge 10.11 into 11.4
Oleg Smirnov
MDEV-37792 MSAN: use-of-uninitialized-value on DELETE from sequence table

SEQUENCE is a pseudo-engine intended to produce sequential numbers.
This engine has HTON_HIDDEN flag, and optimizer costs for such engines
are zeroed and marked with MEM_UNDEFINED() macro.

However, some code paths still examine optimizer costs during
execution of queries involving SEQUENCE tables. For example,
deletion from a sequence table, despite being invalid, still evaluates
costs of access to the table before producing an error. This makes
MSAN trigger on the error "use-of-uninitialized-value".

Not to overcomplicate the logic for handling such scenarios,
this patch simply removes MEM_UNDEFINED() macro for engines with
HTON_HIDDEN flag.
Denis Protivensky
MDEV-39011: Fix THD leak in async slave error path with wsrep_restart_slave

- fix the leak by properly releasing resources before repeat
- rework the error path handling to wait for Wsrep readiness state
  instead of repeating endlessly
- improve Wsrep readiness state by also singlaing node's shutdown
Vladislav Vaintroub
MDEV-38954 - use correct charset for sending session tracker info

Use thd->variables.character_set_results (used for client-server
communication), rather than default database charset.

The db charset can be weird (non-ASCII compatible, e.g UTF16 or UTF32),
contain embedded zeros, in which case it can't be correctly processed by
the client.
Aleksey Midenkov
MDEV-38798 Assertion `mdl_key->length() == 3' failed in MDL_map::find_or_insert

MDEV-33985 wrongly checked db.length for pure alias, but
empty_c_string is not pure alias. Reverted this check to db.str.
Yuchen Pei
MDEV-38179 [wip] do not lock LOCK_plugin in Session_sysvars_tracker::vars_list::store
Yuchen Pei
MDEV-38752 [demo] Add flag VCOL_TRUNCATED

still not persistent
Aleksey Midenkov
MDEV-36362 MariaDB crashes when parsing fuzzer generated PARTITION

Function calls in INTERVAL expression of DDL have little
sense. SETVAL() fails because sequences require opened tables and
vers_set_interval() is called at earlier stage.

The fix disables function calls in INTERVAL expressions and limits it
to signal_allowed_expr (literal, variable, simple_ident).
Yuchen Pei
MDEV-38732 Correctly construct queries with NULL uservar values in spider

The subsequent assertion failure in end_statement is likely caused by
HA_ERR_OUT_OF_MEM not correctly handled, but it should not return an
HA_ERR_OUT_OF_MEM here in the first place.
Aleksey Midenkov
MDEV-25365 Cleanups
Marko Mäkelä
Make innodb_log_recovery_start settable (for incremental backup)

Also, implement a little more of backup_innodb.
Sutou Kouhei
MDEV-39098: UBSAN: insufficient-object-size in mroonga groonga/lib/db.c:10882

The incorrect destructor was used in delete_reference_records_in_index
Anway Durge
MDEV-XXXXX: Fix Mroonga post-install script path

Update legacy /usr/share/mysql path to /usr/share/mariadb in the debian postinst script for the mroonga plugin.
forkfun
MDEV-30295 mysqldump produces syntactically incorrect statement

Remove version-specific executable comments, that were used for backward compatibility
with old MySQL versions (3.2, 4.0, 4.1, 5.0).
Aleksey Midenkov
MDEV-38798 Assertion `mdl_key->length() == 3' failed in MDL_map::find_or_insert

MDEV-33985 wrongly checked db.length for pure alias, but
empty_c_string is not pure alias. Reverted this check to db.str.
Aleksey Midenkov
MDEV-28619 Server crash and UBSAN null-pointer-use in Window_funcs_sort::setup

Optimization in st_select_lex_unit::prepare() removes ORDER BY for
certain subqueries. That excludes ORDER BY items from being fixed, but
sl->window_funcs still contains window function items and those
related to optimized out ORDER BY are unfixed. The error about missing
window spec is thrown when the item is fixed. Hence we get redundant
processing of window function items without checking window spec
existence.

The fix removes the related window function items when ORDER BY is
optimized out. ORDER accumulates window_funcs at parser stage which
are then removed from SELECT_LEX::window_funcs. The fix also updates
similar optimization in mysql_make_view().
Georg Richter
Fix for CONC-812:

The `length` element of the MYSQL_BIND structure is
used to obtain the size of variable-length data
types, such as BLOBs or strings, in order to
determine the required buffer size, as described in
the documentation:

"Pointer to the length of the buffer (not used for
parameters). The length is ignored for numeric and
fixed-size data types, as the buffer_type value
determines the size of the data."

Since the prepared statement implementation of
MariaDB Connector/C is based on the PHP mysqlnd
extension code, the initial implementation
incorrectly set the `length` field for fixed-size
data types.

As agreed with the support team, we do not remove
the `length` value for fixed-size types, but retain
it to handle NULL values correctly.
Aleksey Midenkov
MDEV-38854 Assertion table->vers_write fails upon ODKU into table with versioned column

In MDEV-25644 vers_check_update() sets vers_write to false in case it
returns false. It is ok for UPDATE but is not correct for ODKU is bulk
insert requires vers_write on next tuple.

The fix return vers_write value back when vers_check_update() and
related vers_insert_history_row() are done in ODKU.
Rucha Deodhar
MDEV-39127: UBSAN : downcast of address X which does not point to an object
of type 'multi_update' in sql/sql_update.cc
| Sql_cmd_update::update_single_table

Analysis:
the 'result' object was being incorrectly used which maybe of the type
multi_update.This caused UBSAN error due to an invalid downcast in
Sql_cmd_update::update_single_table().

Fix:
Introduce a dedicated returning_result object for handling RETURNING output
instead of reusing result. This ensures the correct result handler is used
and avoids unsafe casts.
Dearsh Oberoi
MDEV-38497 Remove all slave related configurations on RESET SLAVE ALL

Fix RESET SLAVE ALL to fully clear replica configuration of the
default unnamed slave, including SSL options, connection config,
logging info and group info so subsequent CHANGE MASTER starts
from a clean state.

Signed-off-by: Dearsh Oberoi <[email protected]>

Reviewed-by: Brandon Nesterenko <[email protected]>
Reviewed-by: Jimmy Hú <[email protected]>
Reviewed-by: Georgi Kodinov <[email protected]>
Rucha Deodhar
MDEV-39127: UBSAN : downcast of address X which does not point to an object
of type 'multi_update' in sql/sql_update.cc
| Sql_cmd_update::update_single_table

Analysis:
the 'result' object was being incorrectly used which maybe of the type
multi_update.This caused UBSAN error due to an invalid downcast in
Sql_cmd_update::update_single_table().

Fix:
Introduce a dedicated returning_result object for handling RETURNING output
instead of reusing result. This ensures the correct result handler is used
and avoids unsafe casts.
Aleksey Midenkov
MDEV-38854 Assertion table->vers_write fails upon ODKU into table with versioned column

In MDEV-25644 vers_check_update() sets vers_write to false in case it
returns false. It is ok for UPDATE but is not correct for ODKU is bulk
insert requires vers_write on next tuple.

The fix return vers_write value back when vers_check_update() and
related vers_insert_history_row() are done in ODKU.
Vladislav Vaintroub
MDEV-38954 - use correct charset for sending session tracker info

Use thd->variables.character_set_results (used for client-server
communication), rather than default database charset.

The db charset can be weird (non-ASCII compatible, e.g UTF16 or UTF32),
contain embedded zeros, in which case it can't be correctly processed by
the client.
Aleksey Midenkov
MDEV-25365 Server hangs or crashes in Query_cache::move_by_type upon FLUSH QUERY CACHE

Caused by Bug#988 in 702b5ad.

How it works

QUERY blocks has all its tables in the array coming after
Query_cache_block header. Each such table element
(Query_cache_block_table) is also an element of doubly-linked circular
list associated with TABLE block used to find all queries by a
table. TABLE block data() is actually Query_cache_table: identificator
for table elements by real name. Every element in the circular list
has `parent` set to such Query_cache_table, except the list root. The
list root is the only Query_cache_block_table element owned by a TABLE
block, all other elements are owned by QUERY blocks. Thus TABLE block
n_tables is always 1.

FREE blocks are transformed into gap pointed by `border`. All the
QUERY and TABLE blocks are moved in place of the gap providing free
space defragmentation. Moving is done by creating new block at the
location of the gap and then doing memmove() from an old block to new
block. This may involve blocks overlap when the distance between the
blocks is less than the block size.

What was broken

When the old and the new QUERY blocks overlap, pointer can be in range
of both of them and checking the range does not guarantee affiliation
of the pointer with the old block. Such intra-block checks added by
Bug#988 can wrongly work on an already updated pointer.

In the test case small gap allows both tables 16 and 17 to be in the
overlapping region of old and new blocks. Iteration 16 updated
`prev->next` on the normal manner and the `prev` was table 17.
Iteration 17 sees this `next` as a pointer coming from an old block
though really it is already for a new block (as small gap shift allows
table 16 to be in both blocks), and it shifts it to the wrong
location. That have broken TABLE block circular chain.

How it was fixed

The fix modifies intra-block checks to work only in the forward
direction. F.ex., current table jx references intra-block by `next`
another table jy in later iteration (jx < jy) and we shift this `next`
pointer. Then by normal code (pre-Bug#988) we update `next->prev`. At
iteration jy we skip intra-block check for `prev` as it is in the past
iteration and was updated by iteration jx. The same happens for the
opposite direction, there is no semantic difference between `next` and
`prev` pointers.
Jan Lindström
MDEV-28750 : Assertion `trans_safe || !updated || thd->transaction->stmt.modified_non_trans_table' failed in virtual bool multi_update::send_eof()

Problem was that in multi-table update that contains tables that are not
transactional and tables that are transactional error handling does not
work correctly if write set size is limited. Because, Galera
replication for MyISAM is experimental it is better to avoid
multi-table updates in this case.

Fixed by not allowing multi-table updates if statement contains
non transactional and transactional tables and write set size
is limited.
Aleksey Midenkov
MDEV-32317 Trace for ref_ptrs array (ref_array keyword)

Usage:

  mtr --mysqld=--debug=d,ref_array,query:i:o,/tmp/mdl.log
Aleksey Midenkov
MDEV-25365 More query cache debug trace

Usage:

mtr --mysqld=--debug=d,qcache,query:i:O,/tmp/qcache_full.log
sed -nre '/(move_by_type|dispatch_command|pack_cache)/ p' \
    < /tmp/qcache_full.log \
    > /tmp/qcache.log