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

HS: Assertion `prev == 0 && next == 0' failed in ilink::assert_not_linked

    XMLWordPrintable

Details

    • Can result in hang or crash

    Description

      main/hs.opt

      --plugin-load-add=handlersocket=handlersocket.so
      --plugin-maturity=unknown
      --loose-handlersocket-address=127.0.0.1
      --loose-handlersocket-port=9968
      --loose-handlersocket-port-wr=9969
      

      main/hs.test

      # HandlerSocket worker THD teardown assertion (debug builds).
      # The plugin is loaded at startup (hs.opt) with a bound port, so its worker threads
      # are up and each has registered a bare THD via server_threads.insert(thd) before the
      # test runs. UNINSTALL tears the workers down: term_thread
      # (plugin/handler_socket/handlersocket/database.cpp:336) deletes each THD without
      # removing it from server_threads, so THD::~THD trips ilink::assert_not_linked and the
      # server aborts. Debug-build only.
       
      if (`SELECT LENGTH('$HANDLERSOCKET_SO') = 0`) {
        skip handlersocket plugin is not built;
      }
       
      --disable_query_log
      call mtr.add_suppression("handlersocket: open_files_limit is too small");
      call mtr.add_suppression("Plugin 'handlersocket' is of maturity level beta");
      --enable_query_log
       
      UNINSTALL PLUGIN handlersocket;
      

      ./mtr hs
      

      Leads to:

      CS 13.0.1 c8e8d33309606e682c98675d594dbd23ebc2ddf6 (Debug, Clang 21.1.3-20250923) Build 21/05/2026

      mariadbd: /test/13.0_dbg/sql/sql_list.h:717: void ilink::assert_not_linked(): Assertion `prev == 0 && next == 0' failed.
      

      CS 13.0.1 c8e8d33309606e682c98675d594dbd23ebc2ddf6 (Debug, Clang 21.1.3-20250923) Build 21/05/2026

      Core was generated by `/test/MD210526-mariadb-13.0.1-linux-x86_64-dbg/bin/mariadbd --defaults-group-su'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
       
      [Current thread is 1 (LWP 95415)]
      (gdb) bt
      #0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:44
      #1  __pthread_kill_internal (signo=6, threadid=<optimized out>)at ./nptl/pthread_kill.c:78
      #2  __GI___pthread_kill (threadid=<optimized out>, signo=signo@entry=6)at ./nptl/pthread_kill.c:89
      #3  0x00007592b1a4526e in __GI_raise (sig=sig@entry=6)at ../sysdeps/posix/raise.c:26
      #4  0x00007592b1a288ff in __GI_abort () at ./stdlib/abort.c:79
      #5  0x00007592b1a2881b in __assert_fail_base (fmt=0x7592b1bd01e8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x5ce14d7c0a2f "prev == 0 && next == 0", file=file@entry=0x5ce14d859626 "/test/13.0_dbg/sql/sql_list.h", line=line@entry=717, function=function@entry=0x5ce14d7e37cc "void ilink::assert_not_linked()")at ./assert/assert.c:94
      #6  0x00007592b1a3b507 in __assert_fail (assertion=0x5ce14d7c0a2f "prev == 0 && next == 0", file=0x5ce14d859626 "/test/13.0_dbg/sql/sql_list.h", line=717, function=0x5ce14d7e37cc "void ilink::assert_not_linked()")at ./assert/assert.c:103
      #7  0x00005ce14e2f60b7 in ilink::assert_not_linked (this=0x759244000d58)at /test/13.0_dbg/sql/sql_list.h:717
      #8  0x00005ce14e390a81 in THD::~THD (this=0x759244000d58)at /test/13.0_dbg/sql/sql_class.cc:1873
      #9  0x00005ce14e391189 in THD::~THD (this=0x759244000d58)at /test/13.0_dbg/sql/sql_class.cc:1868
      #10 0x00007592b0d177af in dena::dbcontext::term_thread (this=0x5ce150c7e1c0)at /test/13.0_dbg/plugin/handler_socket/handlersocket/database.cpp:336
      #11 0x00007592b0d353c4 in dena::(anonymous namespace)::thr_init::~thr_init (this=0x759295fffba8)at /test/13.0_dbg/plugin/handler_socket/handlersocket/hstcpsvr_worker.cpp:317
      #12 0x00007592b0d33826 in dena::hstcpsvr_worker::run (this=0x5ce150c7e100)at /test/13.0_dbg/plugin/handler_socket/handlersocket/hstcpsvr_worker.cpp:347
      #13 0x00007592b0d4073e in dena::worker_throbj::operator() (this=0x5ce150c7e0d0)at /test/13.0_dbg/plugin/handler_socket/handlersocket/hstcpsvr.cpp:30
      #14 0x00007592b0d4070d in dena::thread<dena::worker_throbj>::thread_main (arg=0x5ce150c7e0d0) at libhsclient/thread.hpp:71
      #15 0x00007592b1a9ca94 in start_thread (arg=<optimized out>)at ./nptl/pthread_create.c:447
      #16 0x00007592b1b29c3c in clone3 ()at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
      

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              1 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.