diff options
author | Marko Mäkelä <marko.makela@mariadb.com> | 2023-04-26 12:08:59 +0300 |
---|---|---|
committer | Marko Mäkelä <marko.makela@mariadb.com> | 2023-04-26 12:08:59 +0300 |
commit | 5740638c4c3337a0021a82f5b744afca1ab1346c (patch) | |
tree | 12691dd2b7480491481a4cf6a2ade7478e6305be /mysql-test/main/gis-debug.result | |
parent | d4265fbde587bd79b6fe3793225d3f4798ee955e (diff) | |
download | mariadb-git-5740638c4c3337a0021a82f5b744afca1ab1346c.tar.gz |
MDEV-31132 Deadlock between DDL and purge of InnoDB history
log_free_check(): Assert that the caller must not hold
exclusive lock_sys.latch. This was the case for calls from
ibuf_delete_for_discarded_space(). This caused a deadlock with
another thread that would be holding a latch on a dirty page
that would need to be written so that the checkpoint would advance
and log_free_check() could return. That other thread was waiting
for a shared lock_sys.latch.
fil_delete_tablespace(): Do not invoke ibuf_delete_for_discarded_space()
because in DDL operations, we will be holding exclusive lock_sys.latch.
trx_t::commit(std::vector<pfs_os_file_t>&), innodb_drop_database(),
row_purge_remove_clust_if_poss_low(), row_undo_ins_remove_clust_rec(),
row_discard_tablespace_for_mysql():
Invoke ibuf_delete_for_discarded_space() on the deleted tablespaces after
releasing all latches.
Diffstat (limited to 'mysql-test/main/gis-debug.result')
0 files changed, 0 insertions, 0 deletions