Enrico Olivelli created BOOKKEEPER-1030: -------------------------------------------
Summary: Better management of OutOfMemory errors Key: BOOKKEEPER-1030 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-1030 Project: Bookkeeper Issue Type: Wish Components: bookkeeper-server Affects Versions: 4.4.0 Reporter: Enrico Olivelli Assignee: Enrico Olivelli Priority: Critical Some bookie in production run OutOfMemory and the Bookie became really unstable. 17-01-24-13-11-42 Unexpected exception while writing 0@91465 : 17-01-24-13-11-42 java.lang.OutOfMemoryError: Java heap space That error was inside "WriteEntryProcessorV3" class in a catch (Throwable ) clause. I'm running the Bookie inside a Java process not started with the "standard" scripts. My idea to handle this kind of errors is to add a global "System errors handler" to attach to any critical thread/operation and to pass any uncatched exception to it. In case of existing "catch Throwable" the code will call the system handler as well. Maybe we can provide a default implementation which only logs the error to the logger, a more invasive implementation which calls Runtime#halt. I'm trying in production with ExitOnOutOfMemoryError option but it does not give any chance to report the status of the JVM -- This message was sent by Atlassian JIRA (v6.3.15#6346)