[
https://issues.apache.org/jira/browse/FLINK-9844?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17341739#comment-17341739
]
Bo Cui edited comment on FLINK-9844 at 5/10/21, 7:30 AM:
---------------------------------------------------------
yes Do you want to fix it? [~chesnay]
{code:java}
if (isDetached){
userCodeClassLoader.close();
}
{code}
I've verified it locally and it's good.
was (Author: bo cui):
yes Do you want to fix it? [~chesnay]
> PackagedProgram does not close URLClassLoader
> ---------------------------------------------
>
> Key: FLINK-9844
> URL: https://issues.apache.org/jira/browse/FLINK-9844
> Project: Flink
> Issue Type: Improvement
> Components: Command Line Client, Runtime / REST
> Affects Versions: 1.4.2, 1.5.1, 1.6.0
> Reporter: Chesnay Schepler
> Assignee: Chesnay Schepler
> Priority: Major
> Labels: pull-request-available
> Fix For: 1.11.4, 1.12.2, 1.13.0
>
>
> The {{PackagedProgram}} class creates a user-code classloader to execute the
> programs {{main}} method.
> This classloader is a {{URLClassLoader}} (except in the case of some tests),
> which contains opened {{JarFiles}} for all accessed jars.
> The {{URLClassLoader}} class implements {{Closeable}} for the purpose of
> cleaning up closeable resources, however we never actually call this method.
> The {{PackagedProgram}} only works against the {{ClassLoader}} class, which
> doesn't implement {{Closeable}}.
> As a result, deleting a jar after submitting it with the {{JarRunHandler}}
> currently fails on Windows, since the jar is still in use.
> As far as i can tell after the JobGraph has been compiled this classloader is
> no longer necessary and should be closed. (This assumes that a given
> {{PackagedProgram}} is only used once to create a JobGraph}}, otherwise we'd
> needa dedicate close method)
--
This message was sent by Atlassian Jira
(v8.3.4#803005)