[
https://issues.apache.org/jira/browse/SAMZA-178?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Martin Kleppmann updated SAMZA-178:
-----------------------------------
Attachment: SAMZA-178.patch
Here's a patch: https://reviews.apache.org/r/19524/
I left one "catch Throwable" in there, namely in SamzaContainer.run. Though
perhaps even that one should be changed too (though the process will be killed
in any case). What do you think?
I also noticed that CheckpointSerde was silently swallowing exceptions, so I
added logging there. Or was it deliberately silent?
> Review catching of Throwable
> ----------------------------
>
> Key: SAMZA-178
> URL: https://issues.apache.org/jira/browse/SAMZA-178
> Project: Samza
> Issue Type: Task
> Reporter: Martin Kleppmann
> Attachments: SAMZA-178.patch
>
>
> We have various places in the code where we do:
> {noformat}
> try { ... } catch { case _ => ... }
> try { ... } catch { case e: Throwable => ... }
> {noformat}
> That's potentially dangerous, because Throwable is the supertype for various
> things that really shouldn't be caught by normal code, such as
> java.lang.OutOfMemoryError or scala.runtime.NonLocalReturnControl (the latter
> is used internally by Scala for flow control).
> We should probably change most or all of those occurrences to catch Exception
> instead. But it's worth reviewing each case to make sure that it really
> doesn't need to catch Throwable after all.
> See also discussion on https://reviews.apache.org/r/18606/ (SAMZA-161).
--
This message was sent by Atlassian JIRA
(v6.2#6252)