[MDEV-27016] mysqld: storage/innobase/buf/buf0flu.cc:965: page_id_t buf_flush_check_neighbors(const fil_space_t&, page_id_t&, bool, bool): Assertion `id.page_no() < space.size' failed. Created: 2021-11-10  Updated: 2021-11-26  Resolved: 2021-11-16

Status: Closed
Project: MariaDB Server
Component/s: Storage Engine - InnoDB
Affects Version/s: 10.5.13, 10.6.5
Fix Version/s: 10.5.14, 10.6.6, 10.7.2

Type: Bug Priority: Major
Reporter: Matthias Leich Assignee: Marko Mäkelä
Resolution: Fixed Votes: 0
Labels: rr-profile

Issue Links:
Blocks
Problem/Incident
is caused by MDEV-26537 InnoDB corrupts files due to incorrec... Closed

 Description   

origin/bb-10.6-marko d65cd831692d57cd14c7b3630a601dc1f492dd96 2021-11-10T12:16:19+02:00    10.6.6
but also observed on a bit older development tree like
origin/bb-10.5-marko 716f04a40f225af11fa88e793441da96dd0ddf21 2021-09-10T11:28:14+03:00
 
Workflow
1. Start the server and generate some initial data
2. Several sessions run a DDL/DML mix
3. During 2. is ongoing SIGKILL the server process
4. Restart attempt
and that could fail with
# 2021-11-10T11:31:26 [1798871] | [rr 1934929 12418]mysqld: /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:965: page_id_t buf_flush_check_neighbors(const fil_space_t&, page_id_t&, bool, bool): Assertion `id.page_no() < space.size' failed.
# 2021-11-10T11:31:26 [1798871] | [rr 1934929 12440]211110 11:30:39 [rr 1934929 12442][ERROR] mysqld got signal 6 ;
 
(rr) bt
#0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
#1  0x000021673bead859 in __GI_abort () at abort.c:79
#2  0x000021673bead729 in __assert_fail_base (fmt=0x21673c043588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55d483f296c0 "id.page_no() < space.size", file=0x55d483f27500 "/data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc", line=965, 
    function=<optimized out>) at assert.c:92
#3  0x000021673bebef36 in __GI___assert_fail (assertion=0x55d483f296c0 "id.page_no() < space.size", file=0x55d483f27500 "/data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc", line=965, 
    function=0x55d483f29700 "page_id_t buf_flush_check_neighbors(const fil_space_t&, page_id_t&, bool, bool)") at assert.c:101
#4  0x000055d482bf7f8a in buf_flush_check_neighbors (space=..., id=..., contiguous=true, lru=false) at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:965
#5  0x000055d482bf925b in buf_flush_try_neighbors (space=0x612000023140, page_id=..., contiguous=true, lru=false, n_flushed=292, n_to_flush=2000) at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:1084
#6  0x000055d482bfc1c7 in buf_do_flush_list_batch (max_n=2000, lsn=90991129) at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:1434
#7  0x000055d482bfc759 in buf_flush_list (max_n=2000, lsn=90991129) at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:1501
#8  0x000055d482bfef73 in buf_flush_sync_for_checkpoint (lsn=90991129) at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:1904
#9  0x000055d482c01683 in buf_flush_page_cleaner () at /data/Server/bb-10.6-markoO/storage/innobase/buf/buf0flu.cc:2170
#10 0x000055d482c08c7c in std::__invoke_impl<void, void (*)()> (__f=@0x6020000002d8: 0x55d482c012db <buf_flush_page_cleaner()>) at /usr/include/c++/9/bits/invoke.h:60
#11 0x000055d482c08bb8 in std::__invoke<void (*)()> (__fn=@0x6020000002d8: 0x55d482c012db <buf_flush_page_cleaner()>) at /usr/include/c++/9/bits/invoke.h:95
#12 0x000055d482c08ade in std::thread::_Invoker<std::tuple<void (*)()> >::_M_invoke<0ul> (this=0x6020000002d8) at /usr/include/c++/9/thread:244
#13 0x000055d482c08a5f in std::thread::_Invoker<std::tuple<void (*)()> >::operator() (this=0x6020000002d8) at /usr/include/c++/9/thread:251
#14 0x000055d482c089c4 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)()> > >::_M_run (this=0x6020000002d0) at /usr/include/c++/9/thread:195
#15 0x0000777f75c68d84 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#16 0x00005cb55e2f0609 in start_thread (arg=<optimized out>) at pthread_create.c:477
#17 0x000021673bfaa293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
(rr)
 
pluto:/data/rqg/results/1636540953/CR-30/dev/shm/rqg/1636540953/154/1/rr
 
RQG
====
# git clone https://github.com/mleich1/rqg --branch experimental RQG
#
# GIT_SHOW: HEAD -> experimental 5d964598d1a7eb7957b1afa9b5950ef927803070 2021-10-29T15:21:01+02:00
# rqg.pl  : Version 4.0.2 (2021-10)
#
# $RQG_HOME/rqg1.pl \
# --grammar=conf/mariadb/innodb_compression_encryption.yy \
# --gendata=conf/mariadb/innodb_compression_encryption.zz \
# --max_gd_duration=1800 \
# --reporters=CrashRecovery1 \
# --mysqld=--loose-innodb_lock_schedule_algorithm=fcfs \
# --mysqld=--loose-idle_write_transaction_timeout=0 \
# --mysqld=--loose-idle_transaction_timeout=0 \
# --mysqld=--loose-idle_readonly_transaction_timeout=0 \
# --mysqld=--connect_timeout=60 \
# --mysqld=--interactive_timeout=28800 \
# --mysqld=--slave_net_timeout=60 \
# --mysqld=--net_read_timeout=30 \
# --mysqld=--net_write_timeout=60 \
# --mysqld=--loose-table_lock_wait_timeout=50 \
# --mysqld=--wait_timeout=28800 \
# --mysqld=--lock-wait-timeout=86400 \
# --mysqld=--innodb-lock-wait-timeout=50 \
# --no-mask \
# --queries=10000000 \
# --seed=random \
# --reporters=Backtrace \
# --reporters=ErrorLog \
# --reporters=Deadlock1 \
# --validators=None \
# --mysqld=--log_output=none \
# --mysqld=--log_bin_trust_function_creators=1 \
# --mysqld=--loose-debug_assert_on_not_freed_memory=0 \
# --engine=InnoDB \
# --restart_timeout=240 \
# --mysqld=--plugin-load-add=file_key_management.so \
# --mysqld=--loose-file-key-management-filename=$RQG_HOME/conf/mariadb/encryption_keys.txt \
# --duration=300 \
# --mysqld=--loose-innodb_fatal_semaphore_wait_threshold=300 \
# --mysqld=--loose-innodb_read_only_compressed=OFF \
# --mysqld=--innodb_stats_persistent=off \
# --mysqld=--innodb_adaptive_hash_index=on \
# --mysqld=--loose-innodb_evict_tables_on_commit_debug=off \
# --mysqld=--loose-max-statement-time=30 \
# --threads=1 \
# --mysqld=--innodb-use-native-aio=0 \
# --rr=Extended \
# --rr_options=--chaos --wait \
# --vardir_type=fast \
# --mysqld=--innodb_page_size=4K \
# --mysqld=--innodb-buffer-pool-size=256M \
# --no_mask \
# <certain local settings>


Generated at Thu Feb 08 09:49:41 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.