MDEV-21564 Assert in trx_purge_add_update_undo_to_history during shutdown

- dict_table_try_drop_aborted() can generate undo logs. So it should
be avoided after shutdown of background threads.
parent d89bb886
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2016, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc. Copyright (c) 2012, Facebook Inc.
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 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 the terms of the GNU General Public License as published by the Free Software
...@@ -604,7 +604,10 @@ dict_table_close( ...@@ -604,7 +604,10 @@ dict_table_close(
mutex_exit(&dict_sys->mutex); mutex_exit(&dict_sys->mutex);
if (drop_aborted) { /* dict_table_try_drop_aborted() can generate undo logs.
So it should be avoided after shutdown of background
threads */
if (drop_aborted && !srv_undo_sources) {
dict_table_try_drop_aborted(NULL, table_id, 0); dict_table_try_drop_aborted(NULL, table_id, 0);
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved. Copyright (c) 1996, 2017, Oracle and/or its affiliates. All Rights Reserved.
Copyright (c) 2012, Facebook Inc. Copyright (c) 2012, Facebook Inc.
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 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 the terms of the GNU General Public License as published by the Free Software
...@@ -604,7 +604,10 @@ dict_table_close( ...@@ -604,7 +604,10 @@ dict_table_close(
mutex_exit(&dict_sys->mutex); mutex_exit(&dict_sys->mutex);
if (drop_aborted) { /* dict_table_try_drop_aborted() can generate undo logs.
So it should be avoided after shutdown of background
threads */
if (drop_aborted && srv_undo_sources) {
dict_table_try_drop_aborted(NULL, table_id, 0); dict_table_try_drop_aborted(NULL, table_id, 0);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment