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

void srw_mutex_impl<spinloop>::destroy() [with bool spinloop = false]: Assertion `!is_locked_or_waiting()' failed

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      Assertion found on debug build
      Leads to:-

      10.11, origin/bb-10.11-MDEV-26115, origin/10.11 852e4510fa662c571a42f550278d4abd09e3c5cf 2025-07-23T09:34:47+07:00

      # 2025-08-06T17:34:54 [2219174] | mariadbd: /data/Server/10.11_new/storage/innobase/include/srw_lock.h:136: void srw_mutex_impl<spinloop>::destroy() [with bool spinloop = false]: Assertion `!is_locked_or_waiting()' failed.
      

      Statcktrace

      hread 3 received signal SIGABRT, Aborted.
      [Switching to Thread 2225410.2227034]
      __pthread_kill_implementation (no_tid=0, signo=6, threadid=80738176673344) at ./nptl/pthread_kill.c:44
      44      ./nptl/pthread_kill.c: No such file or directory.
      (rr) set print addr off
      (rr) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=80738176673344) at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=80738176673344) at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=80738176673344, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
      #3  __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
      #4  __GI_abort () at ./stdlib/abort.c:79
      #5  __assert_fail_base (fmt="%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion="!is_locked_or_waiting()", file="/data/Server/10.11_new/storage/innobase/include/srw_lock.h", line=136, function=<optimized out>)
          at ./assert/assert.c:92
      #6  __GI___assert_fail (assertion="!is_locked_or_waiting()", file="/data/Server/10.11_new/storage/innobase/include/srw_lock.h", line=136, function="void srw_mutex_impl<spinloop>::destroy() [with bool spinloop = false]")
          at ./assert/assert.c:101
      #7  srw_mutex_impl<false>::destroy (this=) at /data/Server/10.11_new/storage/innobase/include/srw_lock.h:136
      #8  sux_lock<ssux_lock_impl<true> >::free (this=this@entry=) at /data/Server/10.11_new/storage/innobase/include/sux_lock.h:82
      #9  dict_index_remove_from_cache_low (table=table@entry=, index=, lru_evict=lru_evict@entry=0) at /data/Server/10.11_new/storage/innobase/dict/dict0dict.cc:2161
      #10 dict_sys_t::remove (this=<dict_sys>, table=table@entry=, lru=lru@entry=false, keep=keep@entry=false) at /data/Server/10.11_new/storage/innobase/dict/dict0dict.cc:1887
      #11 innobase_reload_table (thd=<optimized out>, table=, table_name=..., ctx=...) at /data/Server/10.11_new/storage/innobase/handler/handler0alter.cc:10662
      #12 ha_innobase::commit_inplace_alter_table (this=<optimized out>, altered_table=, ha_alter_info=, commit=<optimized out>) at /data/Server/10.11_new/storage/innobase/handler/handler0alter.cc:11854
      #13 handler::ha_commit_inplace_alter_table (this=, altered_table=altered_table@entry=, ha_alter_info=ha_alter_info@entry=, commit=commit@entry=true) at /data/Server/10.11_new/sql/handler.cc:5435
      #14 mysql_inplace_alter_table (thd=thd@entry=, table_list=, table=table@entry=, altered_table=altered_table@entry=, ha_alter_info=ha_alter_info@entry=, target_mdl_request=target_mdl_request@entry=, ddl_log_state=,
          trigger_param=, alter_ctx=, partial_alter=false, start_alter_id=0, if_exists=false) at /data/Server/10.11_new/sql/sql_table.cc:8193
      #15 mysql_alter_table (thd=thd@entry=, new_db=new_db@entry=, new_name=<optimized out>, create_info=create_info@entry=, table_list=<optimized out>, table_list@entry=, recreate_info=recreate_info@entry=,
          alter_info=<optimized out>, order_num=<optimized out>, order=<optimized out>, ignore=<optimized out>, if_exists=<optimized out>) at /data/Server/10.11_new/sql/sql_table.cc:11404
      #16 Sql_cmd_alter_table::execute (this=<optimized out>, thd=) at /data/Server/10.11_new/sql/sql_alter.cc:688
      #17 mysql_execute_command (thd=thd@entry=, is_called_from_prepared_stmt=is_called_from_prepared_stmt@entry=false) at /data/Server/10.11_new/sql/sql_parse.cc:6163
      #18 mysql_parse (thd=thd@entry=, rawbuf=<optimized out>, length=<optimized out>, parser_state=parser_state@entry=) at /data/Server/10.11_new/sql/sql_parse.cc:8178
      #19 dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=, packet=packet@entry="ALTER IGNORE TABLE test.t1_p ADD KEY ( col_text(9) ) /* E_R Thread11 QNO 13 CON_ID 25 */ ", packet_length=packet_length@entry=89,
          blocking=blocking@entry=true) at /data/Server/10.11_new/sql/sql_parse.cc:1906
      #20 do_command (thd=thd@entry=, blocking=blocking@entry=true) at /data/Server/10.11_new/sql/sql_parse.cc:1419
      #21 do_handle_one_connection (connect=<optimized out>, connect@entry=, put_in_cache=put_in_cache@entry=true) at /data/Server/10.11_new/sql/sql_connect.cc:1386
      #22 handle_one_connection (arg=) at /data/Server/10.11_new/sql/sql_connect.cc:1298
      #23 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:442
      

      RR trace is present on pluto :-
      /data/results/1754499151/TBR-1863

      Attachments

        Issue Links

          Activity

            People

              saahil Saahil Alam
              saahil Saahil Alam
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.