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

Assertion `state_ == s_exec || state_ == s_quitting' failed in optimized builds | SIGABRT in wsrep::client_state::disable_streaming

Details

    Description

      SET SESSION wsrep_trx_fragment_size=DEFAULT; ;
      

      Leads to:

      10.5.3 e8351934b68d6d3ee273292eaa2ece203bb2b846

      mysqld: /data/10.5_opt/wsrep-lib/src/client_state.cpp:327: void wsrep::client_state::disable_streaming(): Assertion `state_ == s_exec || state_ == s_quitting' failed.
      

      10.5.3 e8351934b68d6d3ee273292eaa2ece203bb2b846

      Core was generated by `/data/MD020420-mariadb-10.5.3-linux-x86_64-opt/bin/mysqld --no-defaults --core-'.
      Program terminated with signal SIGABRT, Aborted.
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6)
          at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
      [Current thread is 1 (Thread 0x7fbb92755700 (LWP 5517))]
      (gdb) bt
      #0  __pthread_kill (threadid=<optimized out>, signo=signo@entry=6) at ../sysdeps/unix/sysv/linux/pthread_kill.c:57
      #1  0x000055d7acb10d47 in my_write_core (sig=sig@entry=6) at /data/10.5_opt/mysys/stacktrace.c:518
      #2  0x000055d7ac4d287a in handle_fatal_signal (sig=6) at /data/10.5_opt/sql/signal_handler.cc:325
      #3  <signal handler called>
      #4  __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:51
      #5  0x00007fbb90e99801 in __GI_abort () at abort.c:79
      #6  0x00007fbb90e8939a in __assert_fail_base (fmt=0x7fbb910107d8 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=assertion@entry=0x55d7ad0e9748 "state_ == s_exec || state_ == s_quitting", file=file@entry=0x55d7ad0e95c8 "/data/10.5_opt/wsrep-lib/src/client_state.cpp", line=line@entry=327, function=function@entry=0x55d7ad0ea760 <wsrep::client_state::disable_streaming()::__PRETTY_FUNCTION__> "void wsrep::client_state::disable_streaming()") at assert.c:92
      #7  0x00007fbb90e89412 in __GI___assert_fail (assertion=assertion@entry=0x55d7ad0e9748 "state_ == s_exec || state_ == s_quitting", file=file@entry=0x55d7ad0e95c8 "/data/10.5_opt/wsrep-lib/src/client_state.cpp", line=line@entry=327, function=function@entry=0x55d7ad0ea760 <wsrep::client_state::disable_streaming()::__PRETTY_FUNCTION__> "void wsrep::client_state::disable_streaming()") at assert.c:101
      #8  0x000055d7acc398e0 in wsrep::client_state::disable_streaming (this=this@entry=0x7fbb5a818118) at /data/10.5_opt/wsrep-lib/src/client_state.cpp:327
      #9  0x000055d7ac7c40e8 in wsrep_trx_fragment_size_update (self=<optimized out>, thd=0x7fbb5a812018) at /data/10.5_opt/sql/wsrep_var.cc:786
      #10 0x000055d7ac22ce66 in sys_var::update (this=0x55d7ad6808c0 <Sys_wsrep_trx_fragment_size>, thd=0x7fbb5a812018, var=0x7fbb5a847278) at /data/10.5_opt/sql/set_var.cc:213
      #11 0x000055d7ac22d2c5 in set_var::update (this=<optimized out>, thd=<optimized out>) at /data/10.5_opt/sql/set_var.cc:859
      #12 0x000055d7ac22e5c9 in sql_set_variables (thd=thd@entry=0x7fbb5a812018, var_list=var_list@entry=0x7fbb5a816d70, free=free@entry=true) at /data/10.5_opt/sql/set_var.cc:746
      #13 0x000055d7ac2df3a1 in mysql_execute_command (thd=thd@entry=0x7fbb5a812018) at /data/10.5_opt/sql/sql_parse.cc:4976
      #14 0x000055d7ac2e4a6c in mysql_parse (thd=thd@entry=0x7fbb5a812018, rawbuf=<optimized out>, length=43, parser_state=parser_state@entry=0x7fbb927544d0, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/10.5_opt/sql/sql_parse.cc:7953
      #15 0x000055d7ac2d98e0 in dispatch_command (command=command@entry=COM_QUERY, thd=thd@entry=0x7fbb5a812018, packet=packet@entry=0x7fbb5a83a019 "SET SESSION wsrep_trx_fragment_size=DEFAULT", packet_length=packet_length@entry=43, is_com_multi=is_com_multi@entry=false, is_next_command=is_next_command@entry=false) at /data/10.5_opt/sql/sql_parse.cc:1839
      #16 0x000055d7ac2d7bff in do_command (thd=0x7fbb5a812018) at /data/10.5_opt/sql/sql_parse.cc:1358
      #17 0x000055d7ac3cc92e in do_handle_one_connection (connect=<optimized out>, connect@entry=0x7fbb904329b8, put_in_cache=put_in_cache@entry=true) at /data/10.5_opt/sql/sql_connect.cc:1422
      #18 0x000055d7ac3ccad4 in handle_one_connection (arg=arg@entry=0x7fbb904329b8) at /data/10.5_opt/sql/sql_connect.cc:1319
      #19 0x000055d7ac7389da in pfs_spawn_thread (arg=0x7fbb9044b018) at /data/10.5_opt/storage/perfschema/pfs.cc:2201
      #20 0x00007fbb91b7c6db in start_thread (arg=0x7fbb92755700) at pthread_create.c:463
      #21 0x00007fbb90f7a88f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
      

      Bug confirmed present in:
      MariaDB: 10.4.13 (dbg), 10.4.13 (opt), 10.4.14 (dbg), 10.4.14 (opt), 10.5.3 (dbg), 10.5.3 (opt), 10.5.4 (dbg), 10.5.4 (opt)

      Bug confirmed not present in:
      MariaDB: 10.1.45 (dbg), 10.1.45 (opt), 10.2.32 (dbg), 10.2.32 (opt), 10.3.23 (dbg), 10.3.23 (opt)
      MySQL: 5.5.62 (dbg), 5.5.62 (opt), 5.6.47 (dbg), 5.6.47 (opt), 5.7.29 (dbg), 5.7.29 (opt), 8.0.19 (dbg), 8.0.19 (opt)

      Attachments

        Issue Links

          Activity

            Note to self; two unique bug strings, slightly different stacks

            state_ == s_exec || state_ == s_quitting|SIGABRT|wsrep::client_state::disable_streaming|wsrep_trx_fragment_size_update|sys_var::update|set_var::update
            state_ == s_exec || state_ == s_quitting|SIGABRT|wsrep::client_state::disable_streaming|wsrep_trx_fragment_size_update|sys_var::update|sys_var::set_default
            

            Roel Roel Van de Paar added a comment - Note to self; two unique bug strings, slightly different stacks state_ == s_exec || state_ == s_quitting|SIGABRT|wsrep::client_state::disable_streaming|wsrep_trx_fragment_size_update|sys_var::update|set_var::update state_ == s_exec || state_ == s_quitting|SIGABRT|wsrep::client_state::disable_streaming|wsrep_trx_fragment_size_update|sys_var::update|sys_var::set_default
            Roel Roel Van de Paar added a comment - - edited

            Please also try with

            SET SESSION wsrep_trx_fragment_size=0;
            

            As well as

            SET GLOBAL wsrep_trx_fragment_size=0;
            

            Roel Roel Van de Paar added a comment - - edited Please also try with SET SESSION wsrep_trx_fragment_size=0; As well as SET GLOBAL wsrep_trx_fragment_size=0;

            Sometimes coredumps for this bug do not seem to generate properly.

            Roel Roel Van de Paar added a comment - Sometimes coredumps for this bug do not seem to generate properly.

            I think this problem has been already fixed :

            jan@jan-HP-ZBook-15u-G5:~/mysql/10.4/mysql-test$ ./mtr galera.galera_var_trx_fragment_size
            Logging: ./mtr  galera.galera_var_trx_fragment_size
            vardir: /home/jan/mysql/10.4/mysql-test/var
            Checking leftover processes...
            Removing old var directory...
            Creating var directory '/home/jan/mysql/10.4/mysql-test/var'...
            Checking supported features...
            MariaDB Version 10.4.15-MariaDB-debug
             - SSL connections supported
             - binaries are debug compiled
             - binaries built with wsrep patch
            Collecting tests...
            Installing system database...
             
            ==============================================================================
             
            TEST                                      RESULT   TIME (ms) or COMMENT
            --------------------------------------------------------------------------
             
            worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019
            connection node_2;
            connection node_1;
            SET SESSION wsrep_trx_fragment_size=DEFAULT;
            SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SET SESSION wsrep_trx_fragment_size=0;
            SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SET SESSION wsrep_trx_fragment_size=DEFAULT;
            SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SET GLOBAL wsrep_trx_fragment_size=0;
            SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size';
            Variable_name	Value
            wsrep_trx_fragment_size	0
            galera.galera_var_trx_fragment_size 'innodb' [ pass ]   2052
            --------------------------------------------------------------------------
            The servers were restarted 0 times
            Spent 2.052 of 24 seconds executing testcases
             
            Completed: All 1 tests were successful.
            

            jplindst Jan Lindström (Inactive) added a comment - I think this problem has been already fixed : jan@jan-HP-ZBook-15u-G5:~/mysql/10.4/mysql-test$ ./mtr galera.galera_var_trx_fragment_size Logging: ./mtr galera.galera_var_trx_fragment_size vardir: /home/jan/mysql/10.4/mysql-test/var Checking leftover processes... Removing old var directory... Creating var directory '/home/jan/mysql/10.4/mysql-test/var'... Checking supported features... MariaDB Version 10.4.15-MariaDB-debug - SSL connections supported - binaries are debug compiled - binaries built with wsrep patch Collecting tests... Installing system database...   ==============================================================================   TEST RESULT TIME (ms) or COMMENT --------------------------------------------------------------------------   worker[1] Using MTR_BUILD_THREAD 300, with reserved ports 16000..16019 connection node_2; connection node_1; SET SESSION wsrep_trx_fragment_size=DEFAULT; SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SET SESSION wsrep_trx_fragment_size=0; SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SET SESSION wsrep_trx_fragment_size=DEFAULT; SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SET GLOBAL wsrep_trx_fragment_size=0; SHOW SESSION VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 SHOW GLOBAL VARIABLES LIKE 'wsrep_trx_fragment_size'; Variable_name Value wsrep_trx_fragment_size 0 galera.galera_var_trx_fragment_size 'innodb' [ pass ] 2052 -------------------------------------------------------------------------- The servers were restarted 0 times Spent 2.052 of 24 seconds executing testcases   Completed: All 1 tests were successful.

            It is not fixed and apparently has never been. You are checking it in a galera suite, thus on a Galera cluster. Nothing in the description suggests this. All you needed to do is to run a single statement on a vanilla server.

            I can't re-open it because there was a commit (pseudo-fix adding the irrelevant test case), so I had to create another one, MDEV-24596.

            elenst Elena Stepanova added a comment - It is not fixed and apparently has never been. You are checking it in a galera suite, thus on a Galera cluster. Nothing in the description suggests this. All you needed to do is to run a single statement on a vanilla server. I can't re-open it because there was a commit (pseudo-fix adding the irrelevant test case), so I had to create another one, MDEV-24596 .

            People

              jplindst Jan Lindström (Inactive)
              Roel Roel Van de Paar
              Votes:
              0 Vote for this issue
              Watchers:
              5 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.