Merge pull request #46546 from thaJeztah/libnetwork_return_errs

libnetwork: Controller.cleanupLocalEndpoints, sandboxCleanup: return errors
This commit is contained in:
Sebastiaan van Stijn 2023-09-27 10:31:56 +02:00 committed by GitHub
commit 605c8fb75d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 11 deletions

View file

@ -155,8 +155,12 @@ func New(cfgOptions ...config.Option) (*Controller, error) {
c.reservePools()
// Cleanup resources
c.sandboxCleanup(c.cfg.ActiveSandboxes)
c.cleanupLocalEndpoints()
if err := c.sandboxCleanup(c.cfg.ActiveSandboxes); err != nil {
log.G(context.TODO()).WithError(err).Error("error during sandbox cleanup")
}
if err := c.cleanupLocalEndpoints(); err != nil {
log.G(context.TODO()).WithError(err).Warnf("error during endpoint cleanup")
}
c.networkCleanup()
if err := c.startExternalKeyListener(); err != nil {

View file

@ -1144,7 +1144,7 @@ func (ep *Endpoint) releaseAddress() {
}
}
func (c *Controller) cleanupLocalEndpoints() {
func (c *Controller) cleanupLocalEndpoints() error {
// Get used endpoints
eps := make(map[string]interface{})
for _, sb := range c.sandboxes {
@ -1154,8 +1154,7 @@ func (c *Controller) cleanupLocalEndpoints() {
}
nl, err := c.getNetworks()
if err != nil {
log.G(context.TODO()).Warnf("Could not get list of networks during endpoint cleanup: %v", err)
return
return fmt.Errorf("could not get list of networks: %v", err)
}
for _, n := range nl {
@ -1192,4 +1191,6 @@ func (c *Controller) cleanupLocalEndpoints() {
}
}
}
return nil
}

View file

@ -3,6 +3,7 @@ package libnetwork
import (
"context"
"encoding/json"
"fmt"
"sync"
"github.com/containerd/containerd/log"
@ -171,21 +172,19 @@ func (sb *Sandbox) storeDelete() error {
})
}
func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) {
func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) error {
store := c.getStore()
if store == nil {
log.G(context.TODO()).Error("Could not find local scope store while trying to cleanup sandboxes")
return
return fmt.Errorf("could not find local scope store")
}
sandboxStates, err := store.List(datastore.Key(sandboxPrefix), &sbState{c: c})
if err != nil {
if err == datastore.ErrKeyNotFound {
// It's normal for no sandboxes to be found. Just bail out.
return
return nil
}
log.G(context.TODO()).Errorf("failed to get sandboxes for scope %s: %v", store.Scope(), err)
return
return fmt.Errorf("failed to get sandboxes for scope %s: %v", store.Scope(), err)
}
for _, s := range sandboxStates {
@ -285,4 +284,6 @@ func (c *Controller) sandboxCleanup(activeSandboxes map[string]interface{}) {
}
}
}
return nil
}