apache/seatunnel · warning

MySQL-CDC diagnostic: SHOW MASTER STATUS returned empty resu

Error message

MySQL-CDC diagnostic: SHOW MASTER STATUS returned empty result

What it means

Diagnostic WARN from logMySqlMasterStatus: the SHOW MASTER STATUS query returned an empty result set, meaning the server currently has no active binlog (binlogging disabled or no events written yet). This explains why a restored binlog filename/position cannot be matched to the server's current binlog state.

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:519

                                "MySQL-CDC diagnostic: variable {}={}",
                                rs.getString(1),
                                rs.getString(2));
                    });
        } catch (SQLException e) {
            LOG.warn(
                    "MySQL-CDC diagnostic: failed to query variable {}: {}",
                    variableName,
                    e.getMessage());
        }
    }

    private void logMySqlMasterStatus() {
        try {
            connection.query(
                    "SHOW MASTER STATUS",
                    rs -> {
                        if (!rs.next()) {
                            LOG.warn(
                                    "MySQL-CDC diagnostic: SHOW MASTER STATUS returned empty result");
                            return;
                        }
                        String file = safeGetString(rs, "File");
                        String position = safeGetString(rs, "Position");
                        String gtidSet = safeGetString(rs, "Executed_Gtid_Set");
                        LOG.warn(
                                "MySQL-CDC diagnostic: master status file={}, position={}, executed_gtid_set={}",
                                file,
                                position,
                                gtidSet);
                    });
        } catch (SQLException e) {
            LOG.warn(
                    "MySQL-CDC diagnostic: failed to query SHOW MASTER STATUS: {}", e.getMessage());
        }
    }

View on GitHub (pinned to cf67b549a7)

Solutions

  1. Enable binlogging (log_bin=ON) on the target server and restart MySQL
  2. Confirm with SELECT @@log_bin; — must be 1
  3. On MySQL 8.4+/9.x, run SHOW BINARY LOG STATUS manually; upgrade the connector version that uses the new command
  4. Point the job at the primary server with binlogs enabled rather than a binlog-less node

Example fix

// before (my.cnf)
# skip-log-bin
// after (my.cnf, restart required)
log_bin = mysql-bin
server_id = 1
Defensive patterns

Strategy: validation

Validate before calling

SELECT @@log_bin; -- must be 1
SHOW MASTER STATUS; -- or SHOW BINARY LOG STATUS on MySQL 8.4+
SHOW BINARY LOGS;

Prevention

When it happens

Trigger: Called during logBinlogNotAvailableDiagnostics or logGtidNotAvailableDiagnostics; SHOW MASTER STATUS executes but yields zero rows — classic on servers with log_bin=OFF or with no write activity and binlogs purged/disabled.

Common situations: Reading from a replica or instance with binlog disabled; fresh server that never produced a binlog event; MySQL 8.4+/9.x where SHOW MASTER STATUS is deprecated/removed (use SHOW BINARY LOG STATUS).

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


AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10). Data as JSON: /api/errors/d8f8b8c80da7cfaa. Report an issue: GitHub.