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

master crashed when slave specfied a future position with semi-repl plugin

Details

    Description

      Bug #70327 in mysql bug database,http://bugs.mysql.com/bug.php?id=70327
      This bug has been fixed in mysql5.6.21,but I can still repeat it in mariadb10.0.14 and mariadb 10.0.16 which is lastest version I can find.

      use case:

      # master:
      MariaDB [sbtest]> select version();show master status;
      +---------------------+
      | version()           |
      +---------------------+
      | 10.0.16-MariaDB-log |
      +---------------------+
      1 row in set (0.00 sec)
       
      +--------------------------+----------+--------------+------------------+
      | File                     | Position | Binlog_Do_DB | Binlog_Ignore_DB |
      +--------------------------+----------+--------------+------------------+
      | *SVR3327HW5885-bin.000001 |      320 *|              |                  |
      +--------------------------+----------+--------------+------------------+
      1 row in set (0.00 sec)
       
      # slave:
      change master to master_host='192.168.60.51',master_user='xxxxxxx',master_password='xxxxxxx',master_port=55944,master_log_file='SVR3327HW5885-bin.*000002*',master_log_pos=320;
      start slave;
       
      # enter any DML query,then master will crash!

      crash log

      mysqld: /home/op1/mariadb-10.0.16/plugin/semisync/semisync_master.cc:750: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)' failed.
      150215 15:33:24 [ERROR] mysqld got signal 6 ;

      Attachments

        Issue Links

          Activity

            elenst Elena Stepanova added a comment - - edited

            --source include/master-slave.inc
            create table t1 (i int);
             
            install soname 'semisync_master';
            set global rpl_semi_sync_master_enabled = ON;
             
            --connection slave
            install soname 'semisync_slave';
            --source include/stop_slave.inc
            set global rpl_semi_sync_slave_enabled = ON;
            change master to master_log_file='master-bin.000002', master_log_pos = 320;
             
            --source include/start_slave.inc
             
            --connection master
            insert into t1 values (1);
             
            drop table t1;
            --source include/rpl_end.inc

            10.0 revno 4599

            10.0/plugin/semisync/semisync_master.cc:750: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)' failed.
            150218 17:53:44 [ERROR] mysqld got signal 6 ;
             
            #6  0x00007fba18414311 in *__GI___assert_fail (assertion=0x7fba18152888 "(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)", file=<optimized out>, line=750, function=0x7fba18153820 "int ReplSemiSyncMaster::commitTrx(const char*, my_off_t)") at assert.c:81
            #7  0x00007fba1814f85d in ReplSemiSyncMaster::commitTrx (this=0x7fba183566c0, trx_wait_binlog_name=0x7fba0ac540f8 "master-bin.000001", trx_wait_binlog_pos=632) at 10.0/plugin/semisync/semisync_master.cc:748
            #8  0x00007fba18150f60 in repl_semi_report_commit (param=0x7fba183e6870) at 10.0/plugin/semisync/semisync_master_plugin.cc:59
            #9  0x000000000079be80 in Trans_delegate::after_commit (this=0x187bec0, thd=0x7fba0e71b070, all=false) at 10.0/sql/rpl_handler.cc:210
            #10 0x000000000086c00f in ha_commit_trans (thd=0x7fba0e71b070, all=false) at 10.0/sql/handler.cc:1442
            #11 0x00000000007a8586 in trans_commit_stmt (thd=0x7fba0e71b070) at 10.0/sql/transaction.cc:394
            #12 0x000000000068306e in mysql_execute_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:5123
            #13 0x00000000006861b7 in mysql_parse (thd=0x7fba0e71b070, rawbuf=0x7fba0ac4a088 "insert into t1 values (1)", length=25, parser_state=0x7fba183e7600) at 10.0/sql/sql_parse.cc:6513
            #14 0x0000000000678c01 in dispatch_command (command=COM_QUERY, thd=0x7fba0e71b070, packet=0x7fba0e727071 "insert into t1 values (1)", packet_length=25) at 10.0/sql/sql_parse.cc:1300
            #15 0x0000000000677f97 in do_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:996
            #16 0x00000000007953ef in do_handle_one_connection (thd_arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1375
            #17 0x0000000000795142 in handle_one_connection (arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1289
            #18 0x0000000000cd0a2a in pfs_spawn_thread (arg=0x7fba06fdbff0) at 10.0/storage/perfschema/pfs.cc:1860
            #19 0x00007fba1a20fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304
            #20 0x00007fba184c570d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

            elenst Elena Stepanova added a comment - - edited --source include/master-slave.inc create table t1 (i int );   install soname 'semisync_master' ; set global rpl_semi_sync_master_enabled = ON ;   --connection slave install soname 'semisync_slave' ; --source include/stop_slave.inc set global rpl_semi_sync_slave_enabled = ON ; change master to master_log_file= 'master-bin.000002' , master_log_pos = 320;   --source include/start_slave.inc   --connection master insert into t1 values (1);   drop table t1; --source include/rpl_end.inc 10.0 revno 4599 10.0/plugin/semisync/semisync_master.cc:750: int ReplSemiSyncMaster::commitTrx(const char*, my_off_t): Assertion `(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)' failed. 150218 17:53:44 [ERROR] mysqld got signal 6 ;   #6 0x00007fba18414311 in *__GI___assert_fail (assertion=0x7fba18152888 "(thd_kill_statement_service->thd_kill_level_func(__null) == THD_ABORT_ASAP) || !active_tranxs_->is_tranx_end_pos(trx_wait_binlog_name, trx_wait_binlog_pos)", file=<optimized out>, line=750, function=0x7fba18153820 "int ReplSemiSyncMaster::commitTrx(const char*, my_off_t)") at assert.c:81 #7 0x00007fba1814f85d in ReplSemiSyncMaster::commitTrx (this=0x7fba183566c0, trx_wait_binlog_name=0x7fba0ac540f8 "master-bin.000001", trx_wait_binlog_pos=632) at 10.0/plugin/semisync/semisync_master.cc:748 #8 0x00007fba18150f60 in repl_semi_report_commit (param=0x7fba183e6870) at 10.0/plugin/semisync/semisync_master_plugin.cc:59 #9 0x000000000079be80 in Trans_delegate::after_commit (this=0x187bec0, thd=0x7fba0e71b070, all=false) at 10.0/sql/rpl_handler.cc:210 #10 0x000000000086c00f in ha_commit_trans (thd=0x7fba0e71b070, all=false) at 10.0/sql/handler.cc:1442 #11 0x00000000007a8586 in trans_commit_stmt (thd=0x7fba0e71b070) at 10.0/sql/transaction.cc:394 #12 0x000000000068306e in mysql_execute_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:5123 #13 0x00000000006861b7 in mysql_parse (thd=0x7fba0e71b070, rawbuf=0x7fba0ac4a088 "insert into t1 values (1)", length=25, parser_state=0x7fba183e7600) at 10.0/sql/sql_parse.cc:6513 #14 0x0000000000678c01 in dispatch_command (command=COM_QUERY, thd=0x7fba0e71b070, packet=0x7fba0e727071 "insert into t1 values (1)", packet_length=25) at 10.0/sql/sql_parse.cc:1300 #15 0x0000000000677f97 in do_command (thd=0x7fba0e71b070) at 10.0/sql/sql_parse.cc:996 #16 0x00000000007953ef in do_handle_one_connection (thd_arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1375 #17 0x0000000000795142 in handle_one_connection (arg=0x7fba0e71b070) at 10.0/sql/sql_connect.cc:1289 #18 0x0000000000cd0a2a in pfs_spawn_thread (arg=0x7fba06fdbff0) at 10.0/storage/perfschema/pfs.cc:1860 #19 0x00007fba1a20fb50 in start_thread (arg=<optimized out>) at pthread_create.c:304 #20 0x00007fba184c570d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

            People

              serg Sergei Golubchik
              ahahazhang frank.zhang
              Votes:
              0 Vote for this issue
              Watchers:
              3 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.