[
https://issues.apache.org/jira/browse/FLINK-24182?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17411711#comment-17411711
]
Arvid Heise commented on FLINK-24182:
-------------------------------------
I also saw another source of interrupts. Not too sure on this one, but ideally
for me, only the Interrupter interrupts and nothing else.
{noformat}
@Override
protected void cancelTask() {
if (stopped.compareAndSet(false, true)) {
if (isFailing()) {
interruptSourceThread(true);
}
cancelOperator(true);
}
}
private void cancelOperator(boolean interruptThread) {
try {
if (mainOperator != null) {
mainOperator.cancel();
}
} finally {
interruptSourceThread(interruptThread);
}
}
private void interruptSourceThread(boolean interrupt) {
// Nothing need to do if the source is finished on restore
if (operatorChain != null && operatorChain.isFinishedOnRestore()) {
return;
}
if (sourceThread.isAlive()) {
if (interrupt) {
sourceThread.interrupt();
}
} else if (!sourceThread.getCompletionFuture().isDone()) {
// source thread didn't start
sourceThread.getCompletionFuture().complete(null);
}
}
{noformat}
> Tasks canceler should not immediately interrupt
> -----------------------------------------------
>
> Key: FLINK-24182
> URL: https://issues.apache.org/jira/browse/FLINK-24182
> Project: Flink
> Issue Type: Improvement
> Components: Runtime / Task
> Reporter: Arvid Heise
> Priority: Major
>
> While debugging resource leaks (FLINK-24131), I found that any connector is
> immediately interrupted on cancel. Hence, any attempts of using blocking
> calls in {{close}} to cleanup resources are immediately unreliable (e.g.
> aborting transactions).
> It would be nice if tasks get a grace period (e.g.
> task.cancellation.interval) where they can try to free resources in a proper,
> potentially blocking fashion before being interrupted.
> Nevertheless, connectors should always expect interruptions during shutdown,
> in particular when the user-configurable grace period is depleted. I'd add
> that to the connector documentation in a separate effort.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)