[ 
https://issues.apache.org/jira/browse/FLINK-16597?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17061597#comment-17061597
 ] 

Roman Khachatryan commented on FLINK-16597:
-------------------------------------------

1. I mean something like this:
{code:java}
invoke() {
  try {
    Exception originalError = null;
    try {
      format.open ...
    } catch (e) {
      throw originalError = e;
    } finally {
      try {
        format.close();
      } catch (e)
        throw ExceptionUtils.firstOrSupressed("unable to close format: " + e, 
originalError);
      }
    }
  } catch (e) {
    try if (format != null) format.tryCleanupOnError
    catch (e) log(e)
    ...
  } finally {
    // do nothing with format
  }
}
{code}
2. I think you are right (we should probably add logging into catch block then)

> tryCleanupOnError should happen before close
> --------------------------------------------
>
>                 Key: FLINK-16597
>                 URL: https://issues.apache.org/jira/browse/FLINK-16597
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Task
>    Affects Versions: 1.10.0
>            Reporter: Jiayi Liao
>            Priority: Major
>
> If {{DataSinkTask}} fails or throws an exception, the {{OutputFormat}} will 
> call {{tryCleanupOnError}} before {{close}}. But the calling order is reverse 
> when {{DataSinkTask}} is cancelled, which doesn't make much sense that we can 
> still clean the output format after it's closed.
> I'm not very sure if this is a bug. But this does mislead our developers when 
> implementing our customized {{OutputFormat}}. cc [~sewen]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to