diff --git a/daemon/libnetwork/iptables/conntrack.go b/daemon/libnetwork/iptables/conntrack.go index c229641255..48df3f4e10 100644 --- a/daemon/libnetwork/iptables/conntrack.go +++ b/daemon/libnetwork/iptables/conntrack.go @@ -37,7 +37,10 @@ func DeleteConntrackEntries(nlh nlwrap.Handle, ipv4List []net.IP, ipv6List []net for _, ipAddress := range ipv4List { flowPurged, err := purgeConntrackState(nlh, syscall.AF_INET, ipAddress) if err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s: %v", ipAddress, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "ipAddress": ipAddress.String(), + }).Warn("Failed to delete conntrack state for IPv4-address") continue } totalIPv4FlowPurged += flowPurged @@ -47,14 +50,20 @@ func DeleteConntrackEntries(nlh nlwrap.Handle, ipv4List []net.IP, ipv6List []net for _, ipAddress := range ipv6List { flowPurged, err := purgeConntrackState(nlh, syscall.AF_INET6, ipAddress) if err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s: %v", ipAddress, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "ipAddress": ipAddress.String(), + }).Warn("Failed to delete conntrack state for IPv6-address") continue } totalIPv6FlowPurged += flowPurged } if totalIPv4FlowPurged > 0 || totalIPv6FlowPurged > 0 { - log.G(context.TODO()).Debugf("DeleteConntrackEntries purged ipv4:%d, ipv6:%d", totalIPv4FlowPurged, totalIPv6FlowPurged) + log.G(context.TODO()).WithFields(log.Fields{ + "ipv4": totalIPv4FlowPurged, + "ipv6": totalIPv6FlowPurged, + }).Debug("DeleteConntrackEntries completed deleting conntrack state") } return nil @@ -71,34 +80,63 @@ func DeleteConntrackEntriesByPort(nlh nlwrap.Handle, proto types.Protocol, ports var totalIPv6FlowPurged uint for _, port := range ports { filter := &netlink.ConntrackFilter{} - if err := filter.AddProtocol(uint8(proto)); err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err) + if err := filter.AddProtocol(uint8(port.Proto)); err != nil { + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "hostIP": port.HostIP.String(), + "proto": port.Proto.String(), + "port": port.Port, + }).Warn("Failed to delete conntrack state for port") continue } if err := filter.AddPort(netlink.ConntrackOrigDstPort, port.Port); err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "hostIP": port.HostIP.String(), + "proto": port.Proto.String(), + "port": port.Port, + }).Warn("Failed to delete conntrack state for port") continue } if err := filter.AddIP(netlink.ConntrackOrigDstIP, port.HostIP); err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for %s port %d: %v", proto.String(), port.Port, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "hostIP": port.HostIP.String(), + "proto": port.Proto.String(), + "port": port.Port, + }).Warn("Failed to delete conntrack state for port") continue } v4FlowPurged, err := nlh.ConntrackDeleteFilters(netlink.ConntrackTable, syscall.AF_INET, filter) if err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for IPv4 %s port %d: %v", proto.String(), port.Port, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "hostIP": port.HostIP.String(), + "proto": port.Proto.String(), + "port": port.Port, + }).Warn("Failed to delete conntrack state for IPv4 port") } totalIPv4FlowPurged += v4FlowPurged v6FlowPurged, err := nlh.ConntrackDeleteFilters(netlink.ConntrackTable, syscall.AF_INET6, filter) if err != nil { - log.G(context.TODO()).Warnf("Failed to delete conntrack state for IPv6 %s port %d: %v", proto.String(), port.Port, err) + log.G(context.TODO()).WithFields(log.Fields{ + "error": err, + "hostIP": port.HostIP.String(), + "proto": port.Proto.String(), + "port": port.Port, + }).Warn("Failed to delete conntrack state for IPv6 port") } totalIPv6FlowPurged += v6FlowPurged } if totalIPv4FlowPurged > 0 || totalIPv6FlowPurged > 0 { - log.G(context.TODO()).Debugf("DeleteConntrackEntriesByPort for %s ports purged ipv4:%d, ipv6:%d", proto.String(), totalIPv4FlowPurged, totalIPv6FlowPurged) + log.G(context.TODO()).WithFields(log.Fields{ + "ipv4": totalIPv4FlowPurged, + "ipv6": totalIPv6FlowPurged, + "proto": proto.String(), + }).Debug("DeleteConntrackEntriesByPort completed deleting conntrack state") } return nil