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
Alexey Botchkov
MDEV-20498 Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type == 1' failed upon REBUILD PARTITION.

Subpartition field list can be NULL. So keep the function null-safe.
Thirunarayanan Balathandayuthapani
MDEV-37423 Enforce innodb_ft_min_token_size > 0 to prevent unnecessary token indexing

Problem:
=======
By keeping innodb_ft_min_token_size = 0, InnoDB FTS does tokenization
on empty string and tries to add the nullptr as token word. This
leads to crash when we try to convert the token into lower case
characters.

Solution:
=========
The minimum value of innodb_ft_min_token_size should be 1.
It should be consistent with MYISAM and ARIA engine.
Alexey Botchkov
MDEV-20498 Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type == 1' failed upon REBUILD PARTITION.

Reorganise checks if it inserts rows from old partition into new that
wasn't opened for reading. So rows that don't belong there will produce an error.
Alexey Botchkov
MDEV-20498 Assertion `table_share->tmp_table != NO_TMP_TABLE || m_lock_type == 1' failed upon REBUILD PARTITION.

Now ALTER TABLE DROP column for PARTITIONING columns can't be done INPLACE.
Oleksandr Byelkin
columnstore 6.4.12-1
Oleksandr Byelkin
Merge branch 'bb-10.11-release' into bb-11.4-release
Yuchen Pei
MDEV-37810 Introduce combinations of gbh and usual handlers for all spider tests

This also has the side benefits of catching --view-protocol failures
in CI, as --view-protocol often causes spider gbh not to be created
Oleksandr Byelkin
Merge branch '10.11' into bb-10.11-release
Oleg Smirnov
MDEV-30721: Assertion `fixed()' failed in Item_cond_and::val_bool()

When processing a degenerate JTBM semi-join (a subquery that produces
0 or 1 rows), `execute_degenerate_jtbm_semi_join()` creates equality
conditions and adds them to `eq_list`. These equalities are then merged
with existing conditions via `and_new_conditions_to_optimized_cond()`,
creating an `Item_cond_and`.

When multiple conditions need to be combined, a new `Item_cond_and` is
created and populated. However, this item was not fixed before being
walked by the `is_simplified_cond_processor`, which calls `val_bool()`
to check if the condition is a known constant. Calling `val_bool()`
on an unfixed item triggers the assertion.

Solution:
Fix the newly created `Item_cond_and` immediately after it's populated
ensuring it's ready for any subsequent operations including evaluation.
Sergey Vojtovich
MDEV-37894 - main.show_check fails sporadically

Test output was affected by incompletely closed preceding connections.

Wait for connections to leave I_S.PROCESSLIST before issuing
SHOW PROCESSLIST.
Oleksandr Byelkin
Merge branch '10.6' into 10.11
Sergei Golubchik
mandatory plugins cannot be less mature than the server
Marko Mäkelä
MDEV-37672: Remove innodb_trx_rseg_n_slots_debug

The debug parameter innodb_trx_rseg_n_slots_debug is not compatible
with the bug fix that was implemented in MDEV-30671 and last revised
in MDEV-33213, which leads to bogus assertion failures in
trx_assign_rseg_low(), regarding look_for_rollover. When needed,
this parameter can be better simulated by adding a DBUG_EXECUTE_IF to
trx_undo_seg_create() or one of its callers.
Oleksandr Byelkin
Merge branch 'bb-10.11-release' into bb-11.4-release
Alexey Botchkov
Keep --cursor-protocol happy.
ParadoxV5
MDEV-37908: Replace `perror` link with GitBook

Replace the KB link in `extra/perror` (from
MDEV-34168) with a computed GitBook docs link

Reviewed-by: Daniel Black <[email protected]>
Yuchen Pei
MDEV-37568 Fix remote table key direction in spider/bugfix.index

Ideally spider should throw an error when local and remote tables have
conflict definitions.

This fixes the test for --view-protocol and
--mysqld=--loose-spider-disable-group-by-handler
Alexey Botchkov
Make --view-protocol happy.
Alexey Botchkov
MDEV-31499 Assertion `(0)' failed in Gis_geometry_collection::init_from_opresult.

Calculate prev_range when the polygon's border is met.
Otherwise we can falsely mark polygon as a 'hole' which breaks the
topology of the result.
Brandon Nesterenko
MDEV-37885: Server crash or ASAN errors in rpl_binlog_state::drop_domain

The server crashes with a segfault when trying to drop duplicate
domain ids in the same command, e.g.
FLUSH BINARY LOGS DELETE_DOMAIN_ID=(0), BINARY LOGS DELETE_DOMAIN_ID=(0)

This is because a pointer is referenced at the wrong level. When
dropping domain ids, first the code builds a list of unique domain ids
to drop, and the actual deletion uses the domain ids from this unique
list. However, the logic which checks for uniqueness references
elements in the existing list of unique domain ids at the wrong level.
That is, the type of the unique domain id list is a pointer to
rpl_binlog_state::element (i.e. (rpl_binlog_state::element*)). The code
uses dynamic_array_ptr to reference its elements, which is a pointer
to one of these elements, i.e. (rpl_binlog_state::element**), but
the code treated it as a single-level pointer.

This code fixes the return from dynamic_array_ptr to be a
double-pointer.
Sergey Vojtovich
MDEV-37890 - sys_vars.thread_cache_size_func fails sporadically

Removed redundant FLUSH STATUS, doesn't serve any purpose in this test.

Shrinking thread_cache_size is done without appropriate mutex protection
and it doesn't flush thread cache. It means we may have more threads in
the cache than thread_cache_size allows.

First FLUSH THREADS (line 36) was added just in case
thread_cache_size_func-master.opt file is removed and raising
thread_cache_size from 0 to 3 becomes shrinking from the default value
to 3.

Second FLUSH THREADS (line 81) was added to fix timeout in wait
condition (line 100). It serves as a barrier that guarantees fourth
preceding disconnect won't pick one of subsequent connects and in turn
leave 2 threads in the cache.

Threads_cached cannot be queried for exact value because there can
(or cannot) be disconnecting threads from previous tests or mtr utility
connection. There is also a gap between server_threads.erase() (aka
removal from I_S.PROCESSLIST) and thread_cache.park() (aka
Threads_cached++). All in all it makes Threads_cached value
unpredictable after thread_cache_size is set to 3.

Instead of querying for exact value, just make sure Threads_cached
doesn't exceed thread_cache_size.
Andrei Elkin
MDEV-37453 Parallel slave worker crashes during Backup at retrying

In the BASE of this patch when a slave parallel worker proceeds from
the wait-for-prior-commit stage into retrying it may have its
backup-lock related sub-state, specifically `THD::backup_commit_lock`,
not reset, that is the pointer dangling.

That caused segfault at the pointer's dereferencing in the worker retrying.

The reason THD::backup_commit_lock is left dangling was unexpected
state of THD having non-NULL of `THD::backup_commit_lock` and NULL of `mdl_backup.ticket`.
This combination turns out possible when the slave worker is killed
for retry *and* few instruction later it does not succeed
to (re-)acquire the Backup MDL at exiting from
  `MYSQL_BIN_LOG::queue_for_group_commit()`.
While it did not succeed it also did not expose that fact with
timing out from `MDL_context::acquire_lock` and it did not have to,
as it before to start waiting it found itself killed.

The bug is fixed with amendment of `backup_commit_lock` reset condition
at the end of `ha_commit_trans()`. The amended reset remains careful to
affect only the stack allocated lock.

A test is added to confirm the fixes with reproducing all stages
described above. In the patch BASE it causes the segfault.
Yuchen Pei
MDEV-37810 Introduce combinations of gbh and usual handlers for all spider tests

This also has the side benefits of catching --view-protocol failures
in CI, as --view-protocol often causes spider gbh not to be created
Dave Gosselin
MDEV-32397, MDEV-32403 Crashes during join processing.

Queries having the following form may cause a crash
  SELECT t1.a FROM ( SELECT a AS a1 FROM t1 ) dt
  JOIN t1 ON a1 LIKE EXISTS ( SELECT a + RAND () FROM t1 UNION SELECT a FROM t1);
because the table t1 has some JOIN cleanup operations performed prematurely
during the subselect.

In this particular case, the presence of RAND() makes the subquery
uncacheable, necessitating the need to execute the subquery multiple
times during join record evaluation.  Each time the subquery runs, it
creates its own JOIN structure which has references to the table t1.
When the subquery completes, JOIN::cleanup and functions called by it
result in ha_end_keyread() being called on table t1.  However, we are
not done with table t1 because the upper level `select t1.a from...`
query requires table t1 to be open.  To solve this, we make the executor
aware of when we're in subqueries like this and delay JOIN cleanup
until the end of the query.
Yuchen Pei
MDEV-36325 MDEV-36357 Call limit_mode on spider_db_conn instead of spider_db_result in spider_db_store_result

This prevents segv on NULL result_list->current->result on handler
calls that are not the first. Reasons supporting this change:

- spider_db_result::limit_mode is not called anywhere else. The only
  calls to limit_mode method are on spider_db_conn
- it is very unlikely (impossible?) for the connection to change from
  one backend to another between execution of sql statements and
  storing result:

/* in spider_bg_conn_action: */
                if (dbton_handler->execute_sql(
                  sql_type,
                  conn,
                  result_list->quick_mode,
                  &spider->need_mons[conn->link_idx])
// [... 9 lines elided]
                    if (!(result_list->bgs_error =
                      spider_db_store_result(spider, conn->link_idx,
                        result_list->table)))

  this also means it is very unlikely (impossible?) for the backend
  type (dbton_id) to differ between conn->db_conn and
  result_list->current->result, also considering that
  spider_db_result::dbton_id comes from spider_db_conn::dbton_id:

spider_db_result::spider_db_result(
  SPIDER_DB_CONN *in_db_conn
) : db_conn(in_db_conn), dbton_id(in_db_conn->dbton_id)

Since this was the only call to spider_db_result::limit_mode, we also
remove the method altogether.
bsrikanth-mariadb
MDEV-35206: Assertion failure in JOIN::dbug_verify_sj_inner_tables

A nested select query is crashing in when optimizer_join_limit_pref_ratio=10
and optimizer_search_depth=1 due to an assertion failure in
JOIN::dbug_verify_sj_inner_tables().

In sql_select.cc#choose_plan(), there are 2 back-2-back calls to
greedy_search(). The first one is invoked to build a join plan
that can short-cut ORDER BY...LIMIT, while the second invocation
to not consider short-cut.

The greedy_search() should start with a value of join->cur_sj_inner_tables
set to 0. However, the first greedy_search() call left the value of
join->cur_sj_inner_tables to "6". This caused the assert to fail in
dbug_verify_sj_inner_tables() as soon as the second greedy_search() started,
where in it was expecting a value of 0.

Similar problem is noticed with cur_embedding_map in the case of nested
joins, and nested_join counter.

introduced init_join_plan_search_state() which is called
from start of greedy_search() and optimize_straight join
that does all the needed initialization by :
  1. setting 0's to cur_sj_inner_tables, and cur_embedding_map
  2. invoking reset_nj_counters().
Sergei Golubchik
MDEV-37744 Table Charset Mismatch (Primary/Replica) via Event

Events should use proper mysql_change_db() to configure the current
database correctly, in particular to set the db_charset.
Alexey Botchkov
MDEV-33190 Errors or assertion failure upon REPAIR on partitioned Aria table with misplaced rows.

The ha_maria::repair() call leaves the MARIA_HA::cur_row::rowid filled
after index-recreating scans.
Should be emptied so consequent operations dont fail.
Daniel Black
MDEV-36721: remove PrivateDevices=false from systemd services

The association between PrivateDevices=false and NoNewPrivileges
as an old mistake in the kernel that has been now corrected.

This was in 2019 via Debian bug #911152.
Oleksandr Byelkin
new CC 3.3
Daniel Black
MDEV-37899 galera sst generates numerous selinux AVCs when starting

From downstream bug RHEL-116757, the use of ss to map all the
usage of ports to pids and process names under selinux is rather
limited by the mysqld_exec_t limitations.

The checking of the mapping is a bit excessive in a selinux
environment where binding is limited.

We replace the use of ss under selinux to raw reading of the
/proc/tcp{,} interfaces of the linux that aren't selinux restricted.
Sergei Golubchik
MDEV-37835 mysqli silently trims each json_arrayagg result to modulo 64KB

Item_string was always using Type_handler_varchar, even though
varchar only has 2 bytes for the length and Item_string can be longer.
Sergei Golubchik
MDEV-34744 server cannot load client plugins on Debian

symlink client pligins into INSTALL_PLUGINDIR on Debian
Jan Lindström
MDEV-30764 : Assertion `transaction.is_streaming()' failed in void wsrep::transaction::adopt(const wsrep::transaction&)

