apache/seatunnel · warning
currentThread already be interrupted, skip trigger…
Error message
currentThread already be interrupted, skip trigger checkpoint
What it means
CheckpointCoordinator.tryTriggerPendingCheckpoint skips triggering a checkpoint when the current thread is already interrupted, logging this warning. This prevents scheduling checkpoint work on a thread being torn down, which would throw unhandled InterruptedExceptions or submit work into a closing executor.
Solutions
- Usually benign during job shutdown — no action needed; checkpoints are irrelevant once the job is cancelled/closed.
- If seen outside shutdown, inspect why the coordinator thread got interrupted (thread-pool shutdown, failover) and fix the lifecycle ordering.
- Ensure jobs are cancelled via the engine's cancel API rather than killing threads/executors directly.
- Check for repeatable interrupt sources (aggressive executor shutdownNow in custom plugins) that race the coordinator.
Defensive patterns
Strategy: try-catch
Validate before calling
if (Thread.currentThread().isInterrupted()) { skipCheckpointTrigger(); return; } Prevention
- Cancel jobs through the engine's cancel lifecycle
- Avoid shutdownNow() on coordinator executor threads from custom code
- Check failover logs if this appears outside shutdown
When it happens
Trigger: tryTriggerPendingCheckpoint (invoked from scheduleTriggerPendingCheckpoint, readyToClose, or restoreCoordinator) runs on a thread whose interrupt flag is set — typically during job cancel/close/failover when checkpoint timers fire concurrently with shutdown.
Common situations: Job cancellation while a periodic checkpoint timer fires; coordinator close racing a final checkpoint trigger; restore being interrupted by an external cancel request.
Related errors
- Checkpoint storage is unavailable
- TaskCallTimer thread interrupted
- ACKNOWLEDGE_FAILED
- ACKNOWLEDGE_FAILED
- Can not get coordinator service from an active master node.
AI-assisted analysis of apache/seatunnel@cf67b549a7 (2026-09-10).
Data as JSON: /api/errors/d0e70aae20b20863.
Report an issue: GitHub.
Appendix: source
Thrown at seatunnel-engine/seatunnel-engine-server/src/main/java/org/apache/seatunnel/engine/server/checkpoint/CheckpointCoordinator.java:733
* <ul>
* <li>The current thread must not be interrupted
* <li>All pipeline tasks must be in READY state
* <li>The configured checkpoint interval must have elapsed (except for final or schema change
* checkpoints)
* </ul>
*
* <p>If the minimum interval has not yet passed, the checkpoint trigger will be rescheduled for
* the remaining delay time.
*
* <p>This mechanism ensures stable and controlled checkpoint scheduling, preventing excessive
* checkpoint triggering while maintaining data consistency.
*
* @param checkpointType the type of checkpoint to trigger, which determines whether interval
* constraints should be applied
*/
protected void tryTriggerPendingCheckpoint(CheckpointType checkpointType) {
if (Thread.currentThread().isInterrupted()) {
LOG.warn("currentThread already be interrupted, skip trigger checkpoint");
return;
}
final long currentTimestamp = Instant.now().toEpochMilli();
if (checkpointType.notFinalCheckpoint() && checkpointType.notSchemaChangeCheckpoint()) {
if (!isAllTaskReady.get()) {
LOG.info("Not all tasks are ready, skipping checkpoint trigger");
return;
}
long interval = currentTimestamp - latestTriggerTimestamp.get();
if (interval <= 0) {
LOG.error(
"The time on your server may not be incremental which can lead checkpoint to stop. "
+ "The latestTriggerTimestamp: ({}), but the currentTimestamp: ({})",
latestTriggerTimestamp.get(),
currentTimestamp);
}
if (interval < coordinatorConfig.getCheckpointInterval()) {
LOG.info(View on GitHub (pinned to cf67b549a7)