[ 
https://issues.apache.org/jira/browse/FLINK-16794?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Matthias updated FLINK-16794:
-----------------------------
    Description: 
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:
 # 
[ClusterClient.java:113|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-clients/src/main/java/org/apache/flink/client/program/ClusterClient.java#L113]:
 {{return getAccumulators(jobID, ClassLoader.getSystemClassLoader());}}
 # 
[BlobUtils.java:290|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/blob/BlobUtils.java#L290]:
 {{return (Throwable) InstantiationUtil.deserializeObject(bytes, 
ClassLoader.getSystemClassLoader());}}
 # 
[SerializedThrowableDeserializer.java:50|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/json/SerializedThrowableDeserializer.java#L50]:
 {{return InstantiationUtil.deserializeObject(serializedException, 
ClassLoader.getSystemClassLoader());}}
 # 
[RemoteRpcInvocation.java:121|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rpc/messages/RemoteRpcInvocation.java#L121]:
 {{methodInvocation = 
serializedMethodInvocation.deserializeValue(ClassLoader.getSystemClassLoader());}}

  was:
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());


> 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
>            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:
>  # 
> [ClusterClient.java:113|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-clients/src/main/java/org/apache/flink/client/program/ClusterClient.java#L113]:
>  {{return getAccumulators(jobID, ClassLoader.getSystemClassLoader());}}
>  # 
> [BlobUtils.java:290|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/blob/BlobUtils.java#L290]:
>  {{return (Throwable) InstantiationUtil.deserializeObject(bytes, 
> ClassLoader.getSystemClassLoader());}}
>  # 
> [SerializedThrowableDeserializer.java:50|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rest/messages/json/SerializedThrowableDeserializer.java#L50]:
>  {{return InstantiationUtil.deserializeObject(serializedException, 
> ClassLoader.getSystemClassLoader());}}
>  # 
> [RemoteRpcInvocation.java:121|https://github.com/apache/flink/blob/c6997c97c575d334679915c328792b8a3067cfb5/flink-runtime/src/main/java/org/apache/flink/runtime/rpc/messages/RemoteRpcInvocation.java#L121]:
>  {{methodInvocation = 
> serializedMethodInvocation.deserializeValue(ClassLoader.getSystemClassLoader());}}



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

Reply via email to