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
Sergei Golubchik
MDEV-39673 group_concat ignores max_allowed_packet

GROUP_CONCAT is limited by group_concat_max_len,
but also, as a string function it must respect max_allowed_packet.

Let's introduce THD::gconcat_max_len() helper to simplify checks.

Also:
* make max group_concat_max_len value the same as max max_allowed_packet
* use the same MY_MIN((ulonglong) ..., UINT_MAX32) in
  Item_func_json_objectagg as in Item_func_group_concat
* use overflow-safe type for lengths in Item_func_quote
  (MAX_MAX_ALLOWED_PACKET is 1G so uint cannot overflow yet, but it's
  a fragile assumption)
Daniel Bartholomew
bump the VERSION
Jan Lindström
MDEV-39685 : galera multi table update crash

This is regression caused by MDEV-28750 commit 1f349968.

In multi-table update table list could contain tables
that are not yet opened because update does not really
change them. This can happen e.g. when update changes
table that is referenced by foreign key by table that
is not part of multi-table update.

Fixed by first checking is wsrep write set size limited.
If it is not multi-table update can continue normally.
If write set size is limited then check has update
updated both transactional and non-transactional tables
and those tables that have not yet been opened can be
safely skipped as they are not updated.
Daniel Bartholomew
bump the VERSION
Hemant Dangi
MDEV-39721: wsrep_notify.cc: reject shell-unsafe characters in joiner-supplied member fields

Issue:
wsrep_notify_status() interpolated members[i].name() (the peer's
wsrep_node_name) and members[i].incoming() verbatim into a command
string that is then executed via 'sh -c' by wsp::process. A peer
joining the cluster with shell metacharacters in its wsrep_node_name
or wsrep_node_incoming_address caused arbitrary commands to run on
every cluster member that had wsrep_notify_cmd configured.
MDEV-39413 introduced safe() for the same threat class in the SST
scripts but did not cover the C++ wsrep_notify path.

Solution:
Validate each substituted field against a narrow whitelist before
interpolating. Node name allows alnum and -_. ; node address
additionally allows :[]/ for host:port and [ipv6] forms. On bad
input the notification is skipped with an error log instead of
forwarding the unsafe value to sh -c.
Sergei Golubchik
Revert "MDEV-17677: Keywords followed by .number parsed as identifiers"

This reverts commit 895b28d6721eadfad0d47723fcc949eae75cf8cf.
Hemant Dangi
MDEV-39648: wsrep_sst_rsync.sh: apply safe() to joiner-supplied parameters

Issue:
wsrep_sst_rsync.sh interpolated WSREP_SST_OPT_REMOTE_USER and
WSREP_SST_OPT_REMOTE_PSWD verbatim. Because both values originate from
the joiner side of the SST request, a newline in either could splice
an extra directive into the donor-written stunnel.conf (silently
downgrading peer-cert verification) or an extra line into the rsync
magic file. MDEV-39413 had introduced safe() for the same threat class
in wsrep_sst_mariabackup but did not extend it to the rsync script.

Solution:
Routing the rsync interpolations through safe() closes the gap, and
extending safe() to also reject tab and newline ensures multi-line
values cannot survive into a config-file heredoc.
Sergei Petrunia
main.subselect: add --disable_replay next_query Dont support user variables
Sergei Golubchik
MDEV-39564 One-byte OOB write in PROXY protocol v1 header parser
Sergei Golubchik
Merge branch '10.11' into 11.4
Sergei Golubchik
strengthen safe() in wsrep_sst_common, just in case
Sergei Golubchik
MDEV-39676 disallow global.wsrep_sst_donor=NULL again

it crashes in galera.mdev-28433
Daniel Black
MDEV-39831 mtr: under rr use LSAN_OPTIONS=report_objects

When we have a rr recording of the process, a memory location
is a useful thing to have in the err log of leaks.

The output comes out like:

Direct leak of 40 byte(s) in 1 object(s) allocated from:
    #0 0x55b08dbccdb8 in malloc (/build/sql/mariadbd+0x1b89db8) (BuildId: 4d72569bed63ce1fbf55d51e4d4a84b610efd87d)
    #1 0x7b3fe387a1b1  (<unknown module>)
    #2 0x7b3fe37c492f  (<unknown module>)
    #3 0x7b3fe3058407  (<unknown module>)
    #4 0x7b3fe2f09493  (<unknown module>)

Objects leaked above:
0x7b7feafe0990 (40 bytes)

Now once the location is resolved we can check that we resolving the
right object leak.
bsrikanth-mariadb
Add group_concat_max_len to opt_related_sys_vars list

Fixes main.subselect_mat
Sergei Petrunia
myisam_explain_non_select_all: add --disable_replay testfile ... counters

nearly all tests examine Handler counters after the query.
Sergei Golubchik
MDEV-39581 dynamic column header missing sanity checks
Sergei Petrunia
Fix mtr --replay-server main.delete_use_source

The problem was with multi-table DELETE deleting from a const table.
const table was saved into the context but no columns were printed,
despite that the query's WHERE had references to them.

The cause was format_and_store_row() which found lock_type to be
TL_WRITE and so checked table->write_set, which was empty.

Fixed by making to check both read and write set.

The only other user of row printing seems to be DBUG_PRINT messages.
Mohammad Tafzeel Shams
MDEV-38305: Expose adaptive hash index statistics in ANALYZE FORMAT=JSON

Expose InnoDB's Adaptive Hash Index (AHI) statistics through ANALYZE
FORMAT=JSON output and global status variables to provide query-level
and system-level visibility into AHI usage and effectiveness.
This allows DBAs and developers to monitor how well
the adaptive hash index is serving their workloads on a per-query basis.

