[ https://issues.apache.org/jira/browse/FLUME-2752?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16067955#comment-16067955 ]
ASF GitHub Bot commented on FLUME-2752: --------------------------------------- GitHub user simonati opened a pull request: https://github.com/apache/flume/pull/141 FLUME-2752 Fix AvroSource startup resource leaks Cleanup after Netty initialisation failes (call this.stop()) Make sure this.stop() releases the resources and end up the component in a LifecycleAware.STOPPED state Added junit tests to cover the invalid host and used port scenarios You can merge this pull request into a Git repository by running: $ git pull https://github.com/simonati/flume FLUME-2752 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/flume/pull/141.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 #141 ---- commit b22796fab4a9abd9edb85ae0d966ffac1785a1e5 Author: Attila Simon <s...@cloudera.com> Date: 2017-06-29T06:21:44Z FLUME-2752 Fix AvroSource startup resource leaks Cleanup after Netty initialisation failes (call this.stop()) Make sure this.stop() releases the resources and end up the component in a LifecycleAware.STOPPED state Added junit test to cover the invalid host scenario Added junit test to cover the used port scenario Change-Id: Ia6309b597166fc4061864805fc4211c57f01c58e commit 4b479013e21f77ef68da2a4f71462a7fda4ba932 Author: Attila Simon <s...@cloudera.com> Date: 2017-06-29T07:13:15Z Update rest of junit to pass Change-Id: If9e4bf672359e7d5817cfc70438004b4358c9d10 commit b9ba593299ed87a0fe0db0183398a00409311546 Author: Attila Simon <s...@cloudera.com> Date: 2017-06-29T07:20:40Z fix indention Change-Id: I37242fbb89f85ec8c31016d26c939bff82aee8f1 ---- > Flume AvroSource will leak the memory and the OOM will be happened. > ------------------------------------------------------------------- > > Key: FLUME-2752 > URL: https://issues.apache.org/jira/browse/FLUME-2752 > Project: Flume > Issue Type: Bug > Components: Sinks+Sources > Affects Versions: 1.6.0 > Reporter: yinghua_zh > Assignee: Attila Simon > > If the flume agent config the nonexist IP for the avro source,the exception > will be happened as follow: > 2015-07-21 19:57:47,054 | ERROR | [lifecycleSupervisor-1-2] | Unable to > start EventDrivenSourceRunner: { source:Avro source avro_source_21155: { > bindAddress: 51.196.27.32, port: 21155 } } - Exception follows. | > org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:253) > org.jboss.netty.channel.ChannelException: Failed to bind to: > /51.196.27.32:21155 > at > org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:297) > at org.apache.avro.ipc.NettyServer.<init>(NettyServer.java:106) > at org.apache.flume.source.AvroSource.start(AvroSource.java:294) > at > org.apache.flume.source.EventDrivenSourceRunner.start(EventDrivenSourceRunner.java:44) > at > org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:251) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) > at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745) > Caused by: java.net.BindException: Cannot assign requested address > at sun.nio.ch.Net.bind0(Native Method) > at sun.nio.ch.Net.bind(Net.java:437) > at sun.nio.ch.Net.bind(Net.java:429) > at > sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223) > at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74) > at > org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.bind(NioServerSocketPipelineSink.java:140) > at > org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleServerSocket(NioServerSocketPipelineSink.java:90) > at > org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:64) > at org.jboss.netty.channel.Channels.bind(Channels.java:569) > at > org.jboss.netty.channel.AbstractChannel.bind(AbstractChannel.java:189) > at > org.jboss.netty.bootstrap.ServerBootstrap$Binder.channelOpen(ServerBootstrap.java:342) > at org.jboss.netty.channel.Channels.fireChannelOpen(Channels.java:170) > at > org.jboss.netty.channel.socket.nio.NioServerSocketChannel.<init>(NioServerSocketChannel.java:80) > at > org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:158) > at > org.jboss.netty.channel.socket.nio.NioServerSocketChannelFactory.newChannel(NioServerSocketChannelFactory.java:86) > at > org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:276) > if the above exception happened for 2 hours,and the agent JVM -Xxx is 4G,the > OutOfMemory will be happened. -- This message was sent by Atlassian JIRA (v6.4.14#64029)