[ https://issues.apache.org/jira/browse/SAMZA-1077?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jagadish updated SAMZA-1077: ---------------------------- Description: Here's the snippet from the startup sequence of the SamzaContainer. {code:title=SamzaContainer.scala|borderStyle=solid} startProducers startTask startConsumers startSecurityManger info("Entering run loop.") addShutdownHook runLoop.run } catch { case e: Exception => error("Caught exception in process loop.", e) throw e } finally { info("Shutting down.") shutdownConsumers shutdownTask shutdownStores {code} In this case, the catch block merely catches Exceptions and not Errors. Consider the following sequence: 1. `NoSuchMethodError` thrown in the startup sequence. 2. The error is not caught in the catch block. 3. The f Catching all Throwables will prevent this. was: Here's the snippet from the startup sequence of the SamzaContainer. {code:title=SamzaContainer.scala|borderStyle=solid} startProducers startTask startConsumers startSecurityManger info("Entering run loop.") addShutdownHook runLoop.run } catch { case e: Exception => error("Caught exception in process loop.", e) throw e } finally { info("Shutting down.") shutdownConsumers shutdownTask shutdownStores {code} In this case, the catch block should catch all Throwables instead of merely catching Exceptions. This will cause errors like `NoSuchMethodErrors` to be masked. Furthermore, the error can get lost completely if the finally block throws an exception during any of the shutdown calls. Catching all Throwables will prevent this. > SamzaContainer should catch all Throwables instead of only exceptions > --------------------------------------------------------------------- > > Key: SAMZA-1077 > URL: https://issues.apache.org/jira/browse/SAMZA-1077 > Project: Samza > Issue Type: Bug > Reporter: Jagadish > > Here's the snippet from the startup sequence of the SamzaContainer. > {code:title=SamzaContainer.scala|borderStyle=solid} > startProducers > startTask > startConsumers > startSecurityManger > info("Entering run loop.") > addShutdownHook > runLoop.run > } catch { > case e: Exception => > error("Caught exception in process loop.", e) > throw e > } finally { > info("Shutting down.") > shutdownConsumers > shutdownTask > shutdownStores > {code} > In this case, the catch block merely catches Exceptions and not Errors. > Consider the following sequence: > 1. `NoSuchMethodError` thrown in the startup sequence. > 2. The error is not caught in the catch block. > 3. The f > Catching all Throwables will prevent this. -- This message was sent by Atlassian JIRA (v6.3.4#6332)