[
https://issues.apache.org/jira/browse/FLUME-1610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13463435#comment-13463435
]
Hudson commented on FLUME-1610:
-------------------------------
Integrated in flume-trunk #309 (See
[https://builds.apache.org/job/flume-trunk/309/])
FLUME-1610: HDDSEventSink and bucket writer have a race condition (Revision
d1137017866f9c666f47b55452531e01a27fbdd8)
Result = SUCCESS
brock :
http://git-wip-us.apache.org/repos/asf/flume/repo?p=flume.git&a=commit&h=d1137017866f9c666f47b55452531e01a27fbdd8
Files :
*
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java
*
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/BucketWriter.java
*
flume-ng-sinks/flume-hdfs-sink/src/test/java/org/apache/flume/sink/hdfs/TestBucketWriter.java
> HDFSEventSink and bucket writer have a race condition
> -----------------------------------------------------
>
> Key: FLUME-1610
> URL: https://issues.apache.org/jira/browse/FLUME-1610
> Project: Flume
> Issue Type: Bug
> Components: Sinks+Sources
> Affects Versions: v1.2.0
> Reporter: Brock Noland
> Assignee: Mike Percy
> Fix For: v1.3.0
>
> Attachments: FLUME-1610-0.patch, FLUME-1610-3.patch
>
>
> I have seen a scenerio where an exception was thrown during
> HDFSEventSink.process when the flush on the bucket writer was called but the
> BucketWriter was already closed.
> Assumptions:
> 1) In HDFSEventSink.process when done, we flush all buckets written to once
> channel returns null or batch size is exceeded
> 2) The BucketWriter.flush method does not check the isOpen flag.
> 3) Our time roll interval code assumes the next call to the bucket writer
> will be append as such the isOpen flag will be checked and the underlying
> writer re-opened.
> As such, I think what is happening is this:
> 1) In HDFSEventSink.process the bucket writer is written to
> 2) In BucketWriter the time based roll trips
> 3) In HDFSEventSink.process the channel returns null or batch size is exceeded
> 4) In HDFSEventSink.process bucket writer flush is called throwing the
> exception logged above.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira