Details
-
Bug
-
Status: Open (View Workflow)
-
Major
-
Resolution: Unresolved
-
10.5, 10.6, 10.11, 11.4
Description
The test innodb.innodb_buffer_pool_resize crashes rather often due to various reasons, partly related to the adaptive hash index:
innodb.innodb_buffer_pool_resize w40 [ fail ]
|
Test ended at 2024-11-07 23:41:31
|
CURRENT_TEST: innodb.innodb_buffer_pool_resize
|
mysqltest: At line 53: query 'select count(val) from t1' failed: <Unknown> (2013): Lost connection to server during query
|
…
|
2024-11-07 23:41:28 0 [Note] InnoDB: withdrew 67 blocks from free list. Tried to relocate 1459 pages (1949/1949)
|
2024-11-07 23:41:28 0 [Note] InnoDB: withdrawn target: 1949 blocks
|
2024-11-07 23:41:28 0 [Note] InnoDB: Latching whole of buffer pool.
|
2024-11-07 23:41:28 0 [Note] InnoDB: buffer pool resizing with chunks 2 to 1.
|
2024-11-07 23:41:28 0 [Note] InnoDB: 1 chunks (1949 blocks) were freed.
|
2024-11-07 23:41:28 0 [Note] InnoDB: Completed to resize buffer pool from 16777216 to 8388608.
|
2024-11-07 23:41:28 0 [Note] InnoDB: Re-enabled adaptive hash index.
|
2024-11-07 23:41:28 0 [Note] InnoDB: Completed resizing buffer pool at 241107 23:41:28.
|
2024-11-07 23:41:30 0x7fe7137ff700 InnoDB: Assertion failure in file /home/buildbot/amd64-debian-11-msan-clang-16/build/storage/innobase/btr/btr0sea.cc line 1010
|
InnoDB: Failing assertion: offs < chunk->size
|
Without looking deeper at this test, I was suspecting that the following might fix this in my MDEV-35049 development branch, but it was not the case:
diff --git a/storage/innobase/btr/btr0sea.cc b/storage/innobase/btr/btr0sea.cc
|
index 39e87067a1e..8eee78018c9 100644
|
--- a/storage/innobase/btr/btr0sea.cc
|
+++ b/storage/innobase/btr/btr0sea.cc
|
@@ -387,7 +387,7 @@ void btr_sea::enable(bool resize) noexcept
|
if (!resize)
|
{
|
mysql_mutex_lock(&buf_pool.mutex);
|
- bool changed= srv_buf_pool_old_size != srv_buf_pool_size;
|
+ bool changed= buf_pool.n_chunks_new != buf_pool.n_chunks;
|
mysql_mutex_unlock(&buf_pool.mutex);
|
if (changed)
|
return; |
The change would seem to align better with the following in buf_pool_t::resize():
mysql_mutex_lock(&mutex);
|
ut_ad(n_chunks_new == n_chunks);
|
ut_ad(UT_LIST_GET_LEN(withdraw) == 0);
|
|
n_chunks_new = (new_instance_size << srv_page_size_shift)
|
/ srv_buf_pool_chunk_unit;
|
curr_size = n_chunks_new * chunks->size;
|
mysql_mutex_unlock(&mutex);
|
I have not been able to reproduce this under rr record. This reproduces rather well under an MSAN debug build, but I see that other types of builds can reproduce it as well, including non-debug builds. Here is one 10.5 failure, crashing somewhere related to ROW_FORMAT=COMPRESSED block relocation:
CURRENT_TEST: innodb.innodb_buffer_pool_resize
|
mysqltest: In included file "./include/wait_condition.inc":
|
included from /home/jenkins/workspace/Source-Build-Test/src/mysql-test/suite/innodb/t/innodb_buffer_pool_resize.test at line 66:
|
At line 54: query 'let $success= `$wait_condition`' failed with wrong errno 2013: 'Lost connection to MySQL server during query', instead of 0...
|
…
|
2024-10-11 1:31:21 0 [Note] InnoDB: Withdrawing blocks to be shrunken.
|
2024-10-11 1:31:21 0 [Note] InnoDB: start to withdraw the last 3764 blocks
|
mariadbd: /home/jenkins/workspace/Source-Build-Test/src/storage/innobase/buf/buf0buddy.cc:522: bool buf_buddy_relocate(void*, void*, ulint, bool): Assertion `bpage->id() == page_id' failed.
|
Attachments
Issue Links
- relates to
-
MDEV-29445 reorganise innodb buffer pool (and remove buffer pool chunks)
- Stalled
-
MDEV-20487 Set innodb_adaptive_hash_index=OFF by default
- Closed
-
MDEV-35049 fix innodb-adaptive-hash-index scalability with multiple threads
- In Review