Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-30524

btr_cur_t::open_leaf() opens non-leaf page in BTR_MODIFY_LEAF mode

    XMLWordPrintable

Details

    Description

      Several sessions run random DML and a small amount of DDL.
      # 2023-01-30T18:59:44 [446584] | [rr 449461 404062]mysqld: /data/Server/bb-10.6-MDEV-30479/storage/innobase/rem/rem0rec.cc:898: rec_offs* rec_get_offsets_func(const rec_t*, const dict_index_t*, rec_offs*, ulint, ulint, const char*, unsigned int, mem_heap_t**): Assertion `!is_user_rec || !n_core || index->is_dummy || (index)->is_ibuf() || n == n_fields || (n + (index->id == dict_index_t::DICT_INDEXES_ID) >= n_core)' failed.
      ...
      # 2023-01-30T18:59:44 [446584] | Thread 3 (Thread 449461.465848):
      # 2023-01-30T18:59:44 [446584] | #0  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:50
      # 2023-01-30T18:59:44 [446584] | #1  0x00007f22f8e41859 in __GI_abort () at abort.c:79
      # 2023-01-30T18:59:44 [446584] | #2  0x00007f22f8e41729 in __assert_fail_base (fmt=0x7f22f8fd7588 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x55ed20b3a260 "!is_user_rec || !n_core || index->is_dummy || (index)->is_ibuf() || n == n_fields || (n + (index->id == dict_index_t::DICT_INDEXES_ID) >= n_core)", file=0x55ed20b3b960 "/data/Server/bb-10.6-MDEV-30479/storage/innobase/rem/rem0rec.cc", line=898, function=<optimized out>) at assert.c:92
      # 2023-01-30T18:59:44 [446584] | #3  0x00007f22f8e52f36 in __GI___assert_fail (assertion=assertion@entry=0x55ed20b3a260 "!is_user_rec || !n_core || index->is_dummy || (index)->is_ibuf() || n == n_fields || (n + (index->id == dict_index_t::DICT_INDEXES_ID) >= n_core)", file=file@entry=0x55ed20b3b960 "/data/Server/bb-10.6-MDEV-30479/storage/innobase/rem/rem0rec.cc", line=line@entry=898, function=function@entry=0x55ed20b39f60 "rec_offs* rec_get_offsets_func(const rec_t*, const dict_index_t*, rec_offs*, ulint, ulint, const char*, unsigned int, mem_heap_t**)") at assert.c:101
      # 2023-01-30T18:59:44 [446584] | #4  0x000055ed1fac3712 in rec_get_offsets_func (rec=rec@entry=0x7f22ec100085 "", index=index@entry=0x616003bf6e08, offsets=offsets@entry=0x7f22cdf8ef00, n_core=9, n_fields=n_fields@entry=3, file=file@entry=0x55ed20b7c800 "/data/Server/bb-10.6-MDEV-30479/storage/innobase/row/row0purge.cc", line=662, heap=0x7f22cdf8ec00) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/include/dict0mem.h:1216
      # 2023-01-30T18:59:44 [446584] | #5  0x000055ed1fbc547e in row_purge_reset_trx_id (node=node@entry=0x61a00000abb0, mtr=mtr@entry=0x7f22cdf8f210) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/row/row0purge.cc:662
      # 2023-01-30T18:59:44 [446584] | #6  0x000055ed1fbd215a in row_purge_record_func (node=node@entry=0x61a00000abb0, undo_rec=undo_rec@entry=0x621000050f50 "", thr=thr@entry=0x61a00000ab08, updated_extern=<optimized out>) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/row/row0purge.cc:1206
      # 2023-01-30T18:59:44 [446584] | #7  0x000055ed1fbd29a3 in row_purge (node=node@entry=0x61a00000abb0, undo_rec=undo_rec@entry=0x621000050f50 "", thr=thr@entry=0x61a00000ab08) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/row/row0purge.cc:1250
      # 2023-01-30T18:59:44 [446584] | #8  0x000055ed1fbd32bf in row_purge_step (thr=thr@entry=0x61a00000ab08) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/row/row0purge.cc:1313
      # 2023-01-30T18:59:44 [446584] | #9  0x000055ed1fa92d59 in que_thr_step (thr=0x61a00000ab08) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/que/que0que.cc:597
      # 2023-01-30T18:59:44 [446584] | #10 que_run_threads_low (thr=thr@entry=0x61a00000ab08) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/que/que0que.cc:653
      # 2023-01-30T18:59:44 [446584] | #11 0x000055ed1fa930c7 in que_run_threads (thr=thr@entry=0x61a00000ab08) at /data/Server/bb-10.6-MDEV-30479/storage/innobase/que/que0que.cc:673
      # 2023-01-30T18:59:44 [446584] | #12 0x000055ed1fc7bb6e in srv_task_execute () at /data/Server/bb-10.6-MDEV-30479/storage/innobase/srv/srv0srv.cc:1641
      # 2023-01-30T18:59:44 [446584] | #13 0x000055ed1fc7bd61 in purge_worker_callback () at /data/Server/bb-10.6-MDEV-30479/storage/innobase/srv/srv0srv.cc:1884
      # 2023-01-30T18:59:44 [446584] | #14 0x000055ed2013228b in tpool::task_group::execute (this=0x55ed221a1100 <purge_task_group>, t=t@entry=0x55ed221a1040 <purge_worker_task>) at /data/Server/bb-10.6-MDEV-30479/tpool/task_group.cc:55
      # 2023-01-30T18:59:44 [446584] | #15 0x000055ed201324ff in tpool::task::execute (this=0x55ed221a1040 <purge_worker_task>) at /data/Server/bb-10.6-MDEV-30479/tpool/task.cc:32
      # 2023-01-30T18:59:44 [446584] | #16 0x000055ed20129608 in tpool::thread_pool_generic::worker_main (this=0x618000000880, thread_var=0x630000010680) at /data/Server/bb-10.6-MDEV-30479/tpool/tpool_generic.cc:576
      # 2023-01-30T18:59:44 [446584] | #17 0x000055ed2012c9a4 in std::__invoke_impl<void, void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__t=<optimized out>, __f=<optimized out>) at /usr/include/c++/9/bits/invoke.h:89
      # 2023-01-30T18:59:44 [446584] | #18 std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=<optimized out>) at /usr/include/c++/9/bits/invoke.h:95
      # 2023-01-30T18:59:44 [446584] | #19 std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::_M_invoke<0ul, 1ul, 2ul> (this=<optimized out>) at /usr/include/c++/9/thread:244
      # 2023-01-30T18:59:44 [446584] | #20 std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> >::operator() (this=<optimized out>) at /usr/include/c++/9/thread:251
      # 2023-01-30T18:59:44 [446584] | #21 std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> > >::_M_run (this=<optimized out>) at /usr/include/c++/9/thread:195
      # 2023-01-30T18:59:44 [446584] | #22 0x00007f22f924ede4 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      # 2023-01-30T18:59:44 [446584] | #23 0x00007f22f9369609 in start_thread (arg=<optimized out>) at pthread_create.c:477
      # 2023-01-30T18:59:44 [446584] | #24 0x00007f22f8f3e293 in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
       
      pluto:/data/results/1675094794/TBR-1777$ _RR_TRACE_DIR=./1/rr/ rr replay --mark-stdio
       
      origin/bb-10.6-MDEV-30479 3769e514904ca1c7d96d08fe9527317c60a521b5 2023-01-30T10:36:08+02:00
      Per Marko we have that problem in the main trees too.
       
      RQG
      ===
      # git clone https://github.com/mleich1/rqg --branch <pick the right branch> RQG
      #
      # GIT_SHOW: HEAD -> master, origin/master, origin/HEAD 624894590f3b4e59919b9c621783265b584e5482 2023-01-30T17:12:10+01:00
      # rqg.pl  : Version 4.2.1 (2022-12)
      #
      # $RQG_HOME/rqg.pl \
      # --grammar=conf/mariadb/table_stress_innodb_dml.yy \
      # --gendata=conf/mariadb/table_stress.zz \
      # --gendata_sql=conf/mariadb/table_stress.sql \
      # --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=Deadlock \
      # --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 \
      # --mysqld=--plugin-load-add=provider_lzo.so \
      # --mysqld=--plugin-load-add=provider_bzip2.so \
      # --mysqld=--plugin-load-add=provider_lzma.so \
      # --mysqld=--plugin-load-add=provider_snappy.so \
      # --mysqld=--plugin-load-add=provider_lz4.so \
      # --duration=300 \
      # --mysqld=--loose-innodb_fatal_semaphore_wait_threshold=300 \
      # --mysqld=--innodb_file_per_table=1 \
      # --mysqld=--loose-innodb_read_only_compressed=OFF \
      # --mysqld=--innodb_stats_persistent=off \
      # --mysqld=--innodb_adaptive_hash_index=on \
      # --mysqld=--innodb_sort_buffer_size=65536 \
      # --mysqld=--log-bin \
      # --mysqld=--sync-binlog=1 \
      # --mysqld=--loose-innodb_evict_tables_on_commit_debug=off \
      # --mysqld=--loose-max-statement-time=30 \
      # --threads=33 \
      # --mysqld=--innodb-use-native-aio=0 \
      # --mysqld=--loose-gdb \
      # --mysqld=--loose-debug-gdb \
      # --rr=Extended \
      # --rr_options=--wait \
      # --mysqld=--loose_innodb_change_buffering=purges \
      # --mysqld=--innodb_rollback_on_timeout=OFF \
      # --mysqld=--innodb_page_size=64K \
      # --mysqld=--innodb-buffer-pool-size=24M \
      # <local settings>
      

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              mleich Matthias Leich
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.