This repository has been archived by the owner on Dec 13, 2023. It is now read-only.
Ensure that ScheduledExecutorService are cleaned-up on shutdown #243
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Ensure that the ScheduledExecutorService objects used by the Postgres DAOs are correctly cleaned-up on shutdown.
It is generally well-advised to ensure that any ExecutorServices that are created by an application are shutdown properly as the application exits. Otherwise any ExecutorService instances that are left running may stay alive and prevent the JVM from exiting cleanly, requiring a SIGKILL to fully shutdown the process. The Postgres DAO implementations do not do this and this PR addresses that.
Pull Request type
./gradlew generateLock saveLock
to refresh dependencies)Changes in this PR
The Postgres implementations of ExecutionDAO, MetadataDAO and QueueDAO are now uniformly retaining references to any ScheduledExecutorServices that they construct and initialize and ensure that those are cleaned up appropriately on shutdown.
The shutdown procedure itself has been modelled on the implementation in
com.netflix.conductor.es7.dao.index.ElasticSearchRestDAOV7#shutdownExecutorService
.Alternatives considered
None.