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

void row_purge_del_mark_error(const btr_cur_t&, const dtuple_t&): Assertion `0' failed

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      Bug found while testing 10.11-MDEV-36159

      Leads to :-

      GIT_SHOW: HEAD -> 10.11-MDEV-36159, origin/10.11-MDEV-36159 cd54039f8576dbaccb462b42fe187fb936738b69 2025-08-01T14:49:02+05:30

      # 2025-08-04T07:45:38 [705250] | mariadbd: /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:777: void row_purge_del_mark_error(const btr_cur_t&, const dtuple_t&): Assertion `0' failed.
      

      StackTrace

      # 2025-08-04T07:48:18 [705250] Thread 1 (Thread 0x7fea237ff640 (LWP 715926)):
      # 2025-08-04T07:48:18 [705250] #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140643594663488) at ./nptl/pthread_kill.c:44
      # 2025-08-04T07:48:18 [705250] #1  __pthread_kill_internal (signo=6, threadid=140643594663488) at ./nptl/pthread_kill.c:78
      # 2025-08-04T07:48:18 [705250] #2  __GI___pthread_kill (threadid=140643594663488, signo=6) at ./nptl/pthread_kill.c:89
      # 2025-08-04T07:48:18 [705250] #3  0x0000556ce3eec956 in my_write_core (sig=6) at /data/Server/10.11-MDEV-36159/mysys/stacktrace.c:424
      # 2025-08-04T07:48:18 [705250] #4  0x0000556ce36a8b9c in handle_fatal_signal (sig=6) at /data/Server/10.11-MDEV-36159/sql/signal_handler.cc:298
      # 2025-08-04T07:48:18 [705250] #5  <signal handler called>
      # 2025-08-04T07:48:18 [705250] #6  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140643594663488) at ./nptl/pthread_kill.c:44
      # 2025-08-04T07:48:18 [705250] #7  __pthread_kill_internal (signo=6, threadid=140643594663488) at ./nptl/pthread_kill.c:78
      # 2025-08-04T07:48:18 [705250] #8  __GI___pthread_kill (threadid=140643594663488, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
      # 2025-08-04T07:48:18 [705250] #9  0x00007fea3f8ed476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      # 2025-08-04T07:48:18 [705250] #10 0x00007fea3f8d37f3 in __GI_abort () at ./stdlib/abort.c:79
      # 2025-08-04T07:48:18 [705250] #11 0x00007fea3f8d371b in __assert_fail_base (fmt=0x7fea3fa88130 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0x556ce42c3b63 "0", file=0x556ce4394860 "/data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc", line=777, function=<optimized out>) at ./assert/assert.c:92
      # 2025-08-04T07:48:18 [705250] #12 0x00007fea3f8e4e96 in __GI___assert_fail (assertion=0x556ce42c3b63 "0", file=0x556ce4394860 "/data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc", line=777, function=0x556ce43950d8 "void row_purge_del_mark_error(const btr_cur_t&, const dtuple_t&)") at ./assert/assert.c:101
      # 2025-08-04T07:48:18 [705250] #13 0x0000556ce3c1bf0c in row_purge_del_mark_error (cursor=..., entry=...) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:777
      # 2025-08-04T07:48:18 [705250] #14 0x0000556ce3c1c916 in row_purge_remove_sec_if_poss_leaf (node=node@entry=0x556ce688fed0, index=index@entry=0x7fe9e05b3ab0, entry=entry@entry=0x7fea18011b70) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:952
      # 2025-08-04T07:48:18 [705250] #15 0x0000556ce3c1ce8f in row_purge_remove_sec_if_poss (entry=0x7fea18011b70, index=0x7fe9e05b3ab0, node=0x556ce688fed0) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:1027
      # 2025-08-04T07:48:18 [705250] #16 row_purge_del_mark (node=node@entry=0x556ce688fed0) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:1062
      # 2025-08-04T07:48:18 [705250] #17 0x0000556ce3c1f574 in row_purge_record_func (node=node@entry=0x556ce688fed0, undo_rec=undo_rec@entry=0x7fea361f0168 "\001\224\016\002\025", thr=thr@entry=0x556ce688fe30, updated_extern=<optimized out>) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:1565
      # 2025-08-04T07:48:18 [705250] #18 0x0000556ce3c1fae8 in row_purge (node=node@entry=0x556ce688fed0, undo_rec=undo_rec@entry=0x7fea361f0168 "\001\224\016\002\025", thr=thr@entry=0x556ce688fe30) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:1626
      # 2025-08-04T07:48:18 [705250] #19 0x0000556ce3c1fcaf in row_purge_step (thr=thr@entry=0x556ce688fe30) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:1689
      # 2025-08-04T07:48:18 [705250] #20 0x0000556ce3b7ca2e in que_thr_step (thr=thr@entry=0x556ce688fe30) at /data/Server/10.11-MDEV-36159/storage/innobase/que/que0que.cc:553
      # 2025-08-04T07:48:18 [705250] #21 0x0000556ce3b7cce8 in que_run_threads_low (thr=thr@entry=0x556ce688fe30) at /data/Server/10.11-MDEV-36159/storage/innobase/que/que0que.cc:609
      # 2025-08-04T07:48:18 [705250] #22 0x0000556ce3b7cdaf in que_run_threads (thr=thr@entry=0x556ce688fe30) at /data/Server/10.11-MDEV-36159/storage/innobase/que/que0que.cc:629
      # 2025-08-04T07:48:18 [705250] #23 0x0000556ce3c6e0fc in srv_task_execute () at /data/Server/10.11-MDEV-36159/storage/innobase/srv/srv0srv.cc:1440
      # 2025-08-04T07:48:18 [705250] #24 0x0000556ce3c6e28a in srv_purge_worker_task_low () at /data/Server/10.11-MDEV-36159/storage/innobase/srv/srv0srv.cc:1571
      # 2025-08-04T07:48:18 [705250] #25 0x0000556ce3c6e5ed in purge_worker_callback () at /data/Server/10.11-MDEV-36159/storage/innobase/srv/srv0srv.cc:1582
      # 2025-08-04T07:48:18 [705250] #26 0x0000556ce3e826a6 in tpool::task_group::execute (this=0x556ce54797c0 <purge_task_group>, t=t@entry=0x556ce545ac80 <purge_worker_task>) at /data/Server/10.11-MDEV-36159/tpool/task_group.cc:70
      # 2025-08-04T07:48:18 [705250] #27 0x0000556ce3e82a65 in tpool::task::execute (this=0x556ce545ac80 <purge_worker_task>) at /data/Server/10.11-MDEV-36159/tpool/task.cc:32
      # 2025-08-04T07:48:18 [705250] #28 0x0000556ce3e7f0d7 in tpool::thread_pool_generic::worker_main (this=0x556ce67c0f20, thread_var=0x556ce67c13e0) at /data/Server/10.11-MDEV-36159/tpool/tpool_generic.cc:566
      # 2025-08-04T07:48:18 [705250] #29 0x0000556ce3e7f326 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++/11/bits/invoke.h:74
      # 2025-08-04T07:48:18 [705250] #30 std::__invoke<void (tpool::thread_pool_generic::*)(tpool::worker_data*), tpool::thread_pool_generic*, tpool::worker_data*> (__fn=<optimized out>) at /usr/include/c++/11/bits/invoke.h:96
      # 2025-08-04T07:48:18 [705250] #31 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++/11/bits/std_thread.h:259
      # 2025-08-04T07:48:18 [705250] #32 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++/11/bits/std_thread.h:266
      # 2025-08-04T07:48:18 [705250] #33 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++/11/bits/std_thread.h:211
      # 2025-08-04T07:48:18 [705250] #34 0x00007fea3fcb9253 in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
      # 2025-08-04T07:48:18 [705250] #35 0x00007fea3f93fac3 in start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      # 2025-08-04T07:48:18 [705250] #36 0x00007fea3f9d1850 in clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:81
       
       
      gdb) frame 14
      #14 0x0000556ce3c1c916 in row_purge_remove_sec_if_poss_leaf (node=node@entry=0x556ce688fed0, index=index@entry=0x7fe9e05b3ab0, entry=entry@entry=0x7fea18011b70) at /data/Server/10.11-MDEV-36159/storage/innobase/row/row0purge.cc:952
      952                                     row_purge_del_mark_error(pcur.btr_cur, *entry);
      (gdb)  p index
      $1 = (dict_index_t *) 0x7fe9e05b3ab0
      (gdb)  p index->table
      $2 = (dict_table_t *) 0x7fe9e0598670
      (gdb) p index->table->name
      $3 = {m_name = 0x7fe9e05a41a0 "test/t2"}
      (gdb) set $t = (dict_table_t *) 0x7fe9e0598670
      (gdb) p *$t
      $4 = {id = 21, id_hash = 0x0, name = {m_name = 0x7fe9e05a41a0 "test/t2"}, name_hash = 0x0, heap = 0x7fe9e05a2f60, data_dir_path = 0x0, space = 0x7fe9e0598940, space_id = 8, flags = 41, flags2 = 80, skip_alter_undo = 0, file_unreadable = 0, cached = 1, 
        n_def = 9, n_cols = 9, n_t_cols = 9, n_t_def = 9, n_v_def = 0, n_v_cols = 0, persistent_autoinc = 0, can_be_evicted = 1, corrupted = 0, drop_aborted = 0, cols = 0x7fe9e05a93c0, v_cols = 0x7fe9e05a94e0, s_cols = 0x0, instant = 0x0, 
        col_names = 0x7fe9e05a9538 "col1", v_col_names = 0x0, vers_start = 0, vers_end = 0, is_system_db = false, dict_frm_mismatch = DICT_FRM_CONSISTENT, fts_doc_id_index = 0x0, indexes = {count = 2, start = 0x7fe9e05aa160, end = 0x7fe9e05b3ab0, node = 
      /build/gdb-ZgDh0V/gdb-12.1/gdb/gdbtypes.h:690: internal-error: loc_bitpos: Assertion `m_loc_kind == FIELD_LOC_KIND_BITPOS' failed.
      A problem internal to GDB has been detected,
      further debugging may prove unreliable.
      

      This core dump was generated on Pluto and it is present here:-
      /data/results/1754292261/TBR-2017

      Attachments

        Issue Links

          Activity

            People

              marko Marko Mäkelä
              saahil Saahil Alam
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:

                Git Integration

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