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

MariaDB crashes when replicate_wild_ignore_table is set to NULL

Details

    • Bug
    • Status: Closed (View Workflow)
    • Critical
    • Resolution: Fixed
    • 5.5(EOL), 10.0(EOL), 10.1(EOL)
    • 5.5.54
    • Replication
    • None
    • Centos 6
    • 10.1.20

    Description

      When trying to clear list of wildcards:

      STOP SLAVE;
      SET GLOBAL replicate_wild_ignore_table = null;
      START SLAVE;

      MariaDB crashes, following from logs:

      50617 23:55:37 [ERROR] mysqld got signal 11 ;
      This could be because you hit a bug. It is also possible that this binary
      or one of the libraries it was linked against is corrupt, improperly built,
      or misconfigured. This error can also be caused by malfunctioning hardware.
       
      To report this bug, see http://kb.askmonty.org/en/reporting-bugs
       
      We will try our best to scrape up some info that will hopefully help
      diagnose the problem, but since we have already crashed,
      something is definitely wrong and this may fail.
       
      Server version: 10.0.19-MariaDB-log
      key_buffer_size=67108864
      read_buffer_size=4194304
      max_used_connections=5
      max_threads=202
      thread_count=3
      It is possible that mysqld could use up to
      key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 14135174 K  bytes of memory
      Hope that's ok; if not, decrease some variables in the equation.
       
      Thread pointer: 0x0x7fdcae008008
      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 = 0x7fdc9a960d00 thread_stack 0x30000
      /usr/sbin/mysqld(my_print_stacktrace+0x2b)[0xb7bc1b]
      /usr/sbin/mysqld(handle_fatal_signal+0x398)[0x72b318]
      /lib64/libpthread.so.0[0x3ae6c0f710]
      /lib64/libc.so.6[0x3ae693386f]
      /usr/sbin/mysqld(my_strdup+0x1f)[0xb7842f]
      /usr/sbin/mysqld(_ZN10Rpl_filter17parse_filter_ruleEPKcMS_FiS1_E+0x2f)[0x55d1ff]
      /usr/sbin/mysqld(_ZN10Rpl_filter21set_wild_ignore_tableEPKc+0x39)[0x55d4a9]
      /usr/sbin/mysqld(_ZN18Sys_var_rpl_filter16set_filter_valueEPKcP11Master_info+0x45)[0x6ad745]
      /usr/sbin/mysqld(_ZN18Sys_var_rpl_filter13global_updateEP3THDP7set_var+0xd6)[0x6ad886]
      /usr/sbin/mysqld[0x55e46c]
      /usr/sbin/mysqld(_ZN7set_var6updateEP3THD+0x34)[0x55ec44]
      /usr/sbin/mysqld(_Z17sql_set_variablesP3THDP4ListI12set_var_baseE+0x89)[0x55ff69]
      /usr/sbin/mysqld(_Z21mysql_execute_commandP3THD+0x1f84)[0x5d5cb4]
      /usr/sbin/mysqld[0x5da5e7]
      /usr/sbin/mysqld(_Z16dispatch_command19enum_server_commandP3THDPcj+0x1c7c)[0x5dc9cc]
      /usr/sbin/mysqld(_Z24do_handle_one_connectionP3THD+0x453)[0x699b53]
      /usr/sbin/mysqld(handle_one_connection+0x42)[0x699c22]
      /usr/sbin/mysqld[0xa715fd]
      /lib64/libpthread.so.0[0x3ae6c079d1]
      /lib64/libc.so.6(clone+0x6d)[0x3ae68e8b6d]
      Trying to get some variables.
      Some pointers may be invalid and cause the dump to abort.
      Query (0x7fdcaf421020): is an invalid pointer
      Connection ID (thread ID): 131
      Status: NOT_KILLED
       
      Optimizer switch: index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,index_merge_sort_intersection=off,engine_condition_pushdown=off,index_condition_pushdown=on,derived_merge=on,derived_with_keys=on,firstmatch=on,loosescan=on,materialization=on,in_to_exists=on,semijoin=on,partial_match_rowid_merge=on,partial_match_table_scan=on,subquery_cache=on,mrr=off,mrr_cost_based=off,mrr_sort_keys=off,outer_join_with_cache=on,semijoin_with_cache=on,join_cache_incremental=on,join_cache_hashed=on,join_cache_bka=on,optimize_join_buffer_size=off,table_elimination=on,extended_keys=on,exists_to_in=on{quote}

      The following works as expected:

      STOP SLAVE;
      SET GLOBAL replicate_wild_ignore_table = "";
      START SLAVE;

      Attachments

        Issue Links

          Activity

            Thanks for the report.

            Reproducible on old versions of 5.5 as well.
            Not reproducible on MySQL because there it's not a variable, just a command-line option.

            Stack trace from 5.5 commit d199a0ffb0aac86881ea2db7dd78bc07b438dc67

            #3  <signal handler called>
            #4  __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32
            #5  0x0000000000ce306a in my_strdup (from=0x0, my_flags=16) at 5.5/mysys/my_malloc.c:138
            #6  0x00000000005a0933 in Rpl_filter::parse_filter_rule (this=0x7ff76385c220, spec=0x0, add=(int (Rpl_filter::*)(Rpl_filter * const, const char *)) 0x5a0d30 <Rpl_filter::add_wild_ignore_table(char const*)>) at 5.5/sql/rpl_filter.cc:282
            #7  0x00000000005a0eca in Rpl_filter::set_wild_ignore_table (this=0x7ff76385c220, table_spec=0x0) at 5.5/sql/rpl_filter.cc:430
            #8  0x0000000000749dbf in Sys_var_rpl_filter::set_filter_value (this=0x156daa0, value=0x0) at 5.5/sql/sys_vars.cc:3394
            #9  0x0000000000749c5e in Sys_var_rpl_filter::global_update (this=0x156daa0, thd=0x7ff756523060, var=0x7ff7598521f0) at 5.5/sql/sys_vars.cc:3363
            #10 0x00000000005a2503 in sys_var::update (this=0x156daa0, thd=0x7ff756523060, var=0x7ff7598521f0) at 5.5/sql/set_var.cc:199
            #11 0x00000000005a35b2 in set_var::update (this=0x7ff7598521f0, thd=0x7ff756523060) at 5.5/sql/set_var.cc:667
            #12 0x00000000005a317a in sql_set_variables (thd=0x7ff756523060, var_list=0x7ff756527048) at 5.5/sql/set_var.cc:570
            #13 0x00000000006380af in mysql_execute_command (thd=0x7ff756523060) at 5.5/sql/sql_parse.cc:3255
            #14 0x000000000063f01a in mysql_parse (thd=0x7ff756523060, rawbuf=0x7ff759852078 "SET GLOBAL replicate_wild_ignore_table = null", length=45, parser_state=0x7ff766257620) at 5.5/sql/sql_parse.cc:5909
            #15 0x0000000000632c5d in dispatch_command (command=COM_QUERY, thd=0x7ff756523060, packet=0x7ff75652d061 "SET GLOBAL replicate_wild_ignore_table = null", packet_length=45) at 5.5/sql/sql_parse.cc:1079
            #16 0x0000000000631de9 in do_command (thd=0x7ff756523060) at 5.5/sql/sql_parse.cc:793
            #17 0x0000000000734a99 in do_handle_one_connection (thd_arg=0x7ff756523060) at 5.5/sql/sql_connect.cc:1269
            #18 0x0000000000734813 in handle_one_connection (arg=0x7ff756523060) at 5.5/sql/sql_connect.cc:1185
            #19 0x0000000000b6d539 in pfs_spawn_thread (arg=0x7ff756444260) at 5.5/storage/perfschema/pfs.cc:1015
            #20 0x00007ff765fb5b50 in start_thread (arg=<optimized out>) at pthread_create.c:304
            #21 0x00007ff76426b95d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
            #22 0x0000000000000000 in ?? ()

            elenst Elena Stepanova added a comment - Thanks for the report. Reproducible on old versions of 5.5 as well. Not reproducible on MySQL because there it's not a variable, just a command-line option. Stack trace from 5.5 commit d199a0ffb0aac86881ea2db7dd78bc07b438dc67 #3 <signal handler called> #4 __strlen_sse2 () at ../sysdeps/x86_64/multiarch/../strlen.S:32 #5 0x0000000000ce306a in my_strdup (from=0x0, my_flags=16) at 5.5/mysys/my_malloc.c:138 #6 0x00000000005a0933 in Rpl_filter::parse_filter_rule (this=0x7ff76385c220, spec=0x0, add=(int (Rpl_filter::*)(Rpl_filter * const, const char *)) 0x5a0d30 <Rpl_filter::add_wild_ignore_table(char const*)>) at 5.5/sql/rpl_filter.cc:282 #7 0x00000000005a0eca in Rpl_filter::set_wild_ignore_table (this=0x7ff76385c220, table_spec=0x0) at 5.5/sql/rpl_filter.cc:430 #8 0x0000000000749dbf in Sys_var_rpl_filter::set_filter_value (this=0x156daa0, value=0x0) at 5.5/sql/sys_vars.cc:3394 #9 0x0000000000749c5e in Sys_var_rpl_filter::global_update (this=0x156daa0, thd=0x7ff756523060, var=0x7ff7598521f0) at 5.5/sql/sys_vars.cc:3363 #10 0x00000000005a2503 in sys_var::update (this=0x156daa0, thd=0x7ff756523060, var=0x7ff7598521f0) at 5.5/sql/set_var.cc:199 #11 0x00000000005a35b2 in set_var::update (this=0x7ff7598521f0, thd=0x7ff756523060) at 5.5/sql/set_var.cc:667 #12 0x00000000005a317a in sql_set_variables (thd=0x7ff756523060, var_list=0x7ff756527048) at 5.5/sql/set_var.cc:570 #13 0x00000000006380af in mysql_execute_command (thd=0x7ff756523060) at 5.5/sql/sql_parse.cc:3255 #14 0x000000000063f01a in mysql_parse (thd=0x7ff756523060, rawbuf=0x7ff759852078 "SET GLOBAL replicate_wild_ignore_table = null", length=45, parser_state=0x7ff766257620) at 5.5/sql/sql_parse.cc:5909 #15 0x0000000000632c5d in dispatch_command (command=COM_QUERY, thd=0x7ff756523060, packet=0x7ff75652d061 "SET GLOBAL replicate_wild_ignore_table = null", packet_length=45) at 5.5/sql/sql_parse.cc:1079 #16 0x0000000000631de9 in do_command (thd=0x7ff756523060) at 5.5/sql/sql_parse.cc:793 #17 0x0000000000734a99 in do_handle_one_connection (thd_arg=0x7ff756523060) at 5.5/sql/sql_connect.cc:1269 #18 0x0000000000734813 in handle_one_connection (arg=0x7ff756523060) at 5.5/sql/sql_connect.cc:1185 #19 0x0000000000b6d539 in pfs_spawn_thread (arg=0x7ff756444260) at 5.5/storage/perfschema/pfs.cc:1015 #20 0x00007ff765fb5b50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #21 0x00007ff76426b95d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #22 0x0000000000000000 in ?? ()
            grknight Brian Evans added a comment -

            It seems that several dynamic strings in replication cause the crash.

            replicate_do_db, replicate_do_table, replicate_ignore_db, replicate_ignore_table, replicate_wild_ignore_table, replicate_wild_do_table

            grknight Brian Evans added a comment - It seems that several dynamic strings in replication cause the crash. replicate_do_db, replicate_do_table, replicate_ignore_db, replicate_ignore_table, replicate_wild_ignore_table, replicate_wild_do_table
            holyfoot Alexey Botchkov added a comment - http://lists.askmonty.org/pipermail/commits/2016-December/010230.html

            ok to push

            serg Sergei Golubchik added a comment - ok to push

            note, that it's a 5.5 bug

            serg Sergei Golubchik added a comment - note, that it's a 5.5 bug

            Pushed into 5.5

            holyfoot Alexey Botchkov added a comment - Pushed into 5.5

            People

              holyfoot Alexey Botchkov
              yudelevi Daniel Yudelevich
              Votes:
              0 Vote for this issue
              Watchers:
              4 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.