apache/seatunnel · warning
MySQL-CDC diagnostic
Error message
MySQL-CDC diagnostic: {} status empty/unsupported What it means
This is a WARN-level diagnostic message, not a fatal error. When the MySQL-CDC connector runs a replication-status diagnostic query (e.g. SHOW SLAVE STATUS / SHOW REPLICA STATUS / SHOW MASTER STATUS), if the query returns no usable columns for the given label, the connector logs that the server's status output was empty or the statement is unsupported by that server/version, and continues normally.
Solutions
- No action strictly required — this is informational; replication continues.
- Verify you connected to the intended MySQL instance and that it has the role the diagnostic assumes (replica vs master).
- Check server version/variant; run the underlying SHOW SLAVE/REPLICA STATUS manually to confirm which columns exist.
- If diagnostics are noisy and not useful, upgrade the connector or adjust configuration that triggers the diagnostic dump.
Defensive patterns
Strategy: validation
Validate before calling
// before starting CDC, confirm the server answers the status statement with data SHOW REPLICA STATUS; -- or SHOW SLAVE STATUS on older servers -- expect non-empty Replica_IO_Running / Retrieved_Gtid_Set etc.
Prevention
- Confirm the MySQL instance role (master vs replica) before interpreting diagnostics.
- Test SHOW SLAVE/REPLICA STATUS manually with the CDC credentials.
- Account for server variant (MariaDB vs MySQL, old vs new naming).
- Treat this WARN as informational, not a failure.
When it happens
Trigger: logReplicationStatus executes a status SQL statement during logMySqlReplicationStatus diagnostics; every fetched column is null or filtered out so the result row is empty — e.g. SHOW SLAVE STATUS on a server that is not a replica, or an older/newer MySQL/MariaDB variant that does not expose the expected columns.
Common situations: Running CDC diagnostics against a non-replica MySQL instance; MariaDB or MySQL 8.0.22+ where SLAVE STATUS was renamed to REPLICA STATUS and older column names are absent; connecting through a proxy that strips session status; diagnostics invoked on the wrong node of a replicated topology.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- MySQL-CDC diagnostic
- Failed to update offset for skipped event
- MySQL-CDC diagnostic: cannot compare binlog sequence…
- MySQL-CDC diagnostic: connected to MySQL hostname=
- MySQL-CDC diagnostic
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/cba06d652b1c629c.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-mysql/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/mysql/source/reader/fetch/MySqlSourceFetchTaskContext.java:590
safeGetString(rs, "Exec_Master_Log_Pos"),
safeGetString(rs, "Read_Master_Log_Pos"));
String retrievedGtidSet = safeGetString(rs, "Retrieved_Gtid_Set");
String executedGtidSet = safeGetString(rs, "Executed_Gtid_Set");
row.add("source_host=" + sourceHost);
row.add("io_running=" + ioRunning);
row.add("sql_running=" + sqlRunning);
row.add("relay_master_log_file=" + relayMasterLogFile);
row.add("exec_master_log_pos=" + execMasterLogPos);
if (retrievedGtidSet != null) {
row.add("retrieved_gtid_set=" + retrievedGtidSet);
}
if (executedGtidSet != null) {
row.add("executed_gtid_set=" + executedGtidSet);
}
});
if (row.isEmpty()) {
LOG.warn("MySQL-CDC diagnostic: {} status empty/unsupported", label);
return true;
}
LOG.warn("MySQL-CDC diagnostic: {} status {}", label, String.join(", ", row));
return true;
} catch (SQLException e) {
LOG.warn("MySQL-CDC diagnostic: {} failed: {}", sql, e.getMessage());
return false;
}
}
private void logBinlogRangeAnalysis(
String requiredBinlogFilename, List<String> availableBinlogFiles) {
BinlogFileNumber required = parseBinlogFileNumber(requiredBinlogFilename);
if (required == null) {
return;
}
long min = Long.MAX_VALUE;View on GitHub (pinned to cf67b549a7)