Details
-
Bug
-
Status: Patch Available
-
Major
-
Resolution: Unresolved
-
1.5.2
-
None
-
None
-
Fix the problem that failover processor does not kick-in for HDFS sink on IOException
Description
From a recent thread on the user mailing list:
I have investigated the HDFSEventSink source code, found if the exception was IOException , the exception would not throw to the upper layer,
So FailOverSinkProcessor would not mark this sink as dead.
.... } catch (IOException eIO) { transaction.rollback(); LOG.warn("HDFS IO error", eIO); return Status.BACKOFF; } catch (Throwable th) { transaction.rollback(); LOG.error("process failed", th); if (th instanceof Error) { throw (Error) th; } else { throw new EventDeliveryException(th); } } ....
The failover processor should be able to use the backoff signal as indication of failure and switch over to the next sink.