Skip to content

Commit b03deb6

Browse files
gojoysqueed
authored andcommitted
call ipam.ExceDel after clean up device in netns
fix #666 Signed-off-by: gojoy <[email protected]>
1 parent 26745d3 commit b03deb6

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

plugins/main/bridge/bridge.go

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -631,14 +631,17 @@ func cmdDel(args *skel.CmdArgs) error {
631631

632632
isLayer3 := n.IPAM.Type != ""
633633

634-
if isLayer3 {
635-
if err := ipam.ExecDel(n.IPAM.Type, args.StdinData); err != nil {
636-
return err
634+
ipamDel := func() error {
635+
if isLayer3 {
636+
if err := ipam.ExecDel(n.IPAM.Type, args.StdinData); err != nil {
637+
return err
638+
}
637639
}
640+
return nil
638641
}
639642

640643
if args.Netns == "" {
641-
return nil
644+
return ipamDel()
642645
}
643646

644647
// There is a netns so try to clean up. Delete can be called multiple times
@@ -660,11 +663,16 @@ func cmdDel(args *skel.CmdArgs) error {
660663
// https://github.com/kubernetes/kubernetes/issues/43014#issuecomment-287164444
661664
_, ok := err.(ns.NSPathNotExistErr)
662665
if ok {
663-
return nil
666+
return ipamDel()
664667
}
665668
return err
666669
}
667670

671+
// call ipam.ExecDel after clean up device in netns
672+
if err := ipamDel(); err != nil {
673+
return err
674+
}
675+
668676
if n.MacSpoofChk {
669677
sc := link.NewSpoofChecker("", "", uniqueID(args.ContainerID, args.IfName))
670678
if err := sc.Teardown(); err != nil {

0 commit comments

Comments
 (0)