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

Segmentation fault on RENAME TABLE

    XMLWordPrintable

Details

    Description

      Hi, we've encountered this crash several times in MariaDB 10.0.31 when renaming tables (query is in the stack trace below). By looking really quick at the traces I assume that the segfault has something to do with the stat tables (rename_table_in_stat_tables function).
      Note that the tables being renamed are MyISAM. use_stat_tables is set to NEVER, the stat tables are in good condition despite being unused. There's some test data in it but unrelated to the tables being renamed.

      Sep 17 07:49:15 db-01 mysqld: 170917  7:49:15 [ERROR] mysqld got signal 11 ;
      Sep 17 07:49:15 db-01 mysqld: This could be because you hit a bug. It is also possible that this binary
      Sep 17 07:49:15 db-01 mysqld: or one of the libraries it was linked against is corrupt, improperly built,
      Sep 17 07:49:15 db-01 mysqld: or misconfigured. This error can also be caused by malfunctioning hardware.
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: To report this bug, see https://mariadb.com/kb/en/reporting-bugs
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: We will try our best to scrape up some info that will hopefully help
      Sep 17 07:49:15 db-01 mysqld: diagnose the problem, but since we have already crashed, 
      Sep 17 07:49:15 db-01 mysqld: something is definitely wrong and this may fail.
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: Server version: 10.0.31-MariaDB-1~trusty
      Sep 17 07:49:15 db-01 mysqld: key_buffer_size=33554432
      Sep 17 07:49:15 db-01 mysqld: read_buffer_size=2097152
      Sep 17 07:49:15 db-01 mysqld: max_used_connections=3808
      Sep 17 07:49:15 db-01 mysqld: max_threads=501
      Sep 17 07:49:15 db-01 mysqld: thread_count=469
      Sep 17 07:49:15 db-01 mysqld: It is possible that mysqld could use up to 
      Sep 17 07:49:15 db-01 mysqld: key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 3210111 K  bytes of memory
      Sep 17 07:49:15 db-01 mysqld: Hope that's ok; if not, decrease some variables in the equation.
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: Thread pointer: 0x7f9d4d489008
      Sep 17 07:49:15 db-01 mysqld: Attempting backtrace. You can use the following information to find out
      Sep 17 07:49:15 db-01 mysqld: where mysqld died. If you see no messages after this, something went
      Sep 17 07:49:15 db-01 mysqld: terribly wrong...
      Sep 17 07:49:15 db-01 mysqld: stack_bottom = 0x7f9d51c24d68 thread_stack 0x48000
      Sep 17 07:49:15 db-01 mysqld: (my_addr_resolve failure: fork)
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(my_print_stacktrace+0x2e) [0xbe68be]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(handle_fatal_signal+0x3b6) [0x7428d6]
      Sep 17 07:49:15 db-01 mysqld: /lib/x86_64-linux-gnu/libpthread.so.0(+0x10330) [0x7fa378c99330]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld() [0xb84de8]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld() [0xba954c]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(handler::ha_index_read_map(unsigned char*, unsigned char const*, unsigned long, ha_rkey_function)+0x134) [0x7474a4]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(rename_table_in_stat_tables(THD*, st_mysql_lex_string*, st_mysql_lex_string*, st_mysql_lex_string*, st_mysql_lex_string*)+0x3bc) [0x64d30c]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld() [0x5f08d0]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(mysql_rename_tables(THD*, TABLE_LIST*, bool)+0x1a2) [0x5f0b42]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(mysql_execute_command(THD*)+0x53d1) [0x5da4e1]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(mysql_parse(THD*, char*, unsigned int, Parser_state*)+0x1ca) [0x5dc69a]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(dispatch_command(enum_server_command, THD*, char*, unsigned int)+0x1bd3) [0x5de823]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld(threadpool_process_request(THD*)+0xfb) [0x6e3afb]
      Sep 17 07:49:15 db-01 mysqld: /usr/sbin/mysqld() [0x714e6d]
      Sep 17 07:49:15 db-01 mysqld: /lib/x86_64-linux-gnu/libpthread.so.0(+0x8184) [0x7fa378c91184]
      Sep 17 07:49:15 db-01 mysqld: /lib/x86_64-linux-gnu/libc.so.6(clone+0x6d) [0x7fa377b74ffd]
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: Trying to get some variables.
      Sep 17 07:49:15 db-01 mysqld: Some pointers may be invalid and cause the dump to abort.
      Sep 17 07:49:15 db-01 mysqld: Query (0x7f9d345b718d): is an invalid pointer
      Sep 17 07:49:15 db-01 mysqld: Connection ID (thread ID): 104455320
      Sep 17 07:49:15 db-01 mysqld: Status: NOT_KILLED
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: 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
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
      Sep 17 07:49:15 db-01 mysqld: information that should help you find out what is causing the crash.
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:15 db-01 mysqld: We think the query pointer is invalid, but we will try to print it anyway. 
      Sep 17 07:49:15 db-01 mysqld: Query: RENAME TABLE market_orders_gmni TO market_orders_gmni_atomic, market_orders_gmni_new  TO market_orders_gmni
      Sep 17 07:49:15 db-01 mysqld: 
      Sep 17 07:49:16 db-01 mysqld_safe: Number of processes running now: 0
      Sep 17 07:49:16 db-01 mysqld_safe: mysqld restarted
      Sep 17 07:49:17 db-01 mysqld: 170917  7:49:17 [Note] /usr/sbin/mysqld (mysqld 10.0.31-MariaDB-1~trusty) starting as process 6836 ...
      

      Attachments

        Issue Links

          Activity

            People

              monty Michael Widenius
              tanj Guillaume Lefranc
              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.