Hi Stefan,

unfortunately, I can not share any heap dumps with you. I was able to
resolve some of the issues my self today, the root causes were different
for different jobs.

1) Jackson 2.7.2 (which comes with Flink) has a known class loading
issue (see https://github.com/FasterXML/jackson-databind/issues/1363).
Shipping a shaded version of Jackson 2.8.4 with our user code helped. I
recommend upgrading Flink's Jackson version soon.

2) We have a dependency on the flink-table [1] , which ships with
Calcite including the Calcite JDBC Driver, which can not been collected
cause of the known problem with the java.sql.DriverManager. Putting the
flink-table in Flink's lib dir instead of shipping it with the user code
helps. You should update the documentation, because this will always
happen when using flink-table, I think. So I wonder, why this has not
come up before actually.

3) Unresolved: Some Threads in a custom source which are not proberly
shut down and keep references to the UserCodeClassLoader. I did not have
time to look into this issue so far.

Cheers,

Konstantin

[1] Side note: We only need flink-table for the "Row" class used in the
JdbcOutputFormat, so it might make sense to move this class somewhere
else. Naturally, we also tried to exclude the "transitive" dependency on
org.apache.calcite until we noticed that calcite is packaged with
flink-table, so that you can not even exclude it. What is the reasons
for this?




On 30.11.2016 00:55, Stefan Richter wrote:
> Hi,
> 
> could you somehow provide us a heap dump from a TM that run for a while 
> (ideally, shortly before an OOME)? This would greatly help us to figure out 
> if there is a classloader leak that causes the problem.
> 
> Best,
> Stefan
> 
>> Am 29.11.2016 um 18:39 schrieb Konstantin Knauf 
>> <konstantin.kn...@tngtech.com>:
>>
>> Hi everyone, 
>>
>> since upgrading to Flink 1.1.3 we observe frequent OOME Permgen Taskmanager 
>> Failures. Monitoring the permgen size on one of the Taskamanagers you can 
>> see that each Job (New Job and Restarts) adds a few MB, which can not be 
>> collected. Eventually, the OOME happens. This happens with all our Jobs, 
>> Streaming and Batch, on Yarn 2.4 as well as Stand-Alone. 
>>
>> On Flink 1.0.2 this was not a problem, but I will investigate it further.
>>
>> The assumption is that Flink is somehow using one of the classes, which 
>> comes with our jar and by that prevents the gc of the whole class loader. 
>> Our Jars do not include any flink dependencies though (compileOnly), but of 
>> course many others.
>>
>> Any ideas anyone? 
>>
>> Cheers and thank you, 
>>
>> Konstantin 
>>
>> sent from my phone. Plz excuse brevity and tpyos.
>> ---
>> Konstantin Knauf *konstantin.kn...@tngtech.com * +49-174-3413182
>> TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterföhring
>> Geschäftsführer: Henrik Klagges, Christoph Stock, Dr. Robert Dahlke
> 
> 

-- 
Konstantin Knauf * konstantin.kn...@tngtech.com * +49-174-3413182
TNG Technology Consulting GmbH, Betastr. 13a, 85774 Unterföhring
Geschäftsführer: Henrik Klagges, Christoph Stock, Dr. Robert Dahlke
Sitz: Unterföhring * Amtsgericht München * HRB 135082

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to