Details
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
|
|