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

Rpc client expiration can be done in a more thread-safe way

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.4.0
    • Component/s: None
    • Labels:
      None

      Description

      If the destroyConnection() call happens just before a client.append() or client.getBatchSize(), it is possible that an EventDeliveryException is thrown which is caused by an NPE (since destroyConnection() will set client to null).

      1. FLUME-1981.patch
        2 kB
        Hari Shreedharan

        Activity

        Hide
        hshreedharan Hari Shreedharan added a comment -

        Though this is not a data loss or stability issue, it causes an unnecessary exception to logged, which can be a red herring during debugging.

        Show
        hshreedharan Hari Shreedharan added a comment - Though this is not a data loss or stability issue, it causes an unnecessary exception to logged, which can be a red herring during debugging.
        Hide
        hshreedharan Hari Shreedharan added a comment -

        Simple patch, skipping rb.

        Show
        hshreedharan Hari Shreedharan added a comment - Simple patch, skipping rb.
        Hide
        mpercy Mike Percy added a comment -

        +1

        Show
        mpercy Mike Percy added a comment - +1
        Hide
        mpercy Mike Percy added a comment -

        Thanks for the patch Hari!

        Pushed to trunk and flume-1.4 branches.

        Show
        mpercy Mike Percy added a comment - Thanks for the patch Hari! Pushed to trunk and flume-1.4 branches.
        Hide
        hudson Hudson added a comment -

        Integrated in flume-trunk #407 (See https://builds.apache.org/job/flume-trunk/407/)
        FLUME-1981. Rpc client expiration can be done in a more thread-safe way. (Revision d4c1bc07bc33e10cfdc5eca11b085e269dbea60d)

        Result = FAILURE
        mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git&a=commit&h=d4c1bc07bc33e10cfdc5eca11b085e269dbea60d
        Files :

        • flume-ng-core/src/main/java/org/apache/flume/sink/AbstractRpcSink.java
        Show
        hudson Hudson added a comment - Integrated in flume-trunk #407 (See https://builds.apache.org/job/flume-trunk/407/ ) FLUME-1981 . Rpc client expiration can be done in a more thread-safe way. (Revision d4c1bc07bc33e10cfdc5eca11b085e269dbea60d) Result = FAILURE mpercy : http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git&a=commit&h=d4c1bc07bc33e10cfdc5eca11b085e269dbea60d Files : flume-ng-core/src/main/java/org/apache/flume/sink/AbstractRpcSink.java

          People

          • Assignee:
            hshreedharan Hari Shreedharan
            Reporter:
            hshreedharan Hari Shreedharan
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development