Skip to content
This repository was archived by the owner on Mar 30, 2020. It is now read-only.

Commit d0902a6

Browse files
committed
Add errors on graceful shutdown failure in given time
1 parent 45c3b03 commit d0902a6

File tree

1 file changed

+15
-4
lines changed

1 file changed

+15
-4
lines changed

core/docker.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,10 @@ func (d *Docker) cleanContainers(p *Project) error {
9191
}
9292
}
9393

94-
d.waitForGracefulShutdown(c)
94+
err := d.waitForGracefulShutdown(c)
95+
if err != nil {
96+
Error(err.Error(), "project", p, "container", c.GetShortID())
97+
}
9598

9699
Debug("Removing container", "project", p, "container", c.GetShortID(), "end-point", d.endPoint)
97100
if err := d.removeContainer(c); err != nil {
@@ -457,12 +460,17 @@ func (d *Docker) restartLinkedContainers(p *Project) error {
457460
return nil
458461
}
459462

460-
func (d *Docker) waitForGracefulShutdown(c * Container) {
463+
func (d *Docker) waitForGracefulShutdown(c * Container) error {
461464
timedOut := 0
462-
for c.IsRunning() && timedOut >= GracefulShutdownTime {
465+
isStillRunning := false
466+
for isStillRunning = c.IsRunning(); isStillRunning && timedOut >= GracefulShutdownTime; {
463467
<-time.After(time.Second)
464468
timedOut++
465469
}
470+
if isStillRunning {
471+
return errors.New("Graceful shutdown timed out on container")
472+
}
473+
return nil
466474
}
467475

468476
func (d *Docker) restartContainer(p *Project, c *Container) error {
@@ -474,7 +482,10 @@ func (d *Docker) restartContainer(p *Project, c *Container) error {
474482
return err
475483
}
476484

477-
d.waitForGracefulShutdown(c)
485+
err := d.waitForGracefulShutdown(c)
486+
if err != nil {
487+
Error(err.Error(), "project", p, "container", c.GetShortID())
488+
}
478489

479490
if err := d.startContainer(p, c); err != nil {
480491
return err

0 commit comments

Comments
 (0)