maria:bb-10.5-MDEV-24845-galera

Last commit made on 2022-03-02
Get this branch:
git clone -b bb-10.5-MDEV-24845-galera https://git.launchpad.net/maria

Branch merges

Branch information

Name:
bb-10.5-MDEV-24845-galera
Repository:
lp:maria

Recent commits

1002f9c... by Jan Lindström

MDEV-24845 : Oddities around innodb_fatal_semaphore_wait_threshold and global.innodb_disallow_writes

We will remove variable innodb_disallow_writes because it is badly
designed and implemented. Parameter will be marked as removed.

Instead we will be using
* Galera provider is paused i.e. all commits will wait
* FLUSH TABLES WITH READ LOCK (FTWRL) to avoid any DDL during SST
* We set max_dirty_pages_pct to 0.0 to flush all dirty pages from buffer pool
* We force flushing all dirty pages from buffer pool and force InnoDB checkpoint
* We set max_dirty_pagec_pct to 99.9 to avoid flushing any pages
* We set server to read-only
* Encryption, purge and FTS-optimize threads will acquire MDL_BACKUP_DML
before continuing. This will conflict with lock acquired in FTWRL.
Note that we will not use waiting. If MDL-lock can't be acquired
we will skip the operation.

xtrabackup.cc
  Remove INNODB_DISALLOW_WRITES code

handler.cc
handler.h
  Add new API function ha_force_checkpoint to force checkpoint
  inside InnoDB.

mysqld.cc
  Mark innodb-disallow-writes variable as removed.

sql_class.cc
  New functions to get and release backup lock.

wsrep_sst.cc
  Add functions to set innodb_max_dirty_pages_pct,
  innodb_max_dirty_pages_pct_lwm and read_only.
  We set them as 0.0 and then call new API function
  to force buffer pool flush and full checkpoint.
  After it has finished, we set them as 99.9.

fil0crypt.cc
fil_crypt_start_encrypting_space()
fil_crypt_thread()
  Acquire backup lock and release it afte we have done

fts0opt.cc
fts_optimize_sync_table()
fts_optimize_callback()
  Acquire backup lock and release it afte we have done

ha_innodb.cc
  Remove all WITH_INNODB_DISALLOW_WRITES code
wsrep_force_checkpoint()
  New API function to flush dirty pages from buffer pool and
  force full checkpoint.

trx_purge,cc
trx_purge()
  Acquire and release global MDL_BACKUP_DML lock

a1965b8... by Sergey Petrunia

Make testcase for MDEV-26585 stable.

a710016... by Marko Mäkelä

MDEV-27967 Assertion !buf_pool.any_io_pending() failed

The test innodb.log_file_size would occasionally crash in
a debug assertion failure in srv_prepare_to_delete_redo_log_file().
In the core dump, the assertion would hold.

buf_pool_t::any_io_pending(): Avoid dirty reads by acquiring
buf_pool.mutex. This function is only being invoked in debug builds,
so we do not care about any performance impact.

9af4c7c... by Marko Mäkelä

MDEV-27964: A better work-around

Already the detection part of have_crypt.inc must be skipped
in WITH_MSAN builds until the SIGSEGV in the crypt() interceptor
has been fixed.

72437cb... by Monty <email address hidden>

Fixed sporadic error in main.backup_locks

The follwoing could happen if InnoDB did some background work while
test was running:

@@ -5,6 +5,8 @@
 SELECT LOCK_MODE, LOCK_TYPE, TABLE_SCHEMA, TABLE_NAME FROM information_schema.metadata_lock_info;
 LOCK_MODE LOCK_TYPE TABLE_SCHEMA TABLE_NAME
 MDL_SHARED_HIGH_PRIO Table metadata lock test t1
+MDL_SHARED Table metadata lock mysql innodb_table_stats
+MDL_SHARED Table metadata lock mysql innodb_index_stat

bc02005... by Marko Mäkelä

MDEV-27964: Work around SIGSEGV in WITH_MSAN builds

We will move all tests of the ENCRYPT() function to the test
main.func_crypt, which will be disabled in MSAN builds for now.

08d39bd... by Marko Mäkelä

Merge fixup: -Wconversion

In merge cc1d90621139eb04cdc9d65650b4718344db2425 the 32-bit builds
were broken.

13076bd... by Marko Mäkelä

Avoid some failures WITH_MSAN

cc1d906... by Marko Mäkelä

Merge 10.4 into 10.5

3c58cdd... by Marko Mäkelä

Merge 10.3 into 10.4