Skip to content

Commit fe9a5a2

Browse files
author
Siarhei Rasiukevich
committed
Fix net driver response loss on createEndpoint
Fix related to bug: docker/for-linux#348 We should perform updateToStore(ep) after n.addEndpoint or do update twice, otherwise response from network plugin will not be written to KV storage. This results in container creation with broken network config. Signed-off-by: Siarhei Rasiukevich <raskintech@gmail.com>
1 parent d9b5aa4 commit fe9a5a2

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

libnetwork/network.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,26 +1156,27 @@ func (n *network) createEndpoint(name string, options ...EndpointOption) (Endpoi
11561156
ep.releaseAddress()
11571157
}
11581158
}()
1159-
// Moving updateToSTore before calling addEndpoint so that we shall clean up VETH interfaces in case
1160-
// DockerD get killed between addEndpoint and updateSTore call
1161-
if err = n.getController().updateToStore(ep); err != nil {
1159+
1160+
if err = n.addEndpoint(ep); err != nil {
11621161
return nil, err
11631162
}
11641163
defer func() {
11651164
if err != nil {
1166-
if e := n.getController().deleteFromStore(ep); e != nil {
1167-
logrus.Warnf("error rolling back endpoint %s from store: %v", name, e)
1165+
if e := ep.deleteEndpoint(false); e != nil {
1166+
logrus.Warnf("cleaning up endpoint failed %s : %v", name, e)
11681167
}
11691168
}
11701169
}()
11711170

1172-
if err = n.addEndpoint(ep); err != nil {
1171+
// We should perform updateToStore call right after addEndpoint
1172+
// in order to have iface properly configured
1173+
if err = n.getController().updateToStore(ep); err != nil {
11731174
return nil, err
11741175
}
11751176
defer func() {
11761177
if err != nil {
1177-
if e := ep.deleteEndpoint(false); e != nil {
1178-
logrus.Warnf("cleaning up endpoint failed %s : %v", name, e)
1178+
if e := n.getController().deleteFromStore(ep); e != nil {
1179+
logrus.Warnf("error rolling back endpoint %s from store: %v", name, e)
11791180
}
11801181
}
11811182
}()

0 commit comments

Comments
 (0)