Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 25 additions & 9 deletions sandbox.go
Original file line number Diff line number Diff line change
Expand Up @@ -177,13 +177,18 @@ func (sb *sandbox) Delete() error {
continue
}

if err := ep.Leave(sb); err != nil {
// Retain the sanbdox if we can't obtain the network from store.
if _, err := c.getNetworkFromStore(ep.getNetwork().ID()); err != nil {
retain = true
log.Warnf("Failed getting network for ep %s during sandbox %s delete: %v", ep.ID(), sb.ID(), err)
continue
}

if err := ep.Leave(sb); err != nil {
log.Warnf("Failed detaching sandbox %s from endpoint %s: %v\n", sb.ID(), ep.ID(), err)
}

if err := ep.Delete(); err != nil {
retain = true
log.Warnf("Failed deleting endpoint %s: %v\n", ep.ID(), err)
}
}
Expand Down Expand Up @@ -455,7 +460,7 @@ func (sb *sandbox) populateNetworkResources(ep *endpoint) error {
i := ep.iface
ep.Unlock()

if i.srcName != "" {
if i != nil && i.srcName != "" {
var ifaceOptions []osl.IfaceOption

ifaceOptions = append(ifaceOptions, sb.osSbox.InterfaceOptions().Address(i.addr), sb.osSbox.InterfaceOptions().Routes(i.routes))
Expand Down Expand Up @@ -951,6 +956,11 @@ func OptionGeneric(generic map[string]interface{}) SandboxOption {
func (eh epHeap) Len() int { return len(eh) }

func (eh epHeap) Less(i, j int) bool {
var (
cip, cjp int
ok bool
)

ci, _ := eh[i].getSandbox()
cj, _ := eh[j].getSandbox()

Expand All @@ -965,14 +975,20 @@ func (eh epHeap) Less(i, j int) bool {
return true
}

cip, ok := ci.epPriority[eh[i].ID()]
if !ok {
cip = 0
if ci != nil {
cip, ok = ci.epPriority[eh[i].ID()]
if !ok {
cip = 0
}
}
cjp, ok := cj.epPriority[eh[j].ID()]
if !ok {
cjp = 0

if cj != nil {
cjp, ok = cj.epPriority[eh[j].ID()]
if !ok {
cjp = 0
}
}

if cip == cjp {
return eh[i].network.Name() < eh[j].network.Name()
}
Expand Down