MDEV-21500 Server hang when using simulated AIO
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 would never happen, because nothing is waking up the simulated AIO handler threads. This hang appears to have been introduced in MySQL 5.6.12 in mysql/mysql-server@26cfde776c.
This commit is contained in:
parent
23041af720
commit
bde7e0ba6e
@ -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 @@ try_again:
|
||||
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 @@ try_again:
|
||||
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;
|
||||
|
@ -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 @@ try_again:
|
||||
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;
|
||||
}
|
||||
@ -1112,6 +1113,7 @@ try_again:
|
||||
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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user