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

Server crash when SET GLOBAL rpl_semi_sync_master_enabled = OFF

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.24
    • Fix Version/s: 5.5.25
    • Component/s: None
    • Labels:
      None

      Description

      Running below test case by Elena randomly causes a server crash (ie. it needs
      to run a few times to cause the crash, ./mtr --repeat=100).

      Bug is also present in MySQL 5.5. See also
      http://bugs.mysql.com/bug.php?id=50160.

      Thread 1 (Thread 0x7f449d6f0700 (LWP 16616)):
      #0  0x00007f44a92ba4ec in __pthread_kill (threadid=<optimized out>, signo=<optimized out>) at ../nptl/sysdeps/unix/sysv/linux/pthread_kill.c:63
      #1  0x0000000000cb000b in my_write_core (sig=11) at /home/knielsen/my/5.5/mariadb-5.5/mysys/stacktrace.c:457
      #2  0x00000000007d1adc in handle_fatal_signal (sig=11) at /home/knielsen/my/5.5/mariadb-5.5/sql/signal_handler.cc:279
      #3  <signal handler called>
      #4  0x00007f449d4a4328 in Trace::function_enter (this=0x0, func_name=0x7f449d4a558a "ActiveTranx::is_tranx_end_pos") at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync.h:50
      #5  0x00007f449d4a2216 in ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x38215b8 "master-bin.000001", log_file_pos=576) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master.cc:198
      #6  0x00007f449d4a33a8 in ReplSemiSyncMaster::commitTrx (this=0x7f449d6a8160, trx_wait_binlog_name=0x38215b8 "master-bin.000001", trx_wait_binlog_pos=576) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master.cc:746
      #7  0x00007f449d4a4a94 in repl_semi_report_commit (param=0x7f449d6eebd0) at /home/knielsen/my/5.5/mariadb-5.5/plugin/semisync/semisync_master_plugin.cc:59
      #8  0x0000000000725abc in Trans_delegate::after_commit (this=0x14d8960, thd=0x3754710, all=false) at /home/knielsen/my/5.5/mariadb-5.5/sql/rpl_handler.cc:243
      #9  0x00000000007d4366 in ha_commit_trans (thd=0x3754710, all=false) at /home/knielsen/my/5.5/mariadb-5.5/sql/handler.cc:1306
      #10 0x00000000007314eb in trans_commit_stmt (thd=0x3754710) at /home/knielsen/my/5.5/mariadb-5.5/sql/transaction.cc:299
      #11 0x0000000000630fb9 in mysql_execute_command (thd=0x3754710) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:4514
      #12 0x0000000000633c96 in mysql_parse (thd=0x3754710, rawbuf=0x37f6118 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f449d6ef610) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:5736
      #13 0x0000000000627e50 in dispatch_command (command=COM_QUERY, thd=0x3754710, packet=0x3758141 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at /home/knielsen/my/5.5/mariadb-5.5/sql/sql_parse.cc:1055
      
      --source include/have_binlog_format_mixed_or_statement.inc
      --source include/master-slave.inc
      CREATE TABLE t1 (a INT) ENGINE=MyISAM;
      INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
      SET GLOBAL rpl_semi_sync_master_enabled = ON;
      --connection master1
      --send
      INSERT INTO t1 SELECT * FROM t1;
      --connection master
      --sync_slave_with_master
      --connection master
      SET GLOBAL rpl_semi_sync_master_enabled = OFF;
      --connection master1
      --reap
      
      connection master;
      DROP TABLE t1;
      
      disable_warnings;
      UNINSTALL PLUGIN rpl_semi_sync_master;
      enable_warnings;
      
      --source include/rpl_end.inc
      

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            knielsen Kristian Nielsen added a comment -

            Fix + testcase pushed into lp:maria/5.5

            Show
            knielsen Kristian Nielsen added a comment - Fix + testcase pushed into lp:maria/5.5
            Hide
            elenst Elena Stepanova added a comment - - edited

            I'm now getting the following crash with the same test case (on revno 3452):

            RelWithDebInfo:

            #2 <signal handler called>
            #3 0x00007fc621d8dd71 in function_enter (func_name=0x7fc621d90b36 "ActiveTranx::is_tranx_end_pos", this=0x0) at plugin/semisync/semisync.h:50
            #4 ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x3967258 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198
            #5 0x00007fc621d8eadf in ReplSemiSyncMaster::commitTrx (this=0x7fc621f937e0, trx_wait_binlog_name=0x3967258 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746
            #6 0x0000000000630849 in Trans_delegate::after_commit (this=0x10a6de0, thd=<optimized out>, all=<optimized out>) at sql/rpl_handler.cc:243
            #7 0x000000000069a431 in ha_commit_trans (thd=0x393ccc0, all=false) at sql/handler.cc:1305
            #8 0x0000000000638c4a in trans_commit_stmt (thd=0x393ccc0) at sql/transaction.cc:299
            #9 0x000000000058a053 in mysql_execute_command (thd=0x393ccc0) at sql/sql_parse.cc:4514
            #10 0x0000000000590b19 in mysql_parse (parser_state=0x7fc621fda460, thd=0x393ccc0, rawbuf=<optimized out>, length=<optimized out>) at sql/sql_parse.cc:5736
            #11 mysql_parse (thd=0x393ccc0, rawbuf=<optimized out>, length=31, parser_state=0x7fc621fda460) at sql/sql_parse.cc:5661
            #12 0x0000000000591ef8 in dispatch_command (command=COM_QUERY, thd=0x393ccc0, packet=<optimized out>, packet_length=<optimized out>) at sql/sql_parse.cc:1055
            #13 0x000000000062d0b4 in do_handle_one_connection (thd_arg=<optimized out>) at sql/sql_connect.cc:1253
            #14 0x000000000062d14a in handle_one_connection (arg=0x393ccc0) at sql/sql_connect.cc:1168
            #15 0x0000000000954e76 in pfs_spawn_thread (arg=0x38d7d50) at storage/perfschema/pfs.cc:1015
            #16 0x00007fc62d79fefc in start_thread (arg=0x7fc621fdb700) at pthread_create.c:304
            #17 0x00007fc62cb1259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
            #18 0x0000000000000000 in ?? ()

            Debug:

            #3 <signal handler called>
            #4 0x00007f8dc4c30046 in Trace::function_enter (this=0x0, func_name=0x7f8dc4c312a2 "ActiveTranx::is_tranx_end_pos") at plugin/semisync/semisync.h:50
            #5 0x00007f8dc4c2de36 in ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x31e2828 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198
            #6 0x00007f8dc4c2eff5 in ReplSemiSyncMaster::commitTrx (this=0x7f8dc4e34860, trx_wait_binlog_name=0x31e2828 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746
            #7 0x00007f8dc4c307b0 in repl_semi_report_commit (param=0x7f8dc4ec2a60) at plugin/semisync/semisync_master_plugin.cc:59
            #8 0x000000000070fe00 in Trans_delegate::after_commit (this=0x14e0360, thd=0x31acf80, all=false) at sql/rpl_handler.cc:243
            #9 0x00000000007c1d63 in ha_commit_trans (thd=0x31acf80, all=false) at sql/handler.cc:1305
            #10 0x000000000071bd43 in trans_commit_stmt (thd=0x31acf80) at sql/transaction.cc:299
            #11 0x0000000000613dc2 in mysql_execute_command (thd=0x31acf80) at sql/sql_parse.cc:4514
            #12 0x0000000000616bfd in mysql_parse (thd=0x31acf80, rawbuf=0x31d16a8 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f8dc4ec3500) at sql/sql_parse.cc:5736
            #13 0x000000000060a473 in dispatch_command (command=COM_QUERY, thd=0x31acf80, packet=0x31c9591 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at sql/sql_parse.cc:1055
            #14 0x000000000060972a in do_command (thd=0x31acf80) at sql/sql_parse.cc:794
            #15 0x000000000070a9ef in do_handle_one_connection (thd_arg=0x31acf80) at sql/sql_connect.cc:1253
            #16 0x000000000070a3da in handle_one_connection (arg=0x31acf80) at sql/sql_connect.cc:1168
            #17 0x0000000000c0116f in pfs_spawn_thread (arg=0x31567e0) at storage/perfschema/pfs.cc:1015
            #18 0x00007f8dd0640efc in start_thread (arg=0x7f8dc4ec4700) at pthread_create.c:304
            #19 0x00007f8dcf9b359d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112

            Show
            elenst Elena Stepanova added a comment - - edited I'm now getting the following crash with the same test case (on revno 3452): RelWithDebInfo: #2 <signal handler called> #3 0x00007fc621d8dd71 in function_enter (func_name=0x7fc621d90b36 "ActiveTranx::is_tranx_end_pos", this=0x0) at plugin/semisync/semisync.h:50 #4 ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x3967258 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198 #5 0x00007fc621d8eadf in ReplSemiSyncMaster::commitTrx (this=0x7fc621f937e0, trx_wait_binlog_name=0x3967258 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746 #6 0x0000000000630849 in Trans_delegate::after_commit (this=0x10a6de0, thd=<optimized out>, all=<optimized out>) at sql/rpl_handler.cc:243 #7 0x000000000069a431 in ha_commit_trans (thd=0x393ccc0, all=false) at sql/handler.cc:1305 #8 0x0000000000638c4a in trans_commit_stmt (thd=0x393ccc0) at sql/transaction.cc:299 #9 0x000000000058a053 in mysql_execute_command (thd=0x393ccc0) at sql/sql_parse.cc:4514 #10 0x0000000000590b19 in mysql_parse (parser_state=0x7fc621fda460, thd=0x393ccc0, rawbuf=<optimized out>, length=<optimized out>) at sql/sql_parse.cc:5736 #11 mysql_parse (thd=0x393ccc0, rawbuf=<optimized out>, length=31, parser_state=0x7fc621fda460) at sql/sql_parse.cc:5661 #12 0x0000000000591ef8 in dispatch_command (command=COM_QUERY, thd=0x393ccc0, packet=<optimized out>, packet_length=<optimized out>) at sql/sql_parse.cc:1055 #13 0x000000000062d0b4 in do_handle_one_connection (thd_arg=<optimized out>) at sql/sql_connect.cc:1253 #14 0x000000000062d14a in handle_one_connection (arg=0x393ccc0) at sql/sql_connect.cc:1168 #15 0x0000000000954e76 in pfs_spawn_thread (arg=0x38d7d50) at storage/perfschema/pfs.cc:1015 #16 0x00007fc62d79fefc in start_thread (arg=0x7fc621fdb700) at pthread_create.c:304 #17 0x00007fc62cb1259d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112 #18 0x0000000000000000 in ?? () Debug: #3 <signal handler called> #4 0x00007f8dc4c30046 in Trace::function_enter (this=0x0, func_name=0x7f8dc4c312a2 "ActiveTranx::is_tranx_end_pos") at plugin/semisync/semisync.h:50 #5 0x00007f8dc4c2de36 in ActiveTranx::is_tranx_end_pos (this=0x0, log_file_name=0x31e2828 "master-bin.000001", log_file_pos=576) at plugin/semisync/semisync_master.cc:198 #6 0x00007f8dc4c2eff5 in ReplSemiSyncMaster::commitTrx (this=0x7f8dc4e34860, trx_wait_binlog_name=0x31e2828 "master-bin.000001", trx_wait_binlog_pos=576) at plugin/semisync/semisync_master.cc:746 #7 0x00007f8dc4c307b0 in repl_semi_report_commit (param=0x7f8dc4ec2a60) at plugin/semisync/semisync_master_plugin.cc:59 #8 0x000000000070fe00 in Trans_delegate::after_commit (this=0x14e0360, thd=0x31acf80, all=false) at sql/rpl_handler.cc:243 #9 0x00000000007c1d63 in ha_commit_trans (thd=0x31acf80, all=false) at sql/handler.cc:1305 #10 0x000000000071bd43 in trans_commit_stmt (thd=0x31acf80) at sql/transaction.cc:299 #11 0x0000000000613dc2 in mysql_execute_command (thd=0x31acf80) at sql/sql_parse.cc:4514 #12 0x0000000000616bfd in mysql_parse (thd=0x31acf80, rawbuf=0x31d16a8 "INSERT INTO t1 SELECT * FROM t1", length=31, parser_state=0x7f8dc4ec3500) at sql/sql_parse.cc:5736 #13 0x000000000060a473 in dispatch_command (command=COM_QUERY, thd=0x31acf80, packet=0x31c9591 "INSERT INTO t1 SELECT * FROM t1", packet_length=31) at sql/sql_parse.cc:1055 #14 0x000000000060972a in do_command (thd=0x31acf80) at sql/sql_parse.cc:794 #15 0x000000000070a9ef in do_handle_one_connection (thd_arg=0x31acf80) at sql/sql_connect.cc:1253 #16 0x000000000070a3da in handle_one_connection (arg=0x31acf80) at sql/sql_connect.cc:1168 #17 0x0000000000c0116f in pfs_spawn_thread (arg=0x31567e0) at storage/perfschema/pfs.cc:1015 #18 0x00007f8dd0640efc in start_thread (arg=0x7f8dc4ec4700) at pthread_create.c:304 #19 0x00007f8dcf9b359d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:112
            Hide
            knielsen Kristian Nielsen added a comment -

            I fixed anoter similar case that could cause the crash.
            Pushed to lp:maria/5.5 (rev 3454), hopefully that's the last of them.

            Show
            knielsen Kristian Nielsen added a comment - I fixed anoter similar case that could cause the crash. Pushed to lp:maria/5.5 (rev 3454), hopefully that's the last of them.
            Hide
            knielsen Kristian Nielsen added a comment -

            Fixed in 5.5.25

            Show
            knielsen Kristian Nielsen added a comment - Fixed in 5.5.25

              People

              • Assignee:
                knielsen Kristian Nielsen
                Reporter:
                knielsen Kristian Nielsen
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - 0 minutes
                  0m
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 5 hours
                  5h