Qingsheng Ren created FLINK-33630:
-------------------------------------
Summary: CoordinationResponse should be wrapped by SerializedValue
in TaskOperatorEventGateway and JobMasterOperatorEventGateway
Key: FLINK-33630
URL: https://issues.apache.org/jira/browse/FLINK-33630
Project: Flink
Issue Type: Bug
Components: Runtime / Coordination
Affects Versions: 1.17.1, 1.18.0
Reporter: Qingsheng Ren
FLINK-26077 introduced a two-way RPC between operator and coordinator, but
{{CoordinationResponse}} are not wrapped by {{{}SerializedValue{}}}:
[https://github.com/apache/flink/blob/c61c09e464073fae430cab2dd56bd608f9d275fd/flink-rpc/flink-rpc-akka/src/main/java/org/apache/flink/runtime/rpc/pekko/a.java#L254-L255|https://github.com/apache/flink/blob/34620fc5c5698d00e64c6b15f8ce84f807a2e0d7/flink-runtime/src/main/java/org/apache/flink/runtime/jobmaster/JobMasterOperatorEventGateway.java#L54]
This might be a problem if the implementation of {{CoordinationResponse}} is
provided in user code and loaded by user code classloader, because Pekko RPC
handler always uses app classloader for serializing and deserializing RPC
parameters and return values, which will lead to {{ClassNotFoundException}} in
this case. Similar to what we do for the request, we need to wrap a
{{SerializesValue}} around the response to make sure RPC calls won't cause
{{{}ClassNotFoundException{}}}.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)