Skip to content

Commit

Permalink
Don't swallow errors in the docker client.
Browse files Browse the repository at this point in the history
  • Loading branch information
Tom Wilkie committed Jul 17, 2015
1 parent e03a4bb commit b7be5c0
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 11 deletions.
2 changes: 1 addition & 1 deletion common/docker/client.go
Expand Up @@ -7,7 +7,7 @@ import (

// An observer for container events
type ContainerObserver interface {
ContainerDied(ident string) error
ContainerDied(ident string)
}

type Client struct {
Expand Down
6 changes: 2 additions & 4 deletions ipam/allocator.go
Expand Up @@ -223,12 +223,10 @@ func (alloc *Allocator) Claim(ident string, addr address.Address) error {
}

// ContainerDied is provided to satisfy the updater interface; does a 'Delete' underneath. Sync.
func (alloc *Allocator) ContainerDied(ident string) error {
err := alloc.Delete(ident)
if err == nil {
func (alloc *Allocator) ContainerDied(ident string) {
if err := alloc.Delete(ident); err == nil {
alloc.debugln("Container", ident, "died; released addresses")
}
return err
}

// Delete (Sync) - release all IP addresses for container with given name
Expand Down
13 changes: 9 additions & 4 deletions nameserver/nameserver.go
Expand Up @@ -120,7 +120,7 @@ func (n *Nameserver) ReverseLookup(ip address.Address) (string, error) {
return match.Hostname, nil
}

func (n *Nameserver) ContainerDied(ident string) error {
func (n *Nameserver) ContainerDied(ident string) {
n.Lock()
entries := n.entries.tombstone(n.ourName, func(e *Entry) bool {
if e.ContainerID == ident {
Expand All @@ -130,10 +130,12 @@ func (n *Nameserver) ContainerDied(ident string) error {
return false
})
n.Unlock()
if n.gossip != nil {
return n.gossip.GossipBroadcast(entries)
if n.gossip != nil && len(*entries) > 0 {
err := n.gossip.GossipBroadcast(entries)
if err != nil {
n.errorf("Failed to broadcase container death: %v", err)
}
}
return nil
}

func (n *Nameserver) PeerGone(peer *router.Peer) {
Expand Down Expand Up @@ -253,3 +255,6 @@ func (n *Nameserver) infof(fmt string, args ...interface{}) {
func (n *Nameserver) debugf(fmt string, args ...interface{}) {
Log.Debugf("[nameserver %s] "+fmt, append([]interface{}{n.ourName}, args...)...)
}
func (n *Nameserver) errorf(fmt string, args ...interface{}) {
Log.Errorf("[nameserver %s] "+fmt, append([]interface{}{n.ourName}, args...)...)
}
3 changes: 1 addition & 2 deletions nameserver/nameserver_test.go
Expand Up @@ -205,8 +205,7 @@ func TestContainerAndPeerDeath(t *testing.T) {
require.Nil(t, err)
require.Equal(t, []address.Address{0}, nameserver.Lookup("hostname"))

err = nameserver.ContainerDied("containerid")
require.Nil(t, err)
nameserver.ContainerDied("containerid")
require.Equal(t, []address.Address{}, nameserver.Lookup("hostname"))

err = nameserver.AddEntry("hostname", "containerid", peername, address.Address(0))
Expand Down

0 comments on commit b7be5c0

Please sign in to comment.