Details
-
Bug
-
Status: Closed (View Workflow)
-
Critical
-
Resolution: Fixed
-
10.6, 10.11, 11.0(EOL), 11.1(EOL), 11.2, 11.3(EOL), 11.4
Description
The test encryption.innochecksum very often hangs, timing out in 900 seconds (15 minutes). I found it while working on MDEV-29445, but I see that the test fails also in other branches. The following (refining something that was modified in MDEV-33053) would fix the hang for me:
diff --git a/storage/innobase/buf/buf0lru.cc b/storage/innobase/buf/buf0lru.cc
|
index 5ecaa513f41..fa833d96476 100644
|
--- a/storage/innobase/buf/buf0lru.cc
|
+++ b/storage/innobase/buf/buf0lru.cc
|
@@ -449,24 +449,18 @@ buf_block_t *buf_LRU_get_free_block(bool have_mutex)
|
goto got_block;
|
}
|
const bool wake = buf_pool.need_LRU_eviction();
|
- mysql_mutex_unlock(&buf_pool.mutex);
|
mysql_mutex_lock(&buf_pool.flush_list_mutex);
|
- const auto n_flush = buf_pool.n_flush();
|
if (wake && !buf_pool.page_cleaner_active()) {
|
buf_pool.page_cleaner_wakeup(true);
|
}
|
mysql_mutex_unlock(&buf_pool.flush_list_mutex);
|
- mysql_mutex_lock(&buf_pool.mutex);
|
- if (!n_flush) {
|
- goto not_found;
|
- }
|
- if (!buf_pool.try_LRU_scan) {
|
+ if (wake) {
|
my_cond_wait(&buf_pool.done_free,
|
&buf_pool.mutex.m_mutex);
|
}
|
}
|
|
-not_found:
|
+ IF_DBUG(not_found:,);
|
if (n_iterations > 1) {
|
MONITOR_INC( MONITOR_LRU_GET_FREE_WAITS );
|
} |
It looks like this hang was introduced in MDEV-26827. The above fix would depend on the fix of MDEV-33053.
Attachments
Issue Links
- causes
-
MDEV-34803 innodb_lru_flush_size configuration is no longer used
- Closed
- is caused by
-
MDEV-26827 Make page flushing even faster
- Closed
- relates to
-
MDEV-33797 MariaDB hangs intermittently
- Closed
-
MDEV-35409 InnoDB can still hang while running out of buffer pool
- Stalled
-
MDEV-28052 test main.implicit_commit crashed on sparc64
- Closed
-
MDEV-32588 InnoDB may hang when running out of buffer pool
- Closed
-
MDEV-33053 InnoDB LRU flushing does not run before running out of buffer pool
- Closed
- mentioned in
-
Page Loading...