• Kubernetes Submit Queue's avatar
    Merge pull request #43575 from dcbw/iptables-restore-lock · 902d53d5
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue (batch tested with PRs 43575, 44672)
    
    util/iptables: check for and use new iptables-restore 'wait' argument
    
    iptables-restore did not previously perform any locking, meaning that
    when callers (like kube-proxy) asked iptables-restore to write large
    numbers of rules, the iptables-restore process might run in parallel
    with other 'iptables' invocations in kubelet (hostports), docker,
    and other software.  This causes errors like:
    
    "CNI request failed with status 400: 'Failed to ensure that nat chain
    POSTROUTING jumps to MASQUERADE: error checking rule: exit status 4:
    iptables: Resource temporarily  unavailable."
    
    or from Docker:
    
    "Failed to allocate and map port 1095-1095: iptables failed:
    iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 1095
    -j DNAT --to-destination 10.1.0.2:1095 ! -i lbr0: iptables:
    Resource temporarily unavailable.\n (exit status 4)"
    
    iptables-restore "wait" functionality was added in iptables git
    commit 999eaa241212d3952ddff39a99d0d55a74e3639e which
    is not yet in a release.
    
    See also https://bugzilla.redhat.com/show_bug.cgi?id=1417234
    
    @eparis @knobunc @kubernetes/rh-networking @kubernetes/sig-network-misc @freehan @thockin @brendandburns
    902d53d5
Name
Last commit
Last update
..
async Loading commit data...
bandwidth Loading commit data...
chmod Loading commit data...
chown Loading commit data...
config Loading commit data...
configz Loading commit data...
crlf Loading commit data...
dbus Loading commit data...
ebtables Loading commit data...
env Loading commit data...
errors Loading commit data...
exec Loading commit data...
flock Loading commit data...
framer Loading commit data...
goroutinemap Loading commit data...
hash Loading commit data...
i18n Loading commit data...
initsystem Loading commit data...
interrupt Loading commit data...
intstr Loading commit data...
io Loading commit data...
ipconfig Loading commit data...
iptables Loading commit data...
json Loading commit data...
keymutex Loading commit data...
labels Loading commit data...
limitwriter Loading commit data...
logs Loading commit data...
maps Loading commit data...
metrics Loading commit data...
mount Loading commit data...
net Loading commit data...
netsh Loading commit data...
node Loading commit data...
oom Loading commit data...
parsers Loading commit data...
procfs Loading commit data...
rand Loading commit data...
removeall Loading commit data...
resourcecontainer Loading commit data...
rlimit Loading commit data...
runtime Loading commit data...
selinux Loading commit data...
sets Loading commit data...
slice Loading commit data...
strings Loading commit data...
sysctl Loading commit data...
system Loading commit data...
tail Loading commit data...
taints Loading commit data...
term Loading commit data...
threading Loading commit data...
tolerations Loading commit data...
uuid Loading commit data...
validation Loading commit data...
version Loading commit data...
wait Loading commit data...
workqueue/prometheus Loading commit data...
yaml Loading commit data...
BUILD Loading commit data...
doc.go Loading commit data...
template.go Loading commit data...
template_test.go Loading commit data...
umask.go Loading commit data...
umask_windows.go Loading commit data...
util.go Loading commit data...
util_test.go Loading commit data...