maria:bb-10.5-mdev-31117-merge

Last commit made on 2023-08-23
Get this branch:
git clone -b bb-10.5-mdev-31117-merge https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.5-mdev-31117-merge
Repository:
lp:maria

Recent commits

bcb5c31... by Yuchen Pei <email address hidden>

[after merge changes] MDEV-31117 Fix spider connection info parsing

9124a8b... by Yuchen Pei <email address hidden>

[state after merge] MDEV-31117 Fix spider connection info parsing

Spider connection string is a comma-separated parameter definitions,
where each definition is of the form "<param_title> <param_value>",
where <param_value> is quote delimited on both ends, with backslashes
acting as an escaping prefix.

Despite the simple syntax, the existing spider connection string
parser was poorly-written, complex, hard to reason and error-prone,
causing issues like the one described in MDEV-31117. For example it
treated param title the same way as param value when assigning, and
have nonsensical fields like delim_title_len and delim_title.

Thus as part of the bugfix, we clean up the spider comment connection
string parsing, including:

- Factoring out some code from the parsing function
- Simplify the struct `st_spider_param_string_parse`
- And any necessary changes caused by the above changes

f9cc298... by Marko Mäkelä

Merge 10.4 into 10.5

ff682ea... by Marko Mäkelä

MDEV-20194 test adjustment for s390x

The test innodb.row_size_error_log_warnings_3 that was added in
commit 372b0e6355fbb6b7dc490b64da13e784c09aeec8 (MDEV-20194)
failed to take into account the earlier adjustment in
commit cf574cf53b168992b911d5fc32c590a6ee03a56a (MDEV-27634)
that is specific to many GNU/Linux distributions for the s390x.

c062b35... by Oleksandr "Sanja" Byelkin

Make vgdb call more universal.

be5fd3e... by Marko Mäkelä

Remove a stale comment

buf_LRU_block_remove_hashed(): Remove a comment that had been added
in mysql/mysql-server@aad1c7d0dd8a152ef6bb685356c68ad9978d686a
and apparently referring to buf_LRU_invalidate_tablespace(),
which was later replaced with buf_LRU_flush_or_remove_pages() and
ultimately with buf_flush_remove_pages() and buf_flush_list_space().
All that code is covered by buf_pool.mutex. The note about releasing
the hash_lock for the buf_pool.page_hash slice would actually apply to
the last reference to hash_lock in buf_LRU_free_page(), for the
case zip=false (retaining a ROW_FORMAT=COMPRESSED page while
discarding the uncompressed one).

5895a36... by Marko Mäkelä

Merge 10.4 into 10.5

5a8a8fc... by Marko Mäkelä

MDEV-31928 Assertion xid ... < 128 failed in trx_undo_write_xid()

trx_undo_write_xid(): Correct an off-by-one error in a debug assertion.

518fe51... by Marko Mäkelä

MDEV-31254 InnoDB: Trying to read doublewrite buffer page

buf_read_page_low(): Remove an error message that could be triggered
by buf_read_ahead_linear() or buf_read_ahead_random().

This is a backport of commit c9eff1a144ba44846373660a30d342d3f0dc91a5
from MariaDB Server 10.5.

44df6f3... by Marko Mäkelä

MDEV-31875 ROW_FORMAT=COMPRESSED table: InnoDB: ... Only 0 bytes read

buf_read_ahead_random(), buf_read_ahead_linear(): Avoid read-ahead
of the last page(s) of ROW_FORMAT=COMPRESSED tablespaces that use
a page size of 1024 or 2048 bytes. We invoke os_file_set_size() on
integer multiples of 4096 bytes in order to be compatible with
the requirements of innodb_flush_method=O_DIRECT regardless of the
physical block size of the underlying storage.

This change must be null-merged to MariaDB Server 10.5 and later.
There, out-of-bounds read-ahead should be handled gracefully
by simply discarding the buffer page that had been allocated.

Tested by: Matthias Leich