Skip to content

Commit

Permalink
Cleanup event backoff.
Browse files Browse the repository at this point in the history
Signed-off-by: Lantao Liu <lantaol@google.com>
  • Loading branch information
Random-Liu committed Mar 15, 2018
1 parent eff311d commit d389af8
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 16 deletions.
14 changes: 7 additions & 7 deletions pkg/server/events.go
Expand Up @@ -82,8 +82,7 @@ func newEventMonitor(c *containerstore.Store, s *sandboxstore.Store) *eventMonit
sandboxStore: s,
ctx: ctx,
cancel: cancel,
backOff: newBackOff(backOffInitDuration, backOffMaxDuration,
backOffExpireCheckDuration, clock.RealClock{}),
backOff: newBackOff(),
}
}

Expand Down Expand Up @@ -134,6 +133,7 @@ func (em *eventMonitor) start() (<-chan struct{}, error) {
break
}
if em.backOff.isInBackOff(cID) {
logrus.Infof("Events for container %q is in backoff, enqueue event %+v", cID, evt)
em.backOff.enBackOff(cID, evt)
break
}
Expand Down Expand Up @@ -314,13 +314,13 @@ func handleSandboxExit(ctx context.Context, e *eventtypes.TaskExit, sb sandboxst
return nil
}

func newBackOff(min, max, check time.Duration, c clock.Clock) *backOff {
func newBackOff() *backOff {
return &backOff{
queuePool: map[string]*backOffQueue{},
minDuration: min,
maxDuration: max,
checkDuration: check,
clock: c,
minDuration: backOffInitDuration,
maxDuration: backOffMaxDuration,
checkDuration: backOffExpireCheckDuration,
clock: clock.RealClock{},
}
}

Expand Down
17 changes: 8 additions & 9 deletions pkg/server/events_test.go
Expand Up @@ -68,7 +68,8 @@ func TestBackOff(t *testing.T) {
}

t.Logf("Should be able to backOff a event")
actual := newBackOff(backOffInitDuration, backOffMaxDuration, backOffExpireCheckDuration, testClock)
actual := newBackOff()
actual.clock = testClock
for k, queue := range inputQueues {
for _, event := range queue.events {
actual.enBackOff(k, event)
Expand All @@ -92,18 +93,16 @@ func TestBackOff(t *testing.T) {
notExistKey := "containerNotExist"
assert.Equal(t, actual.isInBackOff(notExistKey), false)

t.Logf("No containers should be expired")
assert.Empty(t, actual.getExpiredContainers())

t.Logf("Should be able to get all keys which are expired for backOff")
testClock.Sleep(backOffInitDuration)
expKeyMap := map[string]struct{}{}
for k := range inputQueues {
expKeyMap[k] = struct{}{}
}
actKeyList := actual.getExpiredContainers()
actKeyMap := map[string]struct{}{} //assert.Equal can't compare slice without order
for _, k := range actKeyList {
actKeyMap[k] = struct{}{}
assert.Equal(t, len(inputQueues), len(actKeyList))
for k := range inputQueues {
assert.Contains(t, actKeyList, k)
}
assert.Equal(t, actKeyMap, expKeyMap)

t.Logf("Should be able to get out all backOff events")
doneQueues := map[string]*backOffQueue{}
Expand Down

0 comments on commit d389af8

Please sign in to comment.