Details
-
Bug
-
Status: Closed (View Workflow)
-
Major
-
Resolution: Fixed
-
10.0(EOL), 10.1(EOL), 10.2(EOL), 10.3(EOL), 10.4(EOL), 10.5
Description
The write-heavy test innodb_zip.wl6501_scale_1 timed out on 10.2 60d7011c5f6ebda057d3e730c6f67519a1fb7f0c for me. Out of os_aio_n_segments=6, 5 are waiting for an event in os_aio_simulated_handler(). One thread is waiting for a write to complete in buf_dblwr_add_to_batch(), but that will never happen, because nothing is waking up the simulated AIO handler threads. The following patch should fix it:
diff --git a/storage/innobase/buf/buf0dblwr.cc b/storage/innobase/buf/buf0dblwr.cc
|
index 36054dbf9fe..32b4399b41d 100644
|
--- a/storage/innobase/buf/buf0dblwr.cc
|
+++ b/storage/innobase/buf/buf0dblwr.cc
|
@@ -1,7 +1,7 @@
|
/*****************************************************************************
|
|
Copyright (c) 1995, 2017, Oracle and/or its affiliates. All Rights Reserved.
|
-Copyright (c) 2013, 2019, MariaDB Corporation.
|
+Copyright (c) 2013, 2020, MariaDB Corporation.
|
|
This program is free software; you can redistribute it and/or modify it under
|
the terms of the GNU General Public License as published by the Free Software
|
@@ -963,6 +963,7 @@ buf_dblwr_flush_buffered_writes(void)
|
ib_int64_t sig_count = os_event_reset(buf_dblwr->b_event);
|
mutex_exit(&buf_dblwr->mutex);
|
|
+ os_aio_simulated_wake_handler_threads();
|
os_event_wait_low(buf_dblwr->b_event, sig_count);
|
goto try_again;
|
}
|
@@ -1096,6 +1097,7 @@ buf_dblwr_add_to_batch(
|
checkpoint. */
|
ib_int64_t sig_count = os_event_reset(buf_dblwr->b_event);
|
mutex_exit(&buf_dblwr->mutex);
|
+ os_aio_simulated_wake_handler_threads();
|
|
os_event_wait_low(buf_dblwr->b_event, sig_count);
|
goto try_again; |
(And the same for XtraDB in 10.1.)
This hang appears to have been introduced in MySQL 5.6.12.