Skip to content

Conversation

@aaronlehmann
Copy link
Collaborator

In start-then-stop mode, the updater waits for a verdict on the startup
of a new task, and then shuts down the tasks that this new task was
meant to replace. It should really only shut down the old task if the
new task successfully reached running. The thinking here was probably
that a task which fails on startup would briefly enter the running state
before failing, so there isn't much point in distinguishing between
running and some terminal state. However, if a health check is being
used, the task may never enter the running state. This can also happen
when a task is rejected by a node.

See moby/moby#34111 for a repro case.

cc @sirlatrom @cpuguy83

In start-then-stop mode, the updater waits for a verdict on the startup
of a new task, and then shuts down the tasks that this new task was
meant to replace. It should really only shut down the old task if the
new task successfully reached running. The thinking here was probably
that a task which fails on startup would briefly enter the running state
before failing, so there isn't much point in distinguishing between
running and some terminal state. However, if a health check is being
used, the task may never enter the running state. This can also happen
when a task is rejected by a node.

Signed-off-by: Aaron Lehmann <[email protected]>
@codecov
Copy link

codecov bot commented Jul 14, 2017

Codecov Report

Merging #2308 into master will increase coverage by 0.08%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2308      +/-   ##
==========================================
+ Coverage   61.07%   61.15%   +0.08%     
==========================================
  Files         128      128              
  Lines       20556    20556              
==========================================
+ Hits        12554    12572      +18     
+ Misses       6627     6601      -26     
- Partials     1375     1383       +8

@sirlatrom
Copy link
Contributor

Is there any way this will make it into Docker 17.06 EE? We're really looking forward to finally start using Swarm Mode services, but without service interruptions on rollbacks.

@cyli
Copy link
Contributor

cyli commented Jul 19, 2017

LGTM

@aaronlehmann aaronlehmann merged commit 310b691 into moby:master Jul 20, 2017
@aaronlehmann aaronlehmann deleted the start-then-stop-failure branch July 20, 2017 20:46
@mghazizadeh
Copy link

How's this tested?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants