You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@bookkeeper.apache.org by "Enrico Olivelli (JIRA)" <ji...@apache.org> on 2017/04/10 08:16:41 UTC
[jira] [Created] (BOOKKEEPER-1030) Better management of OutOfMemory
errors
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)