You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/10/24 12:45:00 UTC

[jira] [Commented] (FLINK-10655) RemoteRpcInvocation not overwriting ObjectInputStream's ClassNotFoundException

    [ https://issues.apache.org/jira/browse/FLINK-10655?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16662233#comment-16662233 ] 

ASF GitHub Bot commented on FLINK-10655:
----------------------------------------

NicoK opened a new pull request #6920: [FLINK-10655][rpc] fix RemoteRpcInvocation not overwriting ObjectInputStream's ClassNotFoundException
URL: https://github.com/apache/flink/pull/6920
 
 
   ## What is the purpose of the change
   
   `RemoteRpcInvocation` tries to give a more detailed `ClassNotFoundException` if the method type/argument deserialization fails. However, it turns out, once `ObjectInputStream` has received a `ClassNotFoundException`, it will not overwrite this anymore and we can therefore not provide a more detailed `ClassNotFoundException`.
   
   ## Brief change log
   
   - add a suppressed `ClassNotFoundException` to the existing one which contains more details
   - add more details, i.e. all successfully deserialized types and parameters (in addition to the method name)
   
   ## Verifying this change
   
   This change added tests and can be verified as follows:
   - added `ClassLoaderTest#testMessageDecodingWithUnavailableClass`
   
   ## Does this pull request potentially affect one of the following parts:
   
     - Dependencies (does it add or upgrade a dependency): **no**
     - The public API, i.e., is any changed class annotated with `@Public(Evolving)`: **no**
     - The serializers: **no** (we only integrate into the deserialization of `RemoteRpcInvocation`)
     - The runtime per-record code paths (performance sensitive): **no**
     - Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: **don't know** (not really - this only adds more debug infos in case of failures)
     - The S3 file system connector: **no**
   
   ## Documentation
   
     - Does this pull request introduce a new feature? **no**
     - If yes, how is the feature documented? **JavaDocs**
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


> RemoteRpcInvocation not overwriting ObjectInputStream's ClassNotFoundException
> ------------------------------------------------------------------------------
>
>                 Key: FLINK-10655
>                 URL: https://issues.apache.org/jira/browse/FLINK-10655
>             Project: Flink
>          Issue Type: Bug
>          Components: Distributed Coordination
>    Affects Versions: 1.5.4, 1.6.1, 1.7.0
>            Reporter: Nico Kruber
>            Assignee: Nico Kruber
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 1.5.6, 1.6.3, 1.7.0
>
>
> {{RemoteRpcInvocation}} tries to give a more detailed {{ClassNotFoundException}} if the method type/argument deserialization fails. However, it turns out, once {{ObjectInputStream}} has received a {{ClassNotFoundException}}, it will not overwrite this anymore and we can therefore not provide a more detailed {{ClassNotFoundException}}.
> Instead, the least invasive solution would be to add a suppressed {{ClassNotFoundException}} to the existing one. While at it, we could also add more details, i.e. the successfully deserialized types and arguments.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)