You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@flume.apache.org by Mingjie Lai <mj...@gmail.com> on 2011/10/21 08:30:24 UTC

Review Request: Flume-808: Source/sink.close() is not invoked by DirectDriver if source.next() is blocking.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/2523/
-----------------------------------------------------------

Review request for Flume.


Summary
-------

DirectDriver's lifecycle management is in one thread. It indicate that DirectDriver cannot close source/sink gracefully if the source.next() or sink.append() is blocking. Before the patch, in most of the cases, source and sink's close() relies on an interruption exception by DirectDriver.cancel(). 

The patch moved source.close() and sink.close() from the pumper thread to the main thread of DirectDriver. 

Put the patch for review. Expect to see more comments. 


This addresses bug Flume-808.
    https://issues.apache.org/jira/browse/Flume-808


Diffs
-----

  flume-core/src/main/java/com/cloudera/flume/core/connector/DirectDriver.java 79eb67a 
  flume-core/src/test/java/com/cloudera/flume/core/connector/TestDirectDriver.java 63a0e38 

Diff: https://reviews.apache.org/r/2523/diff


Testing
-------

TestDirectDriver passed locally. But haven't run a full tests against the trunk. I hope we can fix jenkins and make sure trunk can pass tests firstly. 


Thanks,

Mingjie