Hi Chuanlei,
The setup-default-uncaught-exception-handler fails fast in both OOM and other 
uncaught Exceptions. The difference in treatment is Runtime.halt vs 
Runtime.exist (Other uncaught exceptions handled here). 

If the OOM Error, we shutdown JVM using Runtime.halt. In other cases, we call 
Runtime.exit,  which invokes all registered shutdownhooks, giving other parts a 
chance to gracefully finalize. 

Calling Runtime.halt, is extreme caution - as it shutdowns the system without 
calling any shutdownHooks. This extreme steps is essential for OOM as attempt 
to handle that itselt can rethrow more of OOMs.
So to answer your question in short, we are failing fast - running other 
shutdownhooks or not is the only difference.

-Kishor




 


     On Tuesday, July 14, 2015 10:40 AM, Chuanlei Ni <[email protected]> 
wrote:
   

 Hi,
  I want to know why setup-default-uncaught-exception-handler just deal
with the OOM error, since the fast fail is the philosophy of Storm design.
When a thread crashes in one Storm process, the process will lost its
functionality mostly.
Why not exit the whole process when an uncaught exception happens? If we
deal exception in that way, we can remove a lot of labor for ops of storm.

Thanks in advance!


  

Reply via email to