Uploaded image for project: 'MariaDB MaxScale'
  1. MariaDB MaxScale
  2. MXS-6283

MaxScale Crash (Signal 6) in Replicator during Partition DDL (Truncate/Add Partition)

    XMLWordPrintable

Details

    • MXS-SPRINT-266

    Description

      MaxScale crashes when the CDC Replicator tries to process partition-related SQL commands. The service stops unexpectedly (Fatal Signal 6) while parsing ALTER TABLE statements used for managing partitions.

       
      Error: std::terminate triggered by Rpl::parse_sql
      
      

      The crash specifically triggers a std::__throw_bad_function_call() inside Rpl::alter_table_add_column or the tok::Tokenizer.

       
      2026-03-18 22:24:03   info   : [26] TIMESTAMP2: 2026-03-18 22:24:05.738097
      2026-03-18 22:24:03   info   : XID for GTID '0-1-818155151': 25242869162
      2026-03-18 22:24:04   info   : GTID: 0-1-818155152
      2026-03-18 22:24:04   info   : alter table XXXX truncate partition A20250319
      2026-03-18 22:24:04   info   : Parsing failed: Table not found: YYYYY.XXXXX(alter table XXXXX truncate partition A20250319)
      2026-03-18 22:24:04   info   : GTID: 0-1-818155153
      2026-03-18 22:24:04   info   : alter table XXXX add partition(PARTITION A20260319 VALUES LESS THAN (20260319))
      2026-03-18 22:24:04   alert  : MaxScale 25.10.1 received fatal signal 6. Commit ID: 1a89c26102b6809a3761f86d6687455b4be50225, System name: Linux, Release string: Rocky Linux 9.7 (Blue Onyx), Thread: cdc::Replicator
      2026-03-18 22:24:04   alert  : Last systemd watchdog notification was 25.6525s ago, notification interval is 30s. Last 5 notifications: ["2026-03-18T22:21:38+0700", "2026-03-18T22:22:08+0700", "2026-03-18T22:22:38+0700", "2026-03-18T22:23:08+0700", "2026-03-18T22:23:38+0700"]
      2026-03-18 22:24:04   alert  : Statement currently being classified: none/unknown
      2026-03-18 22:24:04   notice : For a more detailed stacktrace, install GDB.
        /usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (maxbase::dump_stacktrace(std::function<void (char const*)>)): maxutils/maxbase/src/stacktrace.cc:190
        /usr/lib64/maxscale/libmaxscale-common.so.1.0.0 (std::_Function_base::~_Function_base()): /usr/include/c++/11/bits/std_function.h:243
        /usr/lib64/maxscale/libmaxscale-common.so.1.0.0 ((anonymous namespace)::sigfatal_handler(int)): server/core/process.cc:301
        /lib64/libc.so.6 (__restore_rt): ??:?
        /lib64/libc.so.6 (__pthread_kill_implementation): ??:?
        /lib64/libc.so.6 (__GI_raise): :?
        /lib64/libc.so.6 (__GI_abort): :?
        /lib64/libstdc++.so.6 (__cxa_throw_bad_array_new_length): ??:?
        /lib64/libstdc++.so.6 (std::rethrow_exception(std::__exception_ptr::exception_ptr)): ??:?
        /lib64/libstdc++.so.6 (std::terminate()): ??:?
        /lib64/libstdc++.so.6 (__cxa_throw): ??:?
        /lib64/libstdc++.so.6 (std::__throw_bad_function_call()): ??:?
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (tok::Tokenizer::Token::value[abi:cxx11]() const): /usr/include/c++/11/bits/std_function.h:589
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (std::_Function_base::~_Function_base()): /usr/include/c++/11/bits/std_function.h:243
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (Rpl::alter_table_add_column(std::shared_ptr<Table> const&)): server/modules/routing/replicator/rpl.cc:2531
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (Rpl::alter_table()): server/modules/routing/replicator/rpl.cc:2446
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (Rpl::parse_sql(std::string const&, std::string const&)): server/modules/routing/replicator/rpl.cc:2248
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (std::string::_M_data() const): /usr/include/c++/11/bits/basic_string.h:195
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (Rpl::handle_event(REP_HEADER, unsigned char*)): server/modules/routing/replicator/rpl.cc:2203
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (cdc::Replicator::Imp::process_one_event(std::unique_ptr<st_mariadb_rpl_event, std::function<void (st_mariadb_rpl_event*)> >&)): server/modules/routing/replicator/replicator.cc:616
        /usr/lib64/maxscale/libreplicator.so.1.0.0 (std::__atomic_base<bool>::load(std::memory_order) const): /usr/include/c++/11/bits/atomic_base.h:488
        /lib64/libstdc++.so.6 (std::error_code::default_error_condition() const): ??:?
        /lib64/libc.so.6 (start_thread): ??:?
        /lib64/libc.so.6 (__clone3): :?
      2026-03-18 22:24:04   notice : Attempting to dump stacktraces from all threads using internal profiler...
      
      

      Maxscale configuration file (Example)

       
      [maxscale]
      threads=auto
       
      ########## Database server  ################
      [aaaa_01]
      type=server
      address=XX.XXX.XXX.XXX
      port=3306
       
      [aaaa_02]
      type=server
      address=XX.XXX.XXX.XXX
      port=3306
       
      [MariaDB-Monitor-test]
      type=monitor
      module=mariadbmon
      servers=aaaa_01,aaaa_02
      user=maxscale
      password=Max@XXXXXX
      monitor_interval=2s
       
      [skip-ddl]
      type=filter
      module=binlogfilter
      exclude=/ALTER\s+TABLE/i
       
       
      ##Send data to Kafka topic
      [test-Kafka-CDC]
      type=service
      router=kafkacdc
      server_id=2000
      servers=aaaa_01,aaaa_02
      user=maxscale
      password=Max@xxxxxxx
      bootstrap_servers=XX.XXX.XXX.XXX:port
      topic=yyyyy
      match=/core001[.](yyyyy)/
      filters=skip-ddl
      
      

      Attachments

        Activity

          People

            markus makela markus makela
            pramod.mahto@mariadb.com Pramod Mahto
            Votes:
            0 Vote for this issue
            Watchers:
            4 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.