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 Petrunia
Add comment about Debug_key.
Marko Mäkelä
MDEV-11426 fixup: Remove fil_node_t::init_size

The field fil_node_t::init_size that had been added in
mysql/mysql-server@38e3aa74d8d2bf882863d9586ad8c9e9ed2c4f00
should have been removed in 0b66d3f70d365bbb936aae4ca67892c17d68d241.
Thirunarayanan Balathandayuthapani
MDEV-38412 System tablespace fails to shrink due to legacy tables

Problem:
========
InnoDB system tablespace autoshrink can fail when legacy tables exist
in the system tablespace (space_id=0). These are typically old tables
from earlier InnoDB versions that doesn't have '/' character in the
table name.

Solution:
=========
During system tablespace autoshrinking, InnoDB now proactively drops
unknown/legacy tables that meet the following criteria:
- Table name does not contain '/'
- Table is not an InnoDB system table. In that case, delete the
record from system tables.

drop_tables_by_filter(): Scan and drop tables by predicate
- Used this function to drop the garbage table during restore
- drop the unknown tables from system tablespace

- Added DBUG_EXECUTE_IF("create_dummy_sys_tables") for testing
the scenario.

This cleanup happens automatically before the autoshrink operation,
preventing failures and allowing the system tablespace to be properly
truncated.
Thirunarayanan Balathandayuthapani
MDEV-38412 System tablespace fails to shrink due to legacy tables

Problem:
========
InnoDB system tablespace autoshrink can fail when legacy tables exist
in the system tablespace (space_id=0). These are typically old tables
from earlier InnoDB versions that doesn't have '/' character in the
table name.

Solution:
=========
During system tablespace autoshrinking, InnoDB now proactively drops
unknown/legacy tables that meet the following criteria:
- Table name does not contain '/'
- Table is not an InnoDB system table. In that case, delete the
record from system tables.

drop_tables_by_filter(): Scan and drop tables by predicate
- Used this function to drop the garbage table during restore
- drop the unknown tables from system tablespace

- Added DBUG_EXECUTE_IF("create_dummy_sys_tables") for testing
the scenario.

This cleanup happens automatically before the autoshrink operation,
preventing failures and allowing the system tablespace to be properly
truncated.
Marko Mäkelä
Merge MDEV-37949 fixup
Alexey Botchkov
MDEV-39124 XMLTYPE: allow only well-formed XML.

Necessary checks added to the XMLTYPE.
Yuchen Pei
MDEV-38179 sysvars tracker: lock only when needed

Lock LOCK_plugin only when the variable is a plugin variable.
Lock LOCK_global_system_variables only when the variable is a
global-only variable or a plugin variable.

Also fix lockless session value for Sys_var_multi_source_ulonglong.

This saves 54 calls to pthread_mutex_lock when constructing the
initial OK packet.

The added testcases do not show the lock savings. They are there to
improve coverage for the MDEV-31609 feature, in light of bugs like
MDEV-39207 and MDEV-39217.
Marko Mäkelä
MDEV-16926 fixup: GCC 16 -Wmaybe-uninitialized

Year::year_precision(): Make static, so that VYear::VYear
and VYear_op::VYear_op() will avoid invoking this function with
an unnecessary "this" pointer to an uninitialized object.
Marko Mäkelä
Merge
Mohammad Tafzeel Shams
MDEV-22186: Add innodb_buffer_pool_in_core_dump to exclude InnoDB buffer pool from cores

Problem:
There is no control to include or exclude large InnoDB buffer pool from
core files, which can lead to unnecessarily large core dumps or prevent
capturing useful memory state.

Solution:
Introduce a new global dynamic system variable innodb_buffer_pool_in_core_dump
that allows excluding InnoDB buffer pool from core dumps using MADV_DONTDUMP
where supported. When enabled the server marks relevant memory regions to be
omitted from core files. The madvise state is dynamically updated when the
variable changes.

