expose lock release error from iptables util

pull/6/head
Minhan Xia 2017-07-05 14:25:01 -07:00
parent 96d8ab725b
commit 8de419b19f
3 changed files with 17 additions and 5 deletions

View File

@ -24,6 +24,7 @@ go_library(
"//vendor/github.com/godbus/dbus:go_default_library",
"//vendor/github.com/golang/glog:go_default_library",
"//vendor/golang.org/x/sys/unix:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
],

View File

@ -338,7 +338,7 @@ func (runner *runner) RestoreAll(data []byte, flush FlushFlag, counters RestoreC
}
type iptablesLocker interface {
Close()
Close() error
}
// restoreInternal is the shared part of Restore/RestoreAll
@ -361,7 +361,11 @@ func (runner *runner) restoreInternal(args []string, data []byte, flush FlushFla
if err != nil {
return err
}
defer locker.Close()
defer func(locker iptablesLocker) {
if err := locker.Close(); err != nil {
glog.Errorf("Failed to close iptables locks: %v", err)
}
}(locker)
}
// run the command and return the output or an error including the output and error

View File

@ -25,6 +25,7 @@ import (
"time"
"golang.org/x/sys/unix"
utilerrors "k8s.io/apimachinery/pkg/util/errors"
"k8s.io/apimachinery/pkg/util/wait"
)
@ -33,13 +34,19 @@ type locker struct {
lock14 *net.UnixListener
}
func (l *locker) Close() {
func (l *locker) Close() error {
errList := []error{}
if l.lock16 != nil {
l.lock16.Close()
if err := l.lock16.Close(); err != nil {
errList = append(errList, err)
}
}
if l.lock14 != nil {
l.lock14.Close()
if err := l.lock14.Close(); err != nil {
errList = append(errList, err)
}
}
return utilerrors.NewAggregate(errList)
}
func grabIptablesLocks(lockfilePath string) (iptablesLocker, error) {