Skip to content

Commit

Permalink
Add warning when xtables contention detected
Browse files Browse the repository at this point in the history
Signed-off-by: Chris Telfer <ctelfer@docker.com>
  • Loading branch information
ctelfer committed Apr 11, 2018
1 parent 860648e commit 2478302
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions iptables/iptables.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,9 +423,10 @@ func existsRaw(table Table, chain string, rule ...string) bool {
return strings.Contains(string(existingRules), ruleString)
}

func filterOutput(output []byte) []byte {
func filterOutput(output []byte, args ...string) []byte {
// ignore iptables' message about xtables lock
if strings.Contains(string(output), xLockWaitMsg) {
logrus.Warnf("Xtables contention detected during: %s", strings.Join(args, " "))
output = []byte("")
}
return output
Expand All @@ -436,7 +437,7 @@ func Raw(args ...string) ([]byte, error) {
if firewalldRunning {
output, err := Passthrough(Iptables, args...)
if err == nil || !strings.Contains(err.Error(), "was not provided by any .service files") {
return filterOutput(output), err
return filterOutput(output, args...), err
}
}
return raw(args...)
Expand All @@ -460,7 +461,7 @@ func raw(args ...string) ([]byte, error) {
return nil, fmt.Errorf("iptables failed: iptables %v: %s (%s)", strings.Join(args, " "), output, err)
}

return filterOutput(output), err
return filterOutput(output, args...), err
}

// RawCombinedOutput inernally calls the Raw function and returns a non nil
Expand Down

0 comments on commit 2478302

Please sign in to comment.