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

CREATE TABLE with generated column and RLIKE results in segfault

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Confirmed (View Workflow)
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 10.2, 10.3, 10.4.11, 10.4
    • Fix Version/s: 10.2, 10.3, 10.4
    • Component/s: None
    • Labels:
      None
    • Environment:
      Ubuntu 19.04

      Description

      Consider the following CREATE TABLE statement:

      CREATE TABLE t0(c0 INT AS(('' RLIKE '[')));
      

      Unexpectedly, the statement results in a segfault on the current trunk (89ae01f) with the following stacktrace:

      Server version: 10.4.11-MariaDB-debug
      key_buffer_size=134217728
      read_buffer_size=131072
      max_used_connections=1
      max_threads=153
      thread_count=7
      It is possible that mysqld could use up to 
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 467846 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x7fbe08000d50
      Attempting backtrace. You can use the following information to find out
      where mysqld died. If you see no messages after this, something went
      terribly wrong...
      stack_bottom = 0x7fbe8cea8e98 thread_stack 0x49000
      /usr/local/mysql/bin/mysqld(my_print_stacktrace+0x4f)[0x55ee64000bd9]
      mysys/stacktrace.c:269(my_print_stacktrace)[0x55ee637557e2]
      /lib/x86_64-linux-gnu/libpthread.so.0(+0x13f40)[0x7fbea2f77f40]
      linux/raise.c:51(__GI_raise)[0x7fbea270ced7]
      stdlib/abort.c:81(__GI_abort)[0x7fbea26ee535]
      intl/loadmsgcat.c:1177(_nl_load_domain)[0x7fbea26ee40f]
      /lib/x86_64-linux-gnu/libc.so.6(+0x35012)[0x7fbea26fe012]
      sql/sql_error.cc:340(Diagnostics_area::set_ok_status(unsigned long long, unsigned long long, char const*))[0x55ee6339a5ac]
      sql/sql_class.h:5010(my_ok(THD*, unsigned long long, unsigned long long, char const*))[0x55ee6333b250]
      sql/sql_table.cc:11446(Sql_cmd_create_table_like::execute(THD*))[0x55ee634ebbd4]
      sql/sql_parse.cc:6099(mysql_execute_command(THD*))[0x55ee633fa230]
      sql/sql_parse.cc:7898(mysql_parse(THD*, char*, unsigned int, Parser_state*, bool, bool))[0x55ee633ffb1d]
      sql/sql_parse.cc:1841(dispatch_command(enum_server_command, THD*, char*, unsigned int, bool, bool))[0x55ee633eaad2]
      sql/sql_parse.cc:1359(do_command(THD*))[0x55ee633e9156]
      sql/sql_connect.cc:1412(do_handle_one_connection(CONNECT*))[0x55ee63577b8e]
      sql/sql_connect.cc:1317(handle_one_connection)[0x55ee635778ce]
      nptl/pthread_create.c:487(start_thread)[0x7fbea2f6d182]
      x86_64/clone.S:97(clone)[0x7fbea27e6b1f]
       
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7fbe080122b8): CREATE TABLE t0(c1 INT AS(('' RLIKE '[')))
      Connection ID (thread ID): 8
      Status: NOT_KILLED
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              nikitamalyavin Nikita Malyavin
              Reporter:
              mrigger Manuel Rigger
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Dates

                Created:
                Updated: