I can confirm that the issue is reproducible with the given test, from
the command-line and IDE.
While cutting down the test case, by replacing the outputformat with a
DiscardingOutputFormat and the JDBCInputFormat with a simple collection,
i stumbled onto a new Exception after ~200 iterations:
org.apache.flink.runtime.client.JobExecutionException: Job execution failed.
Caused by: java.io.IOException: Insufficient number of network buffers:
required 4, but only 1 available. The total number of network buffers is
currently set to 5691 of 32768 bytes each. You can increase this number by
setting the configuration keys 'taskmanager.network.memory.fraction',
'taskmanager.network.memory.min', and 'taskmanager.network.memory.max'.
at
org.apache.flink.runtime.io.network.buffer.NetworkBufferPool.createBufferPool(NetworkBufferPool.java:195)
at
org.apache.flink.runtime.io.network.NetworkEnvironment.registerTask(NetworkEnvironment.java:186)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:602)
at java.lang.Thread.run(Thread.java:745)
On 11.10.2017 12:48, Flavio Pompermaier wrote:
Hi to all,
we wrote a small JUnit test to reproduce a memory issue we have in a
Flink job (that seems related to Netty) . At some point, usually
around the 28th loop, the job fails with the following exception
(actually we never faced that in production but maybe is related to
the memory issue somehow...):
Caused by: java.lang.IllegalAccessError:
org/apache/flink/runtime/io/network/netty/NettyMessage
at
io.netty.util.internal.__matchers__.org.apache.flink.runtime.io.network.netty.NettyMessageMatcher.match(NoOpTypeParameterMatcher.java)
at
io.netty.channel.SimpleChannelInboundHandler.acceptInboundMessage(SimpleChannelInboundHandler.java:95)
at
io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:102)
... 16 more
The github project is https://github.com/okkam-it/flink-memory-leak
and the JUnit test is contained in the MemoryLeakTest class (within
src/main/test).
Thanks in advance for any support,
Flavio