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

Sporadic segmentation faults possibly related to vector search

    XMLWordPrintable

Details

    • Can result in hang or crash
    • possible crash under concurrent reads and writes into a vector index when mhnsw_max_cache_size is too small

    Description

      MariaDB sporadically crashes due to a segmentation fault. Given the stack trace, it appears to be related to vector search:

      Core was generated by `/usr/sbin/mariadbd'.
      Program terminated with signal SIGSEGV, Segmentation fault.
      #0  0x0000559bb0721f33 in FVectorNode::gref_len() const ()
      [Current thread is 1 (Thread 0x7f653c2976c0 (LWP 3400662))]
      (gdb)
      (gdb) bt
      #0  0x0000559bb0721f33 in FVectorNode::gref_len() const ()
      #1  0x0000559bb0721fc2 in FVectorNode::get_key(void const*, unsigned long*, char) ()
      #2  0x0000559bb0ace54b in my_hash_first_from_hash_value ()
      #3  0x0000559bb0ace6a1 in my_hash_search ()
      #4  0x0000559bb0722d9b in FVectorNode::load_from_record(TABLE*) ()
      #5  0x0000559bb07241ba in ?? ()
      #6  0x0000559bb072554b in mhnsw_read_next(TABLE*) ()
      #7  0x0000559bb039b2d4 in ?? ()
      #8  0x0000559bb038acb3 in sub_select(JOIN*, st_join_table*, bool) ()
      #9  0x0000559bb03be515 in JOIN::exec_inner() ()
      #10 0x0000559bb03be915 in JOIN::exec() ()
      #11 0x0000559bb03bc934 in mysql_select(THD*, TABLE_LIST*, List<Item>&, Item*, unsigned int, st_order*, st_order*, Item*, st_order*, unsigned long long, select_result*, st_select_lex_unit*, st_select_lex*) ()
      #12 0x0000559bb03bd114 in handle_select(THD*, LEX*, select_result*, unsigned long long) ()
      #13 0x0000559bb032ceb0 in ?? ()
      #14 0x0000559bb033c53b in mysql_execute_command(THD*, bool) ()
      #15 0x0000559bb033db26 in mysql_parse(THD*, char*, unsigned int, Parser_state*) ()
      #16 0x0000559bb033ffed in dispatch_command(enum_server_command, THD*, char*, unsigned int, bool) ()
      #17 0x0000559bb0341cdf in do_command(THD*, bool) ()
      #18 0x0000559bb04752d5 in do_handle_one_connection(CONNECT*, bool) ()
      #19 0x0000559bb0475635 in handle_one_connection ()
      #20 0x0000559bb08071ec in ?? ()
      #21 0x00007f695e4a81c4 in rseq_register_current_thread (do_rseq=<optimized out>, self=0x7f653c2976c0) at ../sysdeps/unix/sysv/linux/rseq-internal.h:70
      #22 start_thread (arg=<optimized out>) at ./nptl/pthread_create.c:373
      #23 0x00007f695e52885c in __closefrom_fallback (from=0, dirfd_fallback=<optimized out>) at ../sysdeps/unix/sysv/linux/closefrom_fallback.c:52
      #24 0x0000000000000000 in ?? ()
      

      I did not immediately see which query causes the issue, failures in the application appear related to MariaDB being unreachable rather than to the query causing the issue.

      I did find MDEV-35214, this however has reportedly already been solved in 11.8.2.

      Attachments

        Issue Links

          Activity

            People

              serg Sergei Golubchik
              paul.sonnenschein Paul Sonnenschein
              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.