GitHub user StephanEwen opened a pull request:

    https://github.com/apache/flink/pull/5348

    [FLINK-8466] [runtime] Make sure ErrorInfo references no user-defined 
classes

    ## What is the purpose of the change
    
    Making sure that ErrorInfo references no user-defined classes and thus does 
not prevent class unloading.
    
    ## Brief change log
    
      - `ErrorInfo` holds its exceptions as `SerializedThrowable`.
      - Pull the "ground truth" exception into a separate fields, so that the 
ExecutionGraph logic itself can always assume to have the proper ground-truth 
exception. That is important, because the ExecutionGraph may react differently 
to different exception types, and it is critical that the exception does not 
get lost on occasion (as possible in case of a weak reference).
    
    
    ## Verifying this change
    
    Self contained, adds a unit test.
    
    ## Does this pull request potentially affect one of the following parts:
    
      - Dependencies (does it add or upgrade a dependency): (yes / **no)**
      - The public API, i.e., is any changed class annotated with 
`@Public(Evolving)`: (yes / **no)**
      - The serializers: (yes / **no** / don't know)
      - The runtime per-record code paths (performance sensitive): (yes / 
**no** / don't know)
      - Anything that affects deployment or recovery: JobManager (and its 
components), Checkpointing, Yarn/Mesos, ZooKeeper: **(yes** / no / don't know)
      - The S3 file system connector: (yes / **no** / don't know)
    
    ## Documentation
    
      - Does this pull request introduce a new feature? (yes / **no)**
      - If yes, how is the feature documented? (**not applicable** / docs / 
JavaDocs / not documented)


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/StephanEwen/incubator-flink error_info

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/flink/pull/5348.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #5348
    
----
commit 9a95c377a8ce713791a8697ca8fa2a5f24dacc4f
Author: Stephan Ewen <sewen@...>
Date:   2018-01-23T21:00:06Z

    [FLINK-8466] [runtime] Make sure ErrorInfo references no user-defined 
classes.
    
    That way, holding on to the ErrorInfo does not prevent class unloading.
    
    However, this implies that the ErrorInfo must not hold strong references to 
any Exception classes.
    For that reason, the commit pull the "ground truth" exception into a 
separate fields, so that the
    ExecutionGraph logic itself can always assume to have the proper 
ground-truth exception.

----


---

Reply via email to