Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
0.10.0, 1.0.0, 2.0.0
-
None
Description
The report-error-and-die function in executor.clj calls report-error, which can throw exceptions if Curator runs into any kind of trouble while registering the error. I suspect this may happen with network errors, but it can also happen if two executors for the same component throw exceptions at the same time and no errors have been registered for the component previously. This is because both calls to report-error-and-die update the lastErrorPath, and ZkStateStorage set_data doesn't catch the potential NodeExistsException that may be thrown from the create call.
If an exception is thrown from report-error, the suicide-fn is never called, and the worker keeps running sans the crashed executor.