This variable is only available on Linux & FreeBSD.

Additionally, a test helper script is introduced to inspect
/proc/<pid>/smaps and verify whether large memory regions are marked
for trimming.

- innodb_buffer_pool_in_core_dump
  Global boolean system variable controlling whether InnoDB buffer
  pool should be excluded from core dumps.
  Default: OFF on non-debug builds with MADV_DONTDUMP support,
  ON otherwise.

- innodb_buffer_pool_in_core_dump_update()
  Update hook that sets innodb_buffer_pool_in_core_dump and triggers runtime
  updates of madvise state for the buffer pool.

- buf_pool_t::in_core_dump
  Variable backing @@innodb_buffer_pool_in_core_dump.

- buf_pool_t::core_advise()
  Advises MADV_DONTDUMP or MADV_DODUMP according to latest
  innodb_buffer_pool_in_core_dump value.

- buf_pool_t::create()
  Updates madvise flag to the buffer pool memory based on
  innodb_buffer_pool_in_core_dump.
  Also moves the mutex initialization at the beginiing of function.

- buf_pool_t::resize()
  Updates the madvise flag for buffer pool to keep it in sync with
  the innodb_buffer_pool_in_core_dump.

- check_core_dump_trim.inc
  Test helper that inspects /proc/<pid>/smaps to detect memory regions
  with the dd VmFlag and determine whether the core file is expected
  to be trimmed based on buffer pool and log buffer sizes.
Yuchen Pei
MDEV-38179 Lock system_variables_hash outside of find_sys_var in Session_sysvars_tracker::vars_list::parse_var_list

This saves 10 calls to pthread_mutex_lock when constructing the
initial OK packet for the default session_track_system_variables which
has 6 variables

Also added a testcase showing there's no need to worry about wildcard
session_track_system_variables as it causes construction of empty
string in the initial OK packet.
Lawrin Novitsky
Added UBSAN error suppression file
Marko Mäkelä
MDEV-39225 Assertion failures with innodb_log_file_size>4g

This fixes up 076a99e1189e737120f1628854177c5942e96c89 (MDEV-37949).
In the memory-mapped log writing code path we were wrongly assuming
that innodb_log_file_size cannot exceed 4GiB. This assumption only
holds for innodb_log_archive=ON.
Alexey Botchkov
Progress report
        31.03.26
Lawrin Novitsky
Added UBSAN error suppression file

atm it suppresses ubsan errors coming from c/c
Thirunarayanan Balathandayuthapani
MDEV-38412 System tablespace fails to shrink due to legacy tables

Problem:
========
InnoDB system tablespace autoshrink can fail when legacy tables exist
in the system tablespace (space_id=0). These are typically old tables
from earlier InnoDB versions that doesn't have '/' character in the
table name.

Solution:
=========
During system tablespace autoshrinking, InnoDB now proactively drops
unknown/legacy tables that meet the following criteria:
- Table name does not contain '/'
- Table is not an InnoDB system table. In that case, delete the
record from system tables.

drop_tables_by_filter(): Scan and drop tables by predicate
- Used this function to drop the garbage table during restore
- drop the unknown tables from system tablespace

- Added DBUG_EXECUTE_IF("create_dummy_sys_tables") for testing
the scenario.

This cleanup happens automatically before the autoshrink operation,
preventing failures and allowing the system tablespace to be properly
truncated.
Marko Mäkelä
Fix conflicts between backup and innodb_log_file_size, innodb_log_archive
Raghunandan Bhat
MDEV-31284: SIGSEGV in VDec2_lazy::VDec2_lazy | Item_func_plus::decimal_op

Problem:
  When a query contains large number arithmatic operations (e.g.
  addition) on numbers, it can trigger deep recursion leading to a stack
  overrun and crashing the server. Currently, the server checks for
  stack overruns only during `fix_fileds` time and not during the
  execution of the query.