This is very special case because test first sets
read_only=ON disabling some of the writes. Based
on documentation replication (slave) threads are
not affected by this option. However, threads
executing streaming replication recovery were
effected by read_only setting.

Fix is to set thd->security_ctx->skip_grants()
for streaming replication threads so that
they are not affected by read_only setting.
Sergey Vojtovich
MDEV-37893 - main.public_privileges fails sporadically

Test output was affected by incompletely closed preceding connections.

Make test agnostic to concurrent connections by querying
information_schema.processlist only for connections that it uses.
Dave Gosselin
MDEV-35816 ASAN use-after-poison in st_select_lex::print

For prepared statements with derived tables defined by CTEs, and
during second execution, there is a dangling pointer to an instance
of a JOIN object that no longer exists.

Normally, the join member of a SELECT_LEX is freed during a call to
st_select_lex::cleanup() which recursively traverses the query tree.
But due to CTE merging during mysql_derived_merge, the unit containing
the SELECT_LEX that would've been freed is cutoff from the query tree.

We now remember all such units in a linked list so that they're
cleaned up at the end of the lifetime of the query.
Alexey Botchkov
MDEV-26540 Spider: Assertion `inited==RND' failed in handler::ha_rnd_end on DELETE.

The ha_partition::direct_delete_rows() only calls file->ha_rnd_init() if
the rnd_seq is on. (that is when it's the first call to
the direct_update_rows() with RND scan). So don't call the ::ha_rnd_end() if
rnd_seq isn't set.
Alexey Botchkov
MDEV-31766 SIGSEGV in maria_rtree_split_page | maria_rtree_add_key.

Raise an error when UPDATE with the bad spatial object.