[
https://issues.apache.org/jira/browse/FLINK-16794?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17068546#comment-17068546
]
Till Rohrmann commented on FLINK-16794:
---------------------------------------
I think you are right [~haokstar] that the pattern
{{ClassLoader.getSystemClassLoader}} can break. In which containerization
environment are you executing Flink if I may ask?
Do you want to fix the problem?
> ClassNotFoundException caused by ClassLoader.getSystemClassLoader using
> impertinently
> ---------------------------------------------------------------------------------------
>
> Key: FLINK-16794
> URL: https://issues.apache.org/jira/browse/FLINK-16794
> Project: Flink
> Issue Type: Improvement
> Components: Client / Job Submission, Runtime / REST
> Affects Versions: 1.8.0, 1.8.1, 1.8.2, 1.8.3
> Reporter: victor.jiang
> Priority: Major
>
> In some containerization environment,the context classloader is not the
> SystemClassLoader,it uses the customized classloader usually for the classes
> isolation ,so the ClassNotFoundException may be caused。recommends using
> getClass/Caller/ThreadCurrentContext 's ClassLoader。
> The related sources below:
> 1.flink-clients\src\main\java\org\apache\flink\client\program\ClusterClient.java"(690,33):
> return getAccumulators(jobID, ClassLoader.getSystemClassLoader());
>
> 2.flink-clients\src\main\java\org\apache\flink\client\program\MiniClusterClient.java"(148,33):
> return getAccumulators(jobID, ClassLoader.getSystemClassLoader());
>
> 3.flink-runtime\src\main\java\org\apache\flink\runtime\blob\BlobUtils.java"(348,66):
> return (Throwable) InstantiationUtil.deserializeObject(bytes,
> ClassLoader.getSystemClassLoader());
>
> 4.flink-runtime\src\main\java\org\apache\flink\runtime\rest\messages\json\SerializedThrowableDeserializer.java"(52,68):
> return InstantiationUtil.deserializeObject(serializedException,
> ClassLoader.getSystemClassLoader());
>
> 5.flink-runtime\src\main\java\org\apache\flink\runtime\rpc\messages\RemoteRpcInvocation.java"(118,67):
> methodInvocation =
> serializedMethodInvocation.deserializeValue(ClassLoader.getSystemClassLoader());
--
This message was sent by Atlassian Jira
(v8.3.4#803005)