[MDEV-26755] innodb.undo_truncate: ilink::assert_linked(): Assertion `prev != 0 && next != 0' failed. Created: 2021-10-04 Updated: 2022-07-27 Resolved: 2021-11-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | Server |
| Affects Version/s: | 10.2, 10.3, 10.4 |
| Fix Version/s: | 10.2.42, 10.3.33, 10.4.23 |
| Type: | Bug | Priority: | Major |
| Reporter: | Marko Mäkelä | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | not-10.5 | ||
| Issue Links: |
|
||||||||||||||||
| Description |
|
The test innodb.undo_truncate, which in 10.2 is likely affected as well, but the test innodb.undo_truncate is not issuing a slow shutdown (innodb_fast_shutdown=0) there. Here is a sample failure:
|
| Comments |
| Comment by Vladislav Vaintroub [ 2021-10-04 ] | ||||||||||||||||||
|
I'm not sure how can I help in there. This happens since something was modified recently in Innodb. It does not happen with anything else. IF there is a founded suspicion that something (what) does not work, I wholehearteadly welcome this analysis it is not the first time Innodb_fast_shutdown is being used in tests
| ||||||||||||||||||
| Comment by Elena Stepanova [ 2021-10-04 ] | ||||||||||||||||||
|
Various tests have been failing with the same assertion failure for a long time ( | ||||||||||||||||||
| Comment by Marko Mäkelä [ 2021-10-12 ] | ||||||||||||||||||
|
While the tests that have been named in | ||||||||||||||||||
| Comment by Sergei Golubchik [ 2021-11-03 ] | ||||||||||||||||||
|
This is what's happening. The server starts shutting down, it sends a signal to all threads, including thd_destructor_proxy, the latter starts srv_purge_shutdown(). But InnoDB is too busy purging, all workers purge something and don't react immediately. The server does this:
But in this test it's not enough and the server starts unlinking threads one by one (with threads.get()) and forcibly close their open connections. InnoDB threads have no connection to close, but they're unlinked too, and that triggers an assert when they finally detect the shutdown request and try to unlink, asserting first that they're still linked. |