@@ -3,6 +3,7 @@ package libnetwork
33import (
44 "container/heap"
55 "encoding/json"
6+ "sync"
67
78 "github.com/Sirupsen/logrus"
89 "github.com/docker/libnetwork/datastore"
@@ -119,8 +120,9 @@ func (sbs *sbState) DataScope() string {
119120
120121func (sb * sandbox ) storeUpdate () error {
121122 sbs := & sbState {
122- c : sb .controller ,
123- ID : sb .id ,
123+ c : sb .controller ,
124+ ID : sb .id ,
125+ Cid : sb .containerID ,
124126 }
125127
126128retry:
@@ -197,15 +199,17 @@ func (c *controller) sandboxCleanup() {
197199
198200 for _ , eps := range sbs .Eps {
199201 n , err := c .getNetworkFromStore (eps .Nid )
202+ var ep * endpoint
200203 if err != nil {
201204 logrus .Errorf ("getNetworkFromStore for nid %s failed while trying to build sandbox for cleanup: %v" , eps .Nid , err )
202- continue
203- }
204-
205- ep , err := n .getEndpointFromStore (eps .Eid )
206- if err != nil {
207- logrus .Errorf ("getEndpointFromStore for eid %s failed while trying to build sandbox for cleanup: %v" , eps .Eid , err )
208- continue
205+ n = & network {id : eps .Nid , ctrlr : c , drvOnce : & sync.Once {}}
206+ ep = & endpoint {id : eps .Eid , network : n }
207+ } else {
208+ ep , err = n .getEndpointFromStore (eps .Eid )
209+ if err != nil {
210+ logrus .Errorf ("getEndpointFromStore for eid %s failed while trying to build sandbox for cleanup: %v" , eps .Eid , err )
211+ ep = & endpoint {id : eps .Eid , network : n }
212+ }
209213 }
210214
211215 heap .Push (& sb .endpoints , ep )
0 commit comments