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

Server crashes on attempt to change engine on a SPIDER table

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Minor
    • Resolution: Fixed
    • None
    • 10.0.5
    • None

    Description

      I create a SPIDER table (now hopefully using correct versions of system tables), try to run alter table t1 engine=myisam, get a crash.

      #3  <signal handler called>
      #4  0x00007f69c2dd3e5b in spider_db_show_records (spider=0x7f69b407ee90, link_idx=0) at 10.0/storage/spider/spd_db_conn.cc:4765
      #5  0x00007f69c2e4718a in ha_spider::records (this=0x7f69b407ee90) at 10.0/storage/spider/ha_spider.cc:8358
      #6  0x00000000006d97e7 in copy_data_between_tables (thd=0x37fb3a8, from=0x7f69b407e4d8, to=0x7f69b40891c8, create=..., ignore=false, order_num=0, order=0x0, copied=0x7f69c30fce40, deleted=0x7f69c30fce48, keys_onoff=LEAVE_AS_IS, error_if_not_empty=false) at 10.0/sql/sql_table.cc:7807
      #7  0x00000000006d7550 in mysql_alter_table (thd=0x37fb3a8, new_db=0x7f69b40463a0 "test", new_name=0x7f69b4047450 "t1", create_info=0x7f69c30fe250, table_list=0x7f69b4047a10, alter_info=0x7f69c30fe360, order_num=0, order=0x0, ignore=false, require_online=false) at 10.0/sql/sql_table.cc:7108
      #8  0x0000000000989892 in Alter_table_statement::execute (this=0x7f69b40424d0, thd=0x37fb3a8) at 10.0/sql/sql_alter.cc:106
      #9  0x000000000062a456 in mysql_execute_command (thd=0x37fb3a8) at 10.0/sql/sql_parse.cc:4873
      #10 0x000000000062d680 in mysql_parse (thd=0x37fb3a8, rawbuf=0x7f69b4078fb0 "alter table t1 engine=myisam", length=28, parser_state=0x7f69c30ff500) at 10.0/sql/sql_parse.cc:6176
      #11 0x0000000000620556 in dispatch_command (command=COM_QUERY, thd=0x37fb3a8, packet=0x38005a9 "alter table t1 engine=myisam", packet_length=28) at 10.0/sql/sql_parse.cc:1274
      #12 0x000000000061f9cc in do_command (thd=0x37fb3a8) at 10.0/sql/sql_parse.cc:983
      #13 0x000000000073d820 in do_handle_one_connection (thd_arg=0x37fb3a8) at 10.0/sql/sql_connect.cc:1267
      #14 0x000000000073d573 in handle_one_connection (arg=0x37fb3a8) at 10.0/sql/sql_connect.cc:1181
      #15 0x00000000009d32b4 in pfs_spawn_thread (arg=0x366feb8) at 10.0/storage/perfschema/pfs.cc:1800
      #16 0x00007f69d5454e9a in start_thread (arg=0x7f69c3100700) at pthread_create.c:308
      #17 0x00007f69d4532cbd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      Test case (system tables might be excessive, I'm creating all I found in init_spider.inc, just in case):

        DROP TABLE IF EXISTS mysql.spider_xa;
        CREATE TABLE mysql.spider_xa(
          format_id int not null default 0,
          gtrid_length int not null default 0,
          bqual_length int not null default 0,
          data char(128) charset binary not null default '',
          status char(8) not null default '',
          PRIMARY KEY (data, format_id, gtrid_length),
          KEY idx1 (status)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
        DROP TABLE IF EXISTS mysql.spider_xa_member;
        CREATE TABLE mysql.spider_xa_member(
          format_id int not null default 0,
          gtrid_length int not null default 0,
          bqual_length int not null default 0,
          data char(128) charset binary not null default '',
          scheme char(64) not null default '',
          host char(64) not null default '',
          port char(5) not null default '',
          socket text not null default '',
          username char(64) not null default '',
          password char(64) not null default '',
          ssl_ca text default null,
          ssl_capath text default null,
          ssl_cert text default null,
          ssl_cipher char(64) default null,
          ssl_key text default null,
          ssl_verify_server_cert tinyint not null default 0,
          default_file text default null,
          default_group char(64) default null,
          KEY idx1 (data, format_id, gtrid_length, host)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
        DROP TABLE IF EXISTS mysql.spider_tables;
        CREATE TABLE mysql.spider_tables(
          db_name char(64) not null default '',
          table_name char(64) not null default '',
          link_id int not null default 0,
          priority bigint not null default 0,
          server char(64) default null,
          scheme char(64) default null,
          host char(64) default null,
          port char(5) default null,
          socket text default null,
          username char(64) default null,
          password char(64) default null,
          ssl_ca text default null,
          ssl_capath text default null,
          ssl_cert text default null,
          ssl_cipher char(64) default null,
          ssl_key text default null,
          ssl_verify_server_cert tinyint not null default 0,
          default_file text default null,
          default_group char(64) default null,
          tgt_db_name char(64) default null,
          tgt_table_name char(64) default null,
          link_status tinyint not null default 1,
          PRIMARY KEY (db_name, table_name, link_id),
          KEY idx1 (priority)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
        DROP TABLE IF EXISTS mysql.spider_link_mon_servers;
        CREATE TABLE mysql.spider_link_mon_servers(
          db_name char(64) not null default '',
          table_name char(64) not null default '',
          link_id char(5) not null default '',
          sid int not null default 0,
          server char(64) default null,
          scheme char(64) default null,
          host char(64) default null,
          port char(5) default null,
          socket text default null,
          username char(64) default null,
          password char(64) default null,
          ssl_ca text default null,
          ssl_capath text default null,
          ssl_cert text default null,
          ssl_cipher char(64) default null,
          ssl_key text default null,
          ssl_verify_server_cert tinyint not null default 0,
          default_file text default null,
          default_group char(64) default null,
          PRIMARY KEY (db_name, table_name, link_id, sid)
        ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
        DROP TABLE IF EXISTS mysql.spider_link_failed_log;
        CREATE TABLE mysql.spider_link_failed_log(
          db_name char(64) not null default '',
          table_name char(64) not null default '',
          link_id int not null default 0,
          failed_time timestamp not null default current_timestamp
        ) ENGINE=MYISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
       
      install soname 'ha_spider.so';
       
      create table t1_remote (i int) engine=MyISAM;
       
      eval create table t1 (i int) 
        ENGINE=spider 
        COMMENT='database "test", table "t1_remote"' 
        CONNECTION='host "localhost", socket "$MASTER_MYSOCK", user "root", password "", prt "2000000"'
      ;
      alter table t1 engine=myisam;

      bzr version-info

      revision-id: svoj@mariadb.org-20130627111848-b8kc0z60ywwpqavz
      revno: 3762
      branch-nick: 10.0

      Attachments

        Issue Links

          Activity

            People

              svoj Sergey Vojtovich
              elenst Elena Stepanova
              Votes:
              0 Vote for this issue
              Watchers:
              2 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.