You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "John Blum (Jira)" <ji...@apache.org> on 2020/06/19 18:59:00 UTC

[jira] [Created] (GEODE-8286) The Geode JVM Shutdown Hook should not be enabled by default

John Blum created GEODE-8286:
--------------------------------

             Summary: The Geode JVM Shutdown Hook should not be enabled by default
                 Key: GEODE-8286
                 URL: https://issues.apache.org/jira/browse/GEODE-8286
             Project: Geode
          Issue Type: Improvement
          Components: configuration, general, management
            Reporter: John Blum


Apache Geode registers a JVM Shutdown Hook in [InternalDistributedSystem|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L2190-L2222] that ensures the Apache Geode Cache and associated DistributedSystem are shutdown properly when the JVM exits.

However, this JVM Shutdown Hook and interfere with Frameworks and Tooling that have their own Lifecycle Management capabilities.  The Spring Framework and Container is one such example.

Any managed environment, be that Micronaut, Quarkus, Pivotal Platform (PCF/TAS), Kubernetes, AWS, Azure, GCP, etc, etc, are going to have lifecycle management capabilities.

It is very important that the environment manage the lifecycle of all actors in the fully "integrated" system.

In Spring's case, it must coordinate the lifecycle of application components along with integrated systems, like Geode, in an effort to shut all components down in a coordinated, correct fashion.

If Geode's JVM Shutdown Hook is permitted to do as it pleases, then this can circumvent the Framework/Container, Tool, or other's lifecycle management capabilities, leaving the system or application in an inconsistent/incorrect state.

To make matters worse, the [JVM System Property|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L2191] (and specifically, [this|https://github.com/apache/geode/blob/rel/v1.12.0/geode-core/src/main/java/org/apache/geode/distributed/internal/InternalDistributedSystem.java#L391-L392]) controlling the enablement of the JVM Shutdown Hook, is non-public and [not documented|https://geode.apache.org/docs/guide/112/reference/topics/gemfire_properties.html].




--
This message was sent by Atlassian Jira
(v8.3.4#803005)