Fix:
  Introduces a stack overrun check druing the execution of query to
  prevent crash during the execution time.
ShenLin
MDEV-39041: Execute permissions required to make dh_link execute this to expand $DEB_HOST_MULTIARCH
Marko Mäkelä
MDEV-16926 fixup: GCC 16 -Wmaybe-uninitialized

Year::year_precision(): Make static, so that VYear::VYear
and VYear_op::VYear_op() will avoid invoking this function with
an unnecessary "this" pointer to an uninitialized object.
Michal Schorm
MDEV-18359, MDEV-26905: Fix invalid XML in charsets Index.xml

Summary:
The charset definition files sql/share/charsets/Index.xml and
mysql-test/std_data/ldml/Index.xml contained duplicate "flag" attributes
on single <collation> elements, violating XML well-formedness rules.
Standard XML parsers (xmllint, libxml2, etc.) reject duplicate attributes,
making these files unparseable by any spec-compliant tool.

Root Cause:
When nopad_bin collations were added, their flags were specified as
XML attributes: flag="binary" flag="nopad". The XML specification
(Section 3.1, Well-Formedness Constraint: Unique Att Spec) prohibits
duplicate attribute names on a single element. MariaDB's custom XML
parser in strings/xml.c happened to process both duplicates because
it handles attributes sequentially in a while loop, but this is
non-standard behavior that breaks interoperability with standard
XML tooling.

What the patch does:
Converts all 24 occurrences of duplicate flag attributes from
self-closing elements with duplicate attributes to elements with
child <flag> nodes. This follows the existing pattern already used
by many collations in the same file (e.g., big5_chinese_ci,
latin1_swedish_ci, utf8mb3_general_ci).

Before (invalid XML):
  <collation name="latin2_nopad_bin" id="1101" flag="binary" flag="nopad"/>

After (valid XML):
  <collation name="latin2_nopad_bin" id="1101">
    <flag>binary</flag>
    <flag>nopad</flag>
  </collation>

No C code changes are required. The _CS_FLAG handler in
strings/ctype.c (around line 621) already processes <flag> child
elements using bitwise OR (|=) to accumulate flags, so both "binary"
(MY_CS_BINSORT) and "nopad" (MY_CS_NOPAD) flags are correctly applied.

Files modified:
- sql/share/charsets/Index.xml (23 collations fixed)
- mysql-test/std_data/ldml/Index.xml (1 collation fixed)

Complete list of 24 collations fixed:

sql/share/charsets/Index.xml:
1. latin2_nopad_bin    (id=1101)
2. dec8_nopad_bin      (id=1093)
3. cp850_nopad_bin      (id=1104)
4. hp8_nopad_bin        (id=1096)
5. koi8r_nopad_bin      (id=1098)
6. swe7_nopad_bin      (id=1106)
7. ascii_nopad_bin      (id=1089)
8. cp1251_nopad_bin    (id=1074)
9. hebrew_nopad_bin    (id=1095)
10. latin7_nopad_bin    (id=1103)
11. koi8u_nopad_bin      (id=1099)
12. greek_nopad_bin      (id=1094)
13. cp1250_nopad_bin    (id=1090)
14. cp1257_nopad_bin    (id=1082)
15. latin5_nopad_bin    (id=1102)
16. armscii8_nopad_bin  (id=1088)
17. cp866_nopad_bin      (id=1092)
18. keybcs2_nopad_bin    (id=1097)
19. macce_nopad_bin      (id=1067)
20. macroman_nopad_bin  (id=1077)
21. cp852_nopad_bin      (id=1105)
22. cp1256_nopad_bin    (id=1091)
23. geostd8_nopad_bin    (id=1117)

mysql-test/std_data/ldml/Index.xml:
24. ascii2_nopad_bin    (id=325)

Validation:
- xmllint --noout passes cleanly on both files after the fix
- Zero duplicate flag attributes remain (verified with grep)
- The fix is consistent with the existing pattern used by other
  collations in the same files

Co-Authored-By: Claude AI <[email protected]>
Thirunarayanan Balathandayuthapani
MDEV-24356 InnoDB: Failing assertion: len < sizeof(tmp_buff) in get_foreign_key_info

get_foreign_key_info(): Changed tmp_buff size from NAME_LEN+1
to MAX_DATABASE_NAME_LEN+1 to accommodate encoded database names.
The buffer stores the database name extracted from
referenced_table_name and foreign_table_name, which can contain
encoded special characters (In this case dots encoded as @002e).
With encoding, database names can exceed NAME_LEN (64 bytes) even
if the logical name is within limits.
Raghunandan Bhat
MDEV-38562: `mariabackup` exits with success (0) despite "No space left on device" errors

Problem:
  `mariabackup` ignores `my_close()` failures, resulting in false
  success report with a 'completed OK!' message.

Fix:
  Update `local_close()` function in `mariabackup` to check `my_close()`
  failures and enusre errors are reported.
Sergei Petrunia
MDEV-38753: Debugging help: print which MEM_ROOT the object is on

Add two functions intended for use from debugger:
  bool dbug_is_mem_on_mem_root(MEM_ROOT *mem_root, void *ptr);
  const char *dbug_which_mem_root(THD *thd, void *ptr);

Also, collect declarations of all other functions intended for use
from debugger in sql/sql_test.h
Sergei Golubchik
let's be explicit about what abs() to use

fixes main.mysqltest_string_functions failure on centos7
with gcc 4.8.5
Marko Mäkelä
Merge 10.6 into 10.11
forkfun
MDEV-36183 mariadb-dump backup corrupt if stored procedure ends with comment

When a stored procedure, trigger, or event ends with a line comment (#comment
or --comment), mariadb-dump would append the custom delimiter (;;) on the same line.
This caused the comment to "comment out" the delimiter, leading to syntax errors
during restoration.

Fixed by ensuring a newline is inserted before the delimiter in the dump output.
Aquila Macedo
MDEV-39082 mysql-test: use vardir as datadir in collect_mysqld_features

collect_mysqld_features probes mariadbd with --datadir=., which can
point to the installed mysql-test tree.

During this probe, mariadbd may run the datadir case-sensitivity check
and try to create a *.lower-test file there. This is a bad fit when the
test suite is run from a read-only installed path (e.g. /usr/share/...).

Use $opt_vardir as the datadir for this probe instead, so it runs in a
writable location and avoids writes into the installed test tree.
Lawrin Novitsky
Merge branch 'odbc-3.1'
forkfun
MDEV-32770 mariadb-dump produces not loadable dump due to temporary view structure

When mariadb-dump produces a dump, it first creates a temporary placeholder for views
to satisfy potential dependencies before their actual creation later in the dump file.
Previously, these views were populated with int literals for their columns (1 AS `col_name`).
This could cause syntax or type-resolution errors during restoration if another view depended
on this placeholder view.

This commit changes the placeholder column values from 1 to NULL, as it is more permissive
and allowing the dump to be restored successfully.
Lawrin Novitsky
Merge branch 'odbc-3.1'
Alexander Barkov
MDEV-38933 Implement basic low level functions for DBMS_SQL

Adding SYS_REFCURSOR methods:
- id()
- attach()
- detach()

Adding non-DBMS_SQL-specific function plugins (pseudo-procedures):
- SQL.BIND_PARAM_BY_NAME(ps_name, pos, value)
- SQL.COLUMN_VALUE(sys_refcursor_id, pos, dst)

Adding DBMS_SQL-specific function plugins (pseduo-procedures)
- DBMS_SQL.BIND_VARIABLE(dbms_sql_cursor_id, pos, value)
- DBMS_SQL.COLUMN_VALUE(dbms_sql_cursor_id, pos, value)