mariadb/storage/innobase
Marko Mäkelä 2db5f1b298 MDEV-32049 Deadlock due to log_free_check() in trx_purge_truncate_history()
The function log_free_check() is not supposed to be invoked while
the caller is holding any InnoDB synchronization objects, such as
buffer page latches, tablespace latches, index tree latches, or
in this case, rseg->mutex (rseg->latch in 10.6 or later).

A hang was reported in 10.6 where several threads were waiting for
an rseg->latch that had been exclusively acquired in
trx_purge_truncate_history(), which invoked log_free_check() inside
trx_purge_truncate_rseg_history(). Because the threads that were
waiting for the rseg->latch were holding exclusive latches on some
index pages, log_free_check() was unable to advance the checkpoint
because those index pages could not be written out.

trx_purge_truncate_history(): Invoke log_free_check() before
acquiring the rseg->mutex and invoking trx_purge_free_segment().

trx_purge_free_segment(): Do not invoke log_free_check() in order
to avoid a deadlock.
2023-08-31 12:14:49 +03:00
..
btr Merge commit '10.4' into 10.5 2023-07-20 11:54:52 +02:00
buf Remove a stale comment 2023-08-21 13:28:12 +03:00
data Merge 10.4 into 10.5 2022-10-25 11:26:37 +03:00
dict MDEV-30936 clang 15.0.7 -fsanitize=memory fails massively 2023-03-28 11:44:24 +03:00
eval
fil MDEV-31568 InnoDB protection against dual processes accessing data insufficient 2023-07-05 15:15:04 +03:00
fsp MDEV-32028 InnoDB scrubbing doesn't write zero while freeing the extent 2023-08-28 20:27:19 +05:30
fts Merge branch '10.4' into 10.5 2023-04-24 12:43:47 +02:00
fut
gis Merge 10.4 into 10.5 2022-10-25 11:26:37 +03:00
ha
handler Merge 10.4 into 10.5 2023-08-24 10:12:13 +03:00
ibuf Merge branch '10.4' into 10.5 2023-04-24 12:43:47 +02:00
include Merge branch '10.4' into 10.5 2023-07-26 16:02:57 +02:00
lock Merge 10.4 into 10.5 2023-08-15 18:02:18 +02:00
log MDEV-31487: Recovery or backup failure after innodb_undo_log_truncate=ON 2023-06-27 09:12:38 +03:00
mem
mtr MDEV-30438 innodb.undo_truncate,4k fails when innodb-immediate-scrub-data-uncompressed is enabled 2023-01-23 09:55:49 +05:30
mysql-test/storage_engine
os Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
page Merge remote-tracking branch '10.4' into 10.5 2023-03-31 21:32:41 +02:00
pars Merge 10.4 into 10.5 2021-11-09 08:50:33 +02:00
que MDEV-30936 clang 15.0.7 -fsanitize=memory fails massively 2023-03-28 11:44:24 +03:00
read Merge branch '10.3' into 10.4 2021-07-31 22:59:58 +02:00
rem Fix WITH_UBSAN GCC -Wconversion 2023-06-28 17:07:00 +03:00
row Merge branch '10.4' into 10.5 2023-08-01 11:52:13 +02:00
srv Merge 10.4 into 10.5 2023-08-24 10:12:13 +03:00
sync Merge 10.4 into 10.5 2022-04-21 15:33:50 +03:00
trx MDEV-32049 Deadlock due to log_free_check() in trx_purge_truncate_history() 2023-08-31 12:14:49 +03:00
unittest MDEV-19522 fixup: Use correct printf format 2021-10-21 15:53:35 +03:00
ut Cleanup: Say "mariadbd" instead of "mysqld" in InnoDB messages 2022-11-22 15:32:47 +02:00
.clang-format-old
bzip2.cmake Add feature summary at the end of cmake. 2021-07-21 10:22:56 +03:00
CMakeLists.txt Merge 10.4 into 10.5 2023-02-10 12:02:11 +02:00
compile-innodb
COPYING.Google
COPYING.Percona
lz4.cmake Add feature summary at the end of cmake. 2021-07-21 10:22:56 +03:00
lzma.cmake Add feature summary at the end of cmake. 2021-07-21 10:22:56 +03:00
lzo.cmake Add feature summary at the end of cmake. 2021-07-21 10:22:56 +03:00
snappy.cmake Add feature summary at the end of cmake. 2021-07-21 10:22:56 +03:00