@@ -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
468476func (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