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

            Unassigned Unassigned
            jblum John Blum
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: