Uploaded image for project: 'Geode'
  1. Geode
  2. GEODE-8286

The Geode JVM Shutdown Hook should not be enabled by default

    XMLWordPrintableJSON

    Details

      Description

      Apache Geode registers a JVM Shutdown Hook in InternalDistributedSystem 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 (and specifically, this) controlling the enablement of the JVM Shutdown Hook, is non-public and not documented.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              jblum John Blum
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: