From b7c258cf07142c889e9125b388adeeac39ce953a Mon Sep 17 00:00:00 2001 From: Flavio Crisciani Date: Fri, 11 Aug 2017 16:19:59 -0700 Subject: [PATCH] PeerDbDelete was passing the wrong field The peerDbDelete was passing the wrong field to the underlay Delete operation causing the mac entry to not being deleted from the bridge on the overlay. This caused connectivity issue when a container that before was remote was now scheduled on the local node. The entry was such: bridge fdb show | grep -i 02:42:0a:01:00:02 02:42:0a:01:00:02 dev vxlan0 master br0 02:42:0a:01:00:02 dev vxlan0 dst 172.31.14.63 link-netnsid 0 self permanent That was still pointing to a remove node Signed-off-by: Flavio Crisciani --- libnetwork/drivers/overlay/peerdb.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libnetwork/drivers/overlay/peerdb.go b/libnetwork/drivers/overlay/peerdb.go index 4b41bf7658..b22f93570d 100644 --- a/libnetwork/drivers/overlay/peerdb.go +++ b/libnetwork/drivers/overlay/peerdb.go @@ -254,7 +254,7 @@ func (d *driver) peerOpRoutine(ctx context.Context, ch chan *peerOperation) { case peerOperationADD: err = d.peerAddOp(op.networkID, op.endpointID, op.peerIP, op.peerIPMask, op.peerMac, op.vtepIP, op.updateDB, op.l2Miss, op.l3Miss, op.localPeer) case peerOperationDELETE: - err = d.peerDeleteOp(op.networkID, op.endpointID, op.peerIP, op.peerIPMask, op.peerMac, op.vtepIP, op.localPeer) + err = d.peerDeleteOp(op.networkID, op.endpointID, op.peerIP, op.peerIPMask, op.peerMac, op.vtepIP, op.updateDB) } if err != nil { logrus.Warnf("Peer operation failed:%s op:%v", err, op)