Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-344

LP #1017192: Server crashes in add_identifier on concurrent ALTER TABLE and SHOW ENGINE INNODB STATUS

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done
    • Priority: High
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None

      Description

      **Reported in Launchpad by Elena Stepanova last update 01-08-2017 10:24:19

      Percona XtraDB 1.1.8-27.0 started

      #3 <signal handler called>
      #4 0x000000000066373a in add_identifier (thd=0x2854b30, to_p=0x7f6f26df5c6a "\337&o\177", end_p=0x7f6f26df5d40 "#sql-4d62_2#P#p0", name=0x7f6f26df5d4e "p0", name_len=4294967293) at sql/sql_table.cc:104
      #5 0x000000000066433d in explain_filename (thd=0x2854b30, from=0x7f6f26df5d40 "#sql-4d62_2#P#p0", to=0x7f6f26df5c40 "`#sql-4d62_2#P#p0` /* Temporary Partition \337&o\177", to_length=256, explain_mode=EXPLAIN_PARTITIONS_AS_COMMENT) at sql/sql_table.cc:356
      #6 0x00000000008c9ac0 in innobase_convert_identifier (buf=0x7f6f26df5ef7 "`t1` /* P", buflen=569, id=0x7f6f1c002b45 "#sql-4d62_2#P#p0", idlen=16, thd=0x2854b30, file_id=1) at storage/innobase/handler/ha_innodb.cc:2243
      #7 0x00000000008c9df4 in innobase_convert_name (buf=0x7f6f26df5ef0 "`test`.`t1` /* P", buflen=576, id=0x7f6f1c002b40 "test/#sql-4d62_2#P#p0", idlen=21, thd=0x2854b30, table_id=1) at storage/innobase/handler/ha_innodb.cc:2329
      #8 0x000000000095aeba in ut_print_namel (f=0x26d0260, trx=0x28f6798, table_id=1, name=0x7f6f1c002b40 "test/#sql-4d62_2#P#p0", namelen=21) at storage/innobase/ut/ut0ut.c:544
      #9 0x000000000095ae30 in ut_print_name (f=0x26d0260, trx=0x28f6798, table_id=1, name=0x7f6f1c002b40 "test/#sql-4d62_2#P#p0") at storage/innobase/ut/ut0ut.c:520
      #10 0x0000000000a1ecc8 in lock_table_print (file=0x26d0260, lock=0x28ee1c8) at storage/innobase/lock/lock0lock.c:4319
      #11 0x0000000000a1faad in lock_print_info_all_transactions (file=0x26d0260) at storage/innobase/lock/lock0lock.c:4680
      #12 0x00000000009233c5 in srv_printf_innodb_monitor (file=0x26d0260, nowait=0, trx_start=0x7f6f26df68d0, trx_end=0x7f6f26df68d8) at storage/innobase/srv/srv0srv.c:2243
      #13 0x00000000008d7c4f in innodb_show_status (hton=0x2288840, thd=0x28f9830, stat_print=0x756c8f <stat_print(THD*, char const*, uint, char const*, uint, char const*, uint)>) at storage/innobase/handler/ha_innodb.cc:10347
      #14 0x00000000008d86e9 in innobase_show_status (hton=0x2288840, thd=0x28f9830, stat_print=0x756c8f <stat_print(THD*, char const*, uint, char const*, uint, char const*, uint)>, stat_type=HA_ENGINE_STATUS) at storage/innobase/handler/ha_innodb.cc:10587
      #15 0x0000000000756fde in ha_show_status (thd=0x28f9830, db_type=0x2288840, stat=HA_ENGINE_STATUS) at sql/handler.cc:5055
      #16 0x00000000005e6873 in mysql_execute_command (thd=0x28f9830) at sql/sql_parse.cc:2479
      #17 0x00000000005ef600 in mysql_parse (thd=0x28f9830, rawbuf=0x2904990 "SHOW ENGINE INNODB STATUS", length=25, parser_state=0x7f6f26df7ff0) at sql/sql_parse.cc:5809
      #18 0x00000000005e34f0 in dispatch_command (command=COM_QUERY, thd=0x28f9830, packet=0x28fc961 "", packet_length=25) at sql/sql_parse.cc:1060
      #19 0x00000000005e27d1 in do_command (thd=0x28f9830) at sql/sql_parse.cc:788
      #20 0x00000000006c9024 in do_handle_one_connection (thd_arg=0x28f9830) at sql/sql_connect.cc:1441
      #21 0x00000000006c8a0a in handle_one_connection (arg=0x28f9830) at sql/sql_connect.cc:1348
      #22 0x0000000000aa5fa7 in pfs_spawn_thread (arg=0x2857e80) at storage/perfschema/pfs.cc:1015
      #23 0x00007f6f2eea0efc in start_thread (arg=0x7f6f26df9700) at pthread_create.c:304
      #24 0x00007f6f2e21359d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

      bzr version-info
      revision-id: hrvoje.matijakovic@percona.com-20120621123622-5w043kjg0ig8bj7c
      date: 2012-06-21 14:36:22 +0200
      build-date: 2012-06-24 20:18:16 +0400
      revno: 270

      1. MTR test case:

      --source include/have_partition.inc
      --source include/have_innodb.inc

      CREATE TABLE IF NOT EXISTS t1 (`a` INT) ENGINE=InnoDB;
      INSERT INTO t1 VALUES (1),(2),(3),(4);

      --connect (con1,localhost,root,,)
      --let $run = 100

      while ($run)
      {
      --connection default
      --send ALTER TABLE t1 PARTITION BY HASH (`a`) PARTITIONS 4
      --connection con1
      --let $show = 300
      while ($show)

      { SHOW ENGINE INNODB STATUS; --dec $show }

      --connection default
      --reap
      --dec $run
      }

      DROP TABLE t1;

      1. End of MTR test case
      1. If it does not work, try the RQG grammar
      2. cat 1.yy

      query_init:
      CREATE TABLE IF NOT EXISTS t1 (`a` INT) ENGINE=InnoDB
      ; INSERT INTO t1 VALUES (1),(2),(3),(4);

      thread1:
      SHOW ENGINE INNODB STATUS;

      query:
      ALTER TABLE t1 PARTITION BY HASH (`a`) PARTITIONS 4 ;

      1. End of RQG grammar
      2. run as

      perl ./runall.pl \
      --threads=2 \
      --queries=100M \
      --duration=300 \
      --skip-gendata \
      --grammar=1.yy \
      --basedir=<your basedir>

        Attachments

          Activity

            People

            Assignee:
            Unassigned
            Reporter:
            lpjirasync lpjirasync (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Smart Checklist