apache/seatunnel · warning · IOException
Interrupted closing target_point_lookup workers
Error message
Interrupted closing target_point_lookup workers
What it means
While shutting down the worker pool used for target point lookups, loadPoints awaits termination; an InterruptedException during that await is rethrown as IOException('Interrupted closing target_point_lookup workers') when no earlier failure exists. It means job cancellation/interruption struck during worker cleanup.
Source
Thrown at seatunnel-connectors-v2/connector-file/connector-file-base/src/main/java/org/apache/seatunnel/connectors/seatunnel/file/source/reader/UpdateFileMetadataLoader.java:221
future.cancel(true);
}
executor.shutdownNow();
try {
if (!executor.awaitTermination(30, TimeUnit.SECONDS)) {
IOException cleanupFailure =
new IOException("Timed out closing target_point_lookup workers");
if (failure != null) {
failure.addSuppressed(cleanupFailure);
} else {
throw cleanupFailure;
}
}
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
if (failure != null) {
failure.addSuppressed(e);
} else {
throw new IOException("Interrupted closing target_point_lookup workers", e);
}
}
}
}
@Getter
static final class Request {
private final int order;
private final String targetPath;
Request(int order, String targetPath) {
this.order = order;
this.targetPath = targetPath;
}
}
@Getter
static final class Result {View on GitHub (pinned to cf67b549a7)
Solutions
- Usually benign on intentional job cancellation — no action needed
- If unexpected, check engine logs for who interrupted the task (failover, timeout) and raise task/checkpoint timeouts if too aggressive
- Rerun the job; incremental metadata loading is resumable
Defensive patterns
Strategy: try-catch
Try / catch
try {
loader.load(requests);
} catch (IOException e) {
if (e.getMessage().contains("Interrupted closing target_point_lookup workers")) {
LOG.info("Job interrupted during metadata loader shutdown; safe to rerun");
} else throw e;
} Prevention
- Avoid cancelling jobs mid-startup when possible; cancel at checkpoints
- Increase engine task timeouts to reduce forced interruptions
- Treat this as benign when you intentionally cancelled the job
When it happens
Trigger: Thread interrupted while awaiting worker-pool termination in loadPoints — typically job cancellation, kill, or checkpoint/task interruption arriving during shutdown; only thrown when there was no prior lookup failure to attach the interrupt to.
Common situations: Users cancelling long-running jobs; engine killing tasks due to timeout or failover; shutdown hooks interrupting the thread during deployment restarts.
Understand the failure class
Background: "Invalid state transition" errors: "status must be X, actually Y", "already rejected/charging/uninstalled", "cannot ... while running" — what they mean when a library rejects your call — this error's family across 31 libraries.
Related errors
- Interrupted while dispatching PostgreSQL relation change for
- Interrupted while waiting for error sink worker to close
- Interrupted while waiting for error sink worker to close aft
- CLOSE_CONNECTION_FAILED
- WRITER_CLOSE_FAILED
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/68ac65ad8a93b68e.
Report an issue: GitHub.