[Feature flag] Enable pruning of refs in FetchIntoObjectPool
What
Enable the :gitaly_fetch_into_object_pool_prune_refs
feature flag, which enables pruning of references in object pools which have been deleted in the pool member we're fetching from. This is required so that we can resolve conflicting references in the pool and its members and to fix updating of any such object pools. Pruned references would be kept alive via our dangling references.
Rolls out #4373 (closed).
Owners
- Team: Gitaly
- Most appropriate slack channel to reach out to:
#g_create_gitaly
- Best individual to reach out to: pks-t
Expectations
What release does this feature occur in first?
What are we expecting to happen?
D/F conflicts when fetching from pool members into object pools should be resolved. References in pools should be pruned if they have since been deleted upstream, which should reduce the number of overall references in pools. Pruned references should be kept alive via newly-created dangling references.
What might happen if this goes wrong?
Object pools might be losing unreferenced objects, potentially rendering pool members corrupt.
What can we monitor to detect problems with this?
- FetchIntoObjectPool RPC
Roll Out Steps
-
Enable on staging -
Is the required code deployed on staging? (howto) -
Enable on staging (howto) -
Add featureflagstaging to this issue (howto) -
Test on staging (howto) -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Enable on production -
Is the required code deployed on production? (howto) -
Enable on production in #production
(howto) -
Add featureflagproduction to this issue -
Verify the feature flag was used by checking Prometheus metric gitaly_feature_flag_checks_total
-
-
Default-enable the feature flag (optional, only required if backwards-compatibility concerns exist) -
Wait for release containg default-disabled feature flag. -
Change the feature flag to default-enabled (howto) -
Wait for release containing default-enabled feature flag.
-
-
Remove feature flag
Please refer to the documentation of feature flags for further information.