The r_ahi_stats object (nested inside r_engine_stats) now reports four
key metrics: ahi_searches (successful AHI lookups), ahi_searches_btree
(AHI misses requiring B-tree fallback), ahi_rows_added (rows inserted
into AHI), and ahi_pages_added (pages indexed by AHI). These same
metrics are exposed globally via innodb_status_variables.

Transaction-local tracking eliminates contention by accumulating
statistics in trx_t fields (n_sea, n_non_sea, n_ahi_rows_added,
n_ahi_pages_added) and aggregating them into global atomic counters
(btr_cur_n_sea, btr_cur_n_non_sea, btr_ahi_n_rows_added,
btr_ahi_n_pages_added) during trx_t::commit_cleanup() and trx_t::free(),
following the pattern established for buf_pool.stat.n_page_gets.

- btr_ahi_inc_searches(): Increment trx->n_sea when AHI lookup succeeds.
- btr_ahi_inc_searches_btree(): Increment trx->n_non_sea when AHI lookup
  fails and falls back to B-tree search.
- btr_ahi_inc_rows_added(): Increment trx->n_ahi_rows_added when rows
  are added to the adaptive hash index structure.
- btr_ahi_inc_pages_added(): Increment trx->n_ahi_pages_added when new
  pages are indexed by AHI.
- btr_cur_t::search_leaf(): Call btr_ahi_inc_searches() on successful
  AHI hit and btr_ahi_inc_searches_btree() on AHI miss.
- btr_cur_n_sea, btr_cur_n_non_sea: Replace sharded ib_counter_t with simple
  atomic counters.
- MONITOR_OVLD_ADAPTIVE_HASH_ROW_ADDED, MONITOR_OVLD_ADAPTIVE_HASH_PAGE_ADDED:
  Convert monitor counters to "overload" type that read from global atomic
  counters btr_ahi_n_rows_added and btr_ahi_n_pages_added respectively instead
  of maintaining separate statistics.
- trace_engine_stats(): Output r_ahi_stats object with all four AHI
  counters in JSON format when any AHI activity is detected during query
  execution.
- ha_handler_stats: Added ahi_searches, ahi_searches_btree, ahi_rows_added,
  and ahi_pages_added fields to track per-query AHI statistics.
- Add mtr parameter to btr_search_move_or_delete_hash_entries(),
  btr_cur_t::search_info_update(), btr_search_update_hash_on_insert(),
  btr_search_update_hash_ref(), btr_search_info_update_hash(), and
  btr_search_build_page_hash_index() to allow updating AHI statistics.
- ahi_stats.test: Comprehensive verification of AHI statistics reporting
  across different scenarios: insufficient accesses (no AHI build),
  threshold triggering (AHI construction), heavy warmup (full AHI
  utilization), and disabled AHI (verify zero statistics).
- check_ahi_status.inc: Reusable include file for executing queries with
  configurable warmup repetitions and extracting AHI statistics from
  ANALYZE FORMAT=JSON output using JSON path expressions.
bsrikanth-mariadb
main.stat_tables: add --disable_replay next_query for corrupted table
stats
Alexander Barkov
MDEV-39518 Allow prepared statements in stored functions in assignment right hand

In progress
Marko Mäkelä
MDEV-13542 fixup: Remove orphan trx_print()
Sergei Golubchik
fix columnstore for new cmake
Sergei Petrunia
Fix --replay-server main.subselect4

also added a TODO about @@SQL_SELECT_LIMIT
Sergei Golubchik
MDEV-39658 ASAN crash on invalid proxy_protocol_networks value

max_subnet estimate was off by one.

* only allow address with a known family
  (trips an assert in addr_matches_subnet())
* adjust max_subnet estimate accordinly
Jan Lindström
Prepare for Galera library version 26.4.27
Sergei Golubchik
MDEV-39657 ASAN error on malformed WKB point

check data length for Gis_point
Daniel Bartholomew
bump the VERSION
Sergei Golubchik
proxy protocol v2: fix a harmless typo

according to the rfc, the length is 2 bytes,
but the max length is 226 and there's a validity
check for length <= 240.
bsrikanth-mariadb
Add max_heap_table_size to opt_related_sys_vars list

Fixes main.subselect3, and main.subselect3_jcl6
Sergei Golubchik
MDEV-39654 schema-qualified unquoted table name starting with digit fails to parse

add tests
Sergei Petrunia
Fix one problem in mtr --replay-server main.select
Oleksandr Byelkin
Merge branch '11.4' into 11.4 release
Sergei Golubchik
Merge branch '10.6' into 10.11
Sergei Golubchik
MDEV-39292 fix incorrect merge
Sergei Golubchik
MDEV-39565 missing filename check in mariadb-backup --decompress

check for tablename-safe characters in backed up table files
Jan Lindström
MDEV-39676 : Galera Cluster-peer > Donor command execution

Add verification of wsrep_sst_donor, wsrep_sst_method and
wsrep_sst_receive_address so that they contain only
supported characters. But allow NULL or empty value.
Sergei Golubchik
MDEV-39622 OBJECT_INSTANCE_BEGIN in P_S are unstable, difficult to compare

let's show stable values that don't change between runs
Sergei Golubchik
MDEV-39576 PROXY v2 protocol uninitialized memory reads
Jan Lindström
Fix test failure on galera_sst_mariabackup_encrypt_with_key_server

Joiner mariadbd exits when SST is aborted; the exit code varies by
platform (clean 0 on some systems, signalled 134 / 1 on others).

pkill exit code can also vary by platform (clean 0 on some systems,
signalled 1 others).
Daniel Black
MDEV-39831 mtr: extend LSAN_OPTIONS rather than overwrite

Its useful to add own LSAN_OPTIONS like report_objects=1
so lets make sure MTR doesn't overwrite this.