apache/seatunnel · warning

Snapshot was interrupted before completion

Error message

Snapshot was interrupted before completion

What it means

Oracle snapshot split read task logs 'Snapshot was interrupted before completion' (WARN) when doExecute() throws InterruptedException during snapshot reading. The InterruptedException is rethrown to the caller, so the snapshot phase of the CDC source fails. This signals the snapshot thread was cancelled/interrupted rather than a data error.

Source

Thrown at seatunnel-connectors-v2/connector-cdc/connector-cdc-oracle/src/main/java/org/apache/seatunnel/connectors/seatunnel/cdc/oracle/source/reader/fetch/scan/OracleSnapshotSplitReadTask.java:111

    @Override
    public SnapshotResult<OracleOffsetContext> execute(
            ChangeEventSourceContext context,
            OraclePartition partition,
            OracleOffsetContext previousOffset)
            throws InterruptedException {
        SnapshottingTask snapshottingTask = getSnapshottingTask(partition, previousOffset);
        final SnapshotContext<OraclePartition, OracleOffsetContext> ctx;
        try {
            ctx = prepare(partition);
        } catch (Exception e) {
            LOG.error("Failed to initialize snapshot context.", e);
            throw new RuntimeException(e);
        }
        try {
            return doExecute(context, previousOffset, ctx, snapshottingTask);
        } catch (InterruptedException e) {
            LOG.warn("Snapshot was interrupted before completion");
            throw e;
        } catch (Exception t) {
            throw new DebeziumException(t);
        } finally {
            complete(ctx);
        }
    }

    @Override
    protected SnapshotResult<OracleOffsetContext> doExecute(
            ChangeEventSourceContext context,
            OracleOffsetContext previousOffset,
            SnapshotContext snapshotContext,
            SnapshottingTask snapshottingTask)
            throws Exception {
        final OracleSnapshotContext ctx = (OracleSnapshotContext) snapshotContext;
        ctx.offset = offsetContext;

View on GitHub (pinned to cf67b549a7)

Solutions

  1. If the interruption was expected (job cancel/stop), no fix is needed; treat as normal shutdown logging.
  2. If unexpected, check engine logs for the root cause of cancellation (checkpoint timeout, OOM, failover) before this interrupt.
  3. Increase checkpoint timeout / adjust task restart strategy so snapshot tasks are not cancelled mid-run.
  4. Retry the job; snapshot splits are restartable and will resume from offsets.
Defensive patterns

Strategy: try-catch

Try / catch

try {
    // run CDC job / snapshot phase
} catch (InterruptedException e) {
    Thread.currentThread().interrupt(); // preserve interrupt status
    // treat as cancellation: stop cleanly, job restart will resume snapshot
}

Prevention

When it happens

Trigger: OracleSnapshotSplitReadTask.execute() calls doExecute() and the snapshot reading thread receives an interrupt — typically job cancellation, checkpoint/task cancellation by the engine, or shutdown while the reader is streaming the snapshot split.

Common situations: User cancels a running CDC job mid-snapshot; the Zeta/Flink engine cancels a task due to checkpoint timeout or restart; cluster shutdown during the initial snapshot phase.

Related errors


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