Uploaded image for project: 'Flume'
  1. Flume
  2. FLUME-1036

Reconfiguration of AVRO or NETCAT source causes port bind exception

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2.0
    • 1.2.0
    • Sinks+Sources
    • None
    • [CentOS 6.2 64-bit]

    Description

      This issue occurs with a source that has binds to a port, such as NETCAT or AVRO. In the steps below, I use AVRO as an example.

      Steps:

      1. Run with a props file that includes an avro source, such as a props file with these contents:

      1. a = agent
      2. r = source
      3. c = channel
      4. k = sink
        a1.sources = r1
        a1.channels = c1
        a1.sinks = k1
      5. ===SOURCES===
        a1.sources.r1.type = AVRO
        a1.sources.r1.bind = localhost
        a1.sources.r1.port = 1473
        a1.sources.r1.channels = c1
      6. ===CHANNELS===
        a1.channels.c1.type = MEMORY
      7. ===SINKS===
        a1.sinks.k1.type = LOGGER
        a1.sinks.k1.channel = c1

      2. Run the flume node
      [will@localhost flume-1.2.0-incubating-SNAPSHOT]$ pwd
      /home/will/git/apache/flume/flume-1.2.0-incubating-SNAPSHOT
      [will@localhost flume-1.2.0-incubating-SNAPSHOT]$ bin/flume-ng node --conf conf --conf-file conf/a1.properties --name a1

      3. Simulate a reconfig of a file by just touching the props file:
      [will@localhost flume-1.2.0-incubating-SNAPSHOT]$ touch conf/a1.properties

      At this point, an exception is thrown because an attempt is made to bind to the same port, even though the port number specified in config file didn't change (actually, nothing changed but the last modification time of the file).

      2012-03-19 02:17:48,573 (lifecycleSupervisor-1-1) [ERROR - org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:210)] Unable to start EventDrivenSourceRunner: { source:AvroSource:

      { bindAddress:localhost port:1473 }

      } - Exception follows.
      org.jboss.netty.channel.ChannelException: Failed to bind to: localhost/127.0.0.1:1473
      at org.jboss.netty.bootstrap.ServerBootstrap.bind(ServerBootstrap.java:303)
      at org.apache.avro.ipc.NettyServer.<init>(NettyServer.java:85)
      at org.apache.avro.ipc.NettyServer.<init>(NettyServer.java:66)
      at org.apache.flume.source.AvroSource.start(AvroSource.java:124)
      at org.apache.flume.source.EventDrivenSourceRunner.start(EventDrivenSourceRunner.java:39)
      at org.apache.flume.lifecycle.LifecycleSupervisor$MonitorRunnable.run(LifecycleSupervisor.java:208)

      Attachments

        1. FLUME-1036-1.patch
          9 kB
          Hari Shreedharan
        2. FLUME-1036-2.patch
          9 kB
          Hari Shreedharan
        3. FLUME-1036-fix-1.patch
          1 kB
          Hari Shreedharan

        Issue Links

          Activity

            People

              hshreedharan Hari Shreedharan
              will@cloudera.com Will McQueen
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: