forked from arangodb/arangodb
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix issues with Pregel garbage-collection (arangodb#19725)
* fix issues with Pregel garbage-collection when dropping a database, the Pregel conductor will still hold a ref count for the already-dropped database, until the conductor is garbage-collected. garbage-collection for conductors only happens every ~20s, and by default only after a timeout that is too long for being useful in integration tests. this PR changes the conductor garbage collection so that conductors of dropped databases can be cleaned up even before their TTL has expired. the PR also adds an extra round of garbage collection in the stop phase of the PregelFeature, because when performing the garbage collection in the unprepare phase only, assertion failures can occur. the problem is that garbage-collecting conductors can post to the scheduler, which is already forbidden during the unprepare step. the hope is that when garbage-collecting in the stop phase, we can eliminate all conductors before we enter the unprepare phase, so we can work around the assertion failure. garbage collection also turned up an issue, because the garbage collection first tries to cancel all GC-able conductors. Conductor::cancel() can throw however, which previously led to no conductors being garbage collected. the PR changes the logic so that when cancel() throws for a single conductor, the garbage collection still goes on and cancels all other GC-able conductors and also removes them from the internal inventory. * updated CHANGELOG
- Loading branch information
Showing
9 changed files
with
47 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters