Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
1
Description
When a Process throws an exception, we log it, terminate the throwing Process, and continue to run. However, currently there exists no known user-level code that I'm aware of that handles the unexpected termination due to an uncaught exception.
Generally, this means that when an exception is thrown (e.g. a bad call to std::map::at), the Process terminates with a log message but things get "stuck" and the user has to debug what is wrong / kill the process.
Libprocess would likely need to provide some primitives to better support handling unexpected termination of a Process in order for us to provide a strategy where we continue running.
In the short term, it would be prudent to abort libprocess if any Process throws an exception so that users can observe the issue and we can get it fixed.