[
https://issues.apache.org/jira/browse/FLINK-19916?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jingsong Lee updated FLINK-19916:
---------------------------------
Environment: (was: {code:java}
Exception in thread "Thread-10" java.lang.IllegalStateException: Trying to
access closed classloader. Please check if you store classloaders directly or
indirectly in static fields. If the stacktrace suggests that the leak occurs in
a third party library and cannot be fixed immediately, you can disable this
check with the configuration 'classloader.check-leaked-classloader'.
at
org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.ensureInner(FlinkUserCodeClassLoaders.java:161)
at
org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.getResource(FlinkUserCodeClassLoaders.java:179)
at
org.apache.hadoop.conf.Configuration.getResource(Configuration.java:2780)
at
org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3036)
at
org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2995)
at
org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2968)
at
org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2848)
at org.apache.hadoop.conf.Configuration.get(Configuration.java:1200)
at
org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1812)
at
org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1789)
at
org.apache.hadoop.util.ShutdownHookManager.getShutdownTimeout(ShutdownHookManager.java:183)
at
org.apache.hadoop.util.ShutdownHookManager.shutdownExecutor(ShutdownHookManager.java:145)
at
org.apache.hadoop.util.ShutdownHookManager.access$300(ShutdownHookManager.java:65)
at
org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:102)
{code}
This is because Hadoop 3 starts asynchronous threads to execute some shutdown
hooks.
These hooks are run after the job is executed, as a result, the classloader has
been released, but in hooks, configuration still holds the released
classloader, so it will fail to throw an exception in this asynchronous thread.
Now it doesn't affect our function, it just prints the exception stack on the
console.)
> Hadoop3 ShutdownHookManager visit closed ClassLoader
> ----------------------------------------------------
>
> Key: FLINK-19916
> URL: https://issues.apache.org/jira/browse/FLINK-19916
> Project: Flink
> Issue Type: Bug
> Components: Connectors / Hadoop Compatibility
> Reporter: Jingsong Lee
> Priority: Major
>
> {code:java}
> Exception in thread "Thread-10" java.lang.IllegalStateException: Trying to
> access closed classloader. Please check if you store classloaders directly or
> indirectly in static fields. If the stacktrace suggests that the leak occurs
> in a third party library and cannot be fixed immediately, you can disable
> this check with the configuration 'classloader.check-leaked-classloader'.
> at
> org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.ensureInner(FlinkUserCodeClassLoaders.java:161)
> at
> org.apache.flink.runtime.execution.librarycache.FlinkUserCodeClassLoaders$SafetyNetWrapperClassLoader.getResource(FlinkUserCodeClassLoaders.java:179)
> at
> org.apache.hadoop.conf.Configuration.getResource(Configuration.java:2780)
> at
> org.apache.hadoop.conf.Configuration.getStreamReader(Configuration.java:3036)
> at
> org.apache.hadoop.conf.Configuration.loadResource(Configuration.java:2995)
> at
> org.apache.hadoop.conf.Configuration.loadResources(Configuration.java:2968)
> at
> org.apache.hadoop.conf.Configuration.getProps(Configuration.java:2848)
> at org.apache.hadoop.conf.Configuration.get(Configuration.java:1200)
> at
> org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1812)
> at
> org.apache.hadoop.conf.Configuration.getTimeDuration(Configuration.java:1789)
> at
> org.apache.hadoop.util.ShutdownHookManager.getShutdownTimeout(ShutdownHookManager.java:183)
> at
> org.apache.hadoop.util.ShutdownHookManager.shutdownExecutor(ShutdownHookManager.java:145)
> at
> org.apache.hadoop.util.ShutdownHookManager.access$300(ShutdownHookManager.java:65)
> at
> org.apache.hadoop.util.ShutdownHookManager$1.run(ShutdownHookManager.java:102)
> {code}
> This is because Hadoop 3 starts asynchronous threads to execute some shutdown
> hooks.
> These hooks are run after the job is executed, as a result, the classloader
> has been released, but in hooks, configuration still holds the released
> classloader, so it will fail to throw an exception in this asynchronous
> thread.
> Now it doesn't affect our function, it just prints the exception stack on the
> console.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)