[ 
https://issues.apache.org/jira/browse/FLINK-5232?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16541432#comment-16541432
 ] 

Till Rohrmann commented on FLINK-5232:
--------------------------------------

Hi [~yanghua], the issue is still relevant and I think it would be a good idea 
to solve it.

Apart from setting a default uncaught exception handler, I think it would also 
be necessary to set this handler for the thread pools created by the 
{{ActorSystem}}. The way to do it, could be to extend {{ActorSystem}} and to 
override the {{uncaughtExceptionHandler}} method. At the moment we only exit 
the JVM if we encounter a fatal error but not if it is a non fatal error.

> Add a Thread default uncaught exception handler on the JobManager
> -----------------------------------------------------------------
>
>                 Key: FLINK-5232
>                 URL: https://issues.apache.org/jira/browse/FLINK-5232
>             Project: Flink
>          Issue Type: Sub-task
>          Components: JobManager
>            Reporter: Stephan Ewen
>            Assignee: vinoyang
>            Priority: Major
>
> When some JobManager threads die because of uncaught exceptions, we should 
> bring down the JobManager. If a thread dies from an uncaught exception, there 
> is a high chance that the JobManager becomes dysfunctional.
> The only sfae thing is to rely on the JobManager being restarted by YARN / 
> Mesos / Kubernetes / etc.
> I suggest to add this code to the JobManager launch:
> {code}
> Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() {
>     @Override
>     public void uncaughtException(Thread t, Throwable e) {
>         try {
>             LOG.error("Thread {} died due to an uncaught exception. Killing 
> process.", t.getName());
>         } finally {
>             Runtime.getRuntime().halt(-1);
>         }
>     }
> });
> {code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to