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

Till Rohrmann commented on FLINK-16408:
---------------------------------------

Hi [~Echo Lee],

Flink won't reuse class loaders across different job submissions. If you submit 
a job (even if it is the same user code as a previous job), then Flink will 
treat it as a new job for which it will create a new class loader. Differently 
said, if you have a class leak in your user code, then you can bring down a 
Flink cluster by submitting this very same job multiple times to a Flink 
cluster which will deplete the metaspace eventually.

Consequently, I would recommend to find and resolve the class loading leak in 
your user code or in any user code library you are using.

> Bind user code class loader to lifetime of a slot
> -------------------------------------------------
>
>                 Key: FLINK-16408
>                 URL: https://issues.apache.org/jira/browse/FLINK-16408
>             Project: Flink
>          Issue Type: Improvement
>          Components: Runtime / Coordination
>    Affects Versions: 1.9.2, 1.10.0
>            Reporter: Till Rohrmann
>            Assignee: Till Rohrmann
>            Priority: Critical
>              Labels: pull-request-available
>             Fix For: 1.11.0
>
>         Attachments: Metaspace-OOM.png
>
>
> In order to avoid class leaks due to creating multiple user code class 
> loaders and loading class multiple times in a recovery case, I would suggest 
> to bind the lifetime of a user code class loader to the lifetime of a slot. 
> More precisely, the user code class loader should live at most as long as the 
> slot which is using it.



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

Reply via email to