[
https://issues.apache.org/jira/browse/FLUME-1075?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242655#comment-13242655
]
[email protected] commented on FLUME-1075:
------------------------------------------------------
bq. On 2012-03-30 08:33:50, Mike Percy wrote:
bq. > Since we are catching Throwable here, we may want to do it for
FLUME-1074 too. Shouldn't we do this in all places where Transaction.commit()
is called, if for nothing else than consistency?
bq.
bq. Brock Noland wrote:
bq. +1
bq.
bq. Prasad Mujumdar wrote:
bq. Perhaps we should have a cleanup method in transaction interface that
rolls back the transaction if its still open and then close it. This way we can
consolidate the transaction error handling in a single finally block instead of
multiple catch blocks.
bq.
bq. Brock Noland wrote:
bq. I mailed flume-dev on a similar issue "Channel/Transaction States"
bq.
bq. Brock Noland wrote:
bq. I would like to note that I think catching Throwable in 1074 and or
creating this idea of a cleanup shouldn't hold up either 1074 or 1075. These
are both good incremental changes.
@Brock, sorry I didn't see the thread earlier. I will log a new ticket once we
have a consensus on the dev list thread.
@Mike, if we are going to change the close() logic, then we probably won't need
to change all the exception handling code.
- Prasad
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4569/#review6570
-----------------------------------------------------------
On 2012-03-30 05:38:44, Prasad Mujumdar wrote:
bq.
bq. -----------------------------------------------------------
bq. This is an automatically generated e-mail. To reply, visit:
bq. https://reviews.apache.org/r/4569/
bq. -----------------------------------------------------------
bq.
bq. (Updated 2012-03-30 05:38:44)
bq.
bq.
bq. Review request for Flume, Arvind Prabhakar and Hari Shreedharan.
bq.
bq.
bq. Summary
bq. -------
bq.
bq. Unhandled thorwable in HDFS sink can leave transaction open.
bq.
bq.
bq. This addresses bug FLUME-1075.
bq. https://issues.apache.org/jira/browse/FLUME-1075
bq.
bq.
bq. Diffs
bq. -----
bq.
bq.
flume-ng-sinks/flume-hdfs-sink/src/main/java/org/apache/flume/sink/hdfs/HDFSEventSink.java
eee9221
bq.
bq. Diff: https://reviews.apache.org/r/4569/diff
bq.
bq.
bq. Testing
bq. -------
bq.
bq. regression tests
bq.
bq.
bq. Thanks,
bq.
bq. Prasad
bq.
bq.
> HDFSEventSink begin is called when transaction opened due to other error
> ------------------------------------------------------------------------
>
> Key: FLUME-1075
> URL: https://issues.apache.org/jira/browse/FLUME-1075
> Project: Flume
> Issue Type: Bug
> Components: Channel
> Affects Versions: v1.1.0
> Reporter: Brock Noland
> Assignee: Prasad Mujumdar
>
> If you HDFSEvenSink is unable to close a transaction, then the next time
> process is called, begin is called on that same transaction and another error
> is thrown.
> {noformat}
> 2012-03-28 17:47:36,011 (SinkRunner-PollingRunner-DefaultSinkProcessor)
> [ERROR - org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:165)]
> Unhandled exception, logging and sleeping for 5000ms
> java.lang.IllegalStateException: close() called when transaction is OPEN -
> you must either commit or rollback first
> at
> com.google.common.base.Preconditions.checkState(Preconditions.java:172)
> at
> org.apache.flume.channel.BasicTransactionSemantics.close(BasicTransactionSemantics.java:179)
> at
> org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:381)
> at
> org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:65)
> at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:148)
> at java.lang.Thread.run(Thread.java:662)
> 2012-03-28 17:47:41,013 (SinkRunner-PollingRunner-DefaultSinkProcessor)
> [ERROR -
> org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:374)]
> process failed
> java.lang.IllegalStateException: begin() called when transaction is OPEN!
> at
> com.google.common.base.Preconditions.checkState(Preconditions.java:145)
> at
> org.apache.flume.channel.BasicTransactionSemantics.begin(BasicTransactionSemantics.java:131)
> at
> org.apache.flume.sink.hdfs.HDFSEventSink.process(HDFSEventSink.java:323)
> at
> org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:65)
> at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:148)
> at java.lang.Thread.run(Thread.java:662)
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira