Bug #114654 when pstress,mysqld crash Assertion failure: buf0lru.cc:2168 thread 281472055363
Submitted: 16 Apr 13:13 Modified: 16 Apr 13:46
Reporter: zongkun lei Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S2 (Serious)
Version:8.0.32 OS:Any
Assigned to: CPU Architecture:Any
Tags: crash

[16 Apr 13:13] zongkun lei
Description:
error:

2024-03-21T15:00:38.355213Z 0 [ERROR] [MY-013183] [InnoDB] Assertion failure: buf0lru.cc:2168 thread 281472055363392
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/8.0/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
2024-03-21T15:00:38Z UTC - mysqld got signal 6 ;
Most likely, you have hit a bug, but this error can also be caused by malfunctioning hardware.
BuildID[sha1]=bd9a52fa10e7d433cf8b3f5a843a0a78e99d60c7
Thread pointer: 0xffff53c09000
Attempting backtrace. You can use the following information to find out
where mysqld died. If you see no messages after this, something went
terribly wrong...
stack_bottom = ffff51dfbe30 thread_stack 0x100000
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(my_print_stacktrace(unsigned char const*, unsigned long)+0x44) [0x225ac04]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(print_fatal_signal(int)+0x35c) [0xf15abc]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(my_server_abort()+0x80) [0xf15c40]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(my_abort()+0x14) [0x2255bb4]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(ut_dbg_assertion_failed(char const*, char const*, unsigned long)+0x2a0) [0x2542b50]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld() [0xc70d40]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(buf_LRU_free_one_page(buf_page_t*, bool)+0x1c) [0x25bb1fc]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(buf_read_page_handle_error(buf_page_t*)+0x150) [0x2599730]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(buf_read_page_low(dberr_t*, bool, unsigned long, unsigned long, page_id_t const&, page_size_t const&, bool)+0x2bc) [0xc72afc]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(buf_read_ibuf_merge_pages(bool, unsigned int const*, unsigned int const*, unsigned long)+0xfc) [0x25bb81c]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld() [0x2403778]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(ibuf_merge_in_background(bool)+0xd4) [0x2400314]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(srv_master_thread()+0x1d4) [0x24fbdd4]
/home/Ruby/percona_cr_arm80/sql/bin/mysqld(void Detached_thread::operator()<void (*)()>(void (*&&)())+0x6c) [0x2456d8c]
/home/Ruby/percona_cr_arm80/sql/bin/../lib/libstdc++.so.6(+0xcebcc) [0xffff8b240bcc]
/usr/lib64/libpthread.so.0(+0x87ac) [0xffff8b4d87ac]
/usr/lib64/libc.so.6(+0xd547c) [0xffff8afdb47c]

Trying to get some variables.
Some pointers may be invalid and cause the dump to abort.
Query (0): Connection ID (thread ID): 0
Status: NOT_KILLED

The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
information that should help you find out what is causing the crash.
Writing a core file

 

core:

(gdb) bt
#0  0x0000ffff8b4dfa40 in pthread_kill () from /usr/lib64/libpthread.so.0
#1  0x0000000000f15b9c in handle_fatal_signal () at ../../../sql/signal_handler.cc:239
#2  <signal handler called>
#3  0x0000ffff8af3c470 in raise () from /usr/lib64/libc.so.6
#4  0x0000ffff8af3d81c in abort () from /usr/lib64/libc.so.6
#5  0x0000000000f15d44 in my_server_abort () at ../../../sql/signal_handler.cc:295
#6  0x0000000002255bb4 in my_abort () at ../../../mysys/my_init.cc:259
#7  0x0000000002542b50 in ut_dbg_assertion_failed () at ../../../../storage/innobase/ut/ut0dbg.cc:99
#8  0x0000000000c70d40 in buf_LRU_block_remove_hashed () at ../../../../storage/innobase/buf/buf0lru.cc:2168
#9  0x00000000025bb1fc in buf_LRU_free_one_page () at ../../../../storage/innobase/buf/buf0lru.cc:2337
#10 0x0000000002599730 in buf_read_page_handle_error () at ../../../../storage/innobase/buf/buf0buf.cc:5329
#11 0x0000000000c72afc in buf_read_page_low () at ../../../../storage/innobase/buf/buf0rea.cc:138
#12 0x00000000025bb81c in buf_read_ibuf_merge_pages () at ../../../../storage/innobase/buf/buf0rea.cc:620
#13 0x0000000002403778 in ibuf_merge_pages () at ../../../../storage/innobase/ibuf/ibuf0ibuf.cc:2283
#14 0x0000000002400314 in ibuf_merge () at ../../../../storage/innobase/ibuf/ibuf0ibuf.cc:2371
#15 ibuf_merge_in_background () at ../../../../storage/innobase/ibuf/ibuf0ibuf.cc:2430
#16 0x00000000024fbdd4 in srv_master_do_active_tasks () at ../../../../storage/innobase/srv/srv0srv.cc:2396
#17 srv_master_main_loop () at ../../../../storage/innobase/srv/srv0srv.cc:2764
#18 srv_master_thread () at ../../../../storage/innobase/srv/srv0srv.cc:2818
#19 0x0000000002456d8c in std::__invoke_impl<void, void (*&)()> () at /opt/hw/gcc-10.3/include/c++/10/bits/invoke.h:60
#20 std::__invoke<void (*&)()> () at /opt/hw/gcc-10.3/include/c++/10/bits/invoke.h:95
#21 std::_Bind<void (*())()>::__call<void>(std::tuple<>&&, std::_Index_tuple<>) () at /opt/hw/gcc-10.3/include/c++/10/functional:416
#22 std::_Bind<void (*())()>::operator()<, void>() () at /opt/hw/gcc-10.3/include/c++/10/functional:499
#23 Detached_thread::operator()<void (*)()> () at ../../../../storage/innobase/include/os0thread-create.h:194
#24 0x0000ffff8b240bcc in execute_native_thread_routine () from /home/Ruby/percona_cr_arm80/sql/bin/../lib/libstdc++.so.6
#25 0x0000ffff8b4d87ac in ?? () from /usr/lib64/libpthread.so.0
#26 0x0000ffff8afdb47c in ?? () from /usr/lib64/libc.so.6
(gdb) 

How to repeat:
pstress stress testing
[16 Apr 13:46] MySQL Verification Team
Hi Mr. Lei,

Thank you for your bug report.

This is indeed a bug, but a bug which is already reported and verified.

It is the following bug, which was also replicated under stress conditions:

https://bugs.mysql.com/bug.php?id=104787

That report came with a bug fix, which yet thas to be approved and pushed to some 8.0 release.

Duplicate.