kubernetes/pkg/controller
Kubernetes Submit Queue 47320fd3f0 Merge pull request #42938 from enisoc/orphan-race
Automatic merge from submit-queue

GC: Fix re-adoption race when orphaning dependents.

**What this PR does / why we need it**:

The GC expects that once it sees a controller with a non-nil
DeletionTimestamp, that controller will not attempt any adoption.
There was a known race condition that could cause a controller to
re-adopt something orphaned by the GC, because the controller is using a
cached value of its own spec from before DeletionTimestamp was set.

This fixes that race by doing an uncached quorum read of the controller
spec just before the first adoption attempt. It's important that this
read occurs after listing potential orphans. Note that this uncached
read is skipped if no adoptions are attempted (i.e. at steady state).

**Which issue this PR fixes**:

Fixes #42639

**Special notes for your reviewer**:

**Release note**:
```release-note
```

cc @kubernetes/sig-apps-pr-reviews
2017-03-20 01:30:11 -07:00
..
bootstrap Small fix to the bootstrap TokenCleaner 2017-03-03 20:49:18 -08:00
certificates react to informer updates 2017-02-13 09:18:32 -05:00
cloud react to informer updates 2017-02-13 09:18:32 -05:00
cronjob Generated changes for cleaning batch/v2alpha1 2017-03-06 12:26:52 +01:00
daemon GC: Fix re-adoption race when orphaning dependents. 2017-03-17 15:39:26 -07:00
deployment Merge pull request #42938 from enisoc/orphan-race 2017-03-20 01:30:11 -07:00
disruption react to informer updates 2017-02-13 09:18:32 -05:00
endpoint react to informer updates 2017-02-13 09:18:32 -05:00
garbagecollector construction of GC should not fail for restmapper error caused by tpr 2017-03-16 14:19:17 -07:00
job react to informer updates 2017-02-13 09:18:32 -05:00
namespace Merge pull request #41652 from ncdc/shared-informers-13-namespace 2017-02-23 09:36:38 -08:00
node Fixed incorrect result of getMinTolerationTime. 2017-03-12 20:21:14 +08:00
podautoscaler HPA Controller: Use Custom Metrics API 2017-03-01 10:21:50 -05:00
podgc react to informer updates 2017-02-13 09:18:32 -05:00
replicaset GC: Fix re-adoption race when orphaning dependents. 2017-03-17 15:39:26 -07:00
replication GC: Fix re-adoption race when orphaning dependents. 2017-03-17 15:39:26 -07:00
resourcequota Switch resourcequota controller to shared informers 2017-02-14 12:20:27 -05:00
route Switch route controller to shared informers 2017-02-13 15:21:33 -05:00
service Switch scheduler to use generated listers/informers 2017-02-23 09:57:12 -05:00
serviceaccount Switch serviceaccounts controller to generated shared informers 2017-02-14 14:21:14 -05:00
statefulset GC: Fix re-adoption race when orphaning dependents. 2017-03-17 15:39:26 -07:00
ttl react to informer updates 2017-02-13 09:18:32 -05:00
volume Merge pull request #41306 from gnufied/implement-interface-bulk-volume-poll 2017-03-03 10:54:38 -08:00
.import-restrictions add import restrictions 2016-10-13 16:10:24 -07:00
BUILD Update bazel 2017-02-27 06:48:13 -05:00
client_builder.go Make controller-manager resilient to stale serviceaccount tokens 2017-02-17 23:59:00 -05:00
controller_ref_manager.go GC: Fix re-adoption race when orphaning dependents. 2017-03-17 15:39:26 -07:00
controller_utils.go DaemonSet: Add ControllerRef on all created Pods. 2017-03-07 16:42:28 -08:00
controller_utils_test.go Deployment: filter out old RSes that are deleted or with non-zero replicas before cleanup 2017-02-16 14:48:10 -08:00
doc.go Use Go canonical import paths 2016-07-16 13:48:21 -04:00
lookup_cache.go Use fnv.New32a() in hash instead adler32 2017-02-15 14:03:54 +08:00
OWNERS Add janetkuo to approvers for controllers 2017-02-08 14:37:25 -08:00