[
https://issues.apache.org/jira/browse/FLUME-2117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13844693#comment-13844693
]
Charles Orth commented on FLUME-2117:
-------------------------------------
The log is as follows:
2013-06-30 03:56:37,190 ERROR flume.SinkRunner: Unable to deliver event.
Exception follows.
org.apache.flume.FlumeException: Could not get row key!
at
com.aol.sink.aolens.AolEnsHbaseEventSerializer.getActions(AolEnsHbaseEventSerializer.java:234)
at org.apache.flume.sink.hbase.HBaseSink.process(HBaseSink.java:218)
at
org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68)
at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
at
com.aol.sink.aolens.meds.MedsEnsHbaseEventSerializer.getRowKey(MedsEnsHbaseEventSerializer.java:59)
at
com.aol.sink.aolens.AolEnsHbaseEventSerializer.getActions(AolEnsHbaseEventSerializer.java:213)
... 4 more
2013-06-30 03:56:42,193 ERROR flume.SinkRunner: Unable to deliver event.
Exception follows.
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.hbase.HBaseSink.process(HBaseSink.java:209)
at
org.apache.flume.sink.DefaultSinkProcessor.process(DefaultSinkProcessor.java:68)
at org.apache.flume.SinkRunner$PollingRunner.run(SinkRunner.java:147)
at java.lang.Thread.run(Thread.java:722)
To work around this situation, we no longer throw an exception. The hack
involved replacing the put data with an empty map. Not an elegant solution but
it works for the prePut condition we faced.
FLUME-2259 may resolve this issue from my quick read of the exception stack.
> HBaseSink & flume.SinkRunner - Infinite loop
> ---------------------------------------------
>
> Key: FLUME-2117
> URL: https://issues.apache.org/jira/browse/FLUME-2117
> Project: Flume
> Issue Type: Bug
> Components: Sinks+Sources
> Affects Versions: v1.3.0
> Reporter: Charles Orth
>
> HBaseSink.process method calls action to pull an action from the channel. If
> our sink throws an exception, the transaction is never closed and the current
> action remains on the channel. Thereby, repeatedly replaying the same action.
> The flume process must have manual intervention to remove the invalid action.
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)