I'd like to change SystemFailure and calling code to not shutdown for a
java.lang.StackOverflowError.

The existing behavior would be unchanged for these VirtualMachineErrors:

java.lang.InternalError
java.lang.OutOfMemoryError
java.lang.UnknownError
java.util.zip.ZipError

Thoughts or concerns?

Thanks,
Kirk


On Fri, Sep 2, 2016 at 2:55 PM, Kirk Lund <kl...@apache.org> wrote:

> The Geode codebase currently includes the component SystemFailure which is
> initiated by any instance of VirtualMachineError:
>
>       } catch (VirtualMachineError e) {
>         SystemFailure.initiateFailure(e);
>         throw e;
>
> SystemFailure will ultimately react by closing the DistributedSystem and
> Cache (ie, shutdown the server). The original reason was to close the Cache
> in the event of an OutOfMemoryError to prevent Cache inconsistency from one
> member to another.
>
> There are additional types of VirtualMachineError besides
> OutOfMemoryError. Does it really make sense to initiate SystemFailure for
> all other types including StackOverflowError?
>
> GFSH starts all processes with a flag indicating that OutOfMemoryError
> should result in shutdown. It specifies "-XX:OnOutOfMemoryError=taskkill
> /F /PID %p" for HotSpot on Windows, "-XX:OnOutOfMemoryError=kill -KILL %p"
> for HotSpot on all other platforms, "-Xcheck:memory" on J9
> or "-XXexitOnOutOfMemory" on JRockit.
>
> Given that the above flag should terminate the process on
> OutOfMemoryError, are we now able to delete and remove SystemFailure from
> Geode? Opinions?
>
> Thanks,
> Kirk
>
>

Reply via email to