• Kubernetes Submit Queue's avatar
    Merge pull request #44895 from dcbw/iptables-restore-manual-locking · 15f04689
    Kubernetes Submit Queue authored
    Automatic merge from submit-queue
    
    util/iptables: grab iptables locks if iptables-restore doesn't support --wait
    
    When iptables-restore doesn't support --wait (which < 1.6.2 don't), it may
    conflict with other iptables users on the system, like docker, because it
    doesn't acquire the iptables lock before changing iptables rules. This causes
    sporadic docker failures when starting containers.
    
    To ensure those don't happen, essentially duplicate the iptables locking
    logic inside util/iptables when we know iptables-restore doesn't support
    the --wait option.
    
    Unfortunately iptables uses two different locking mechanisms, one until
    1.4.x (abstract socket based) and another from 1.6.x (/run/xtables.lock
    flock() based).  We have to grab both locks, because we don't know what
    version of iptables-restore exists since iptables-restore doesn't have
    a --version option before 1.6.2.  Plus, distros (like RHEL) backport the
    /run/xtables.lock patch to 1.4.x versions.
    
    Related: https://github.com/kubernetes/kubernetes/pull/43575
    See also: https://github.com/openshift/origin/pull/13845
    Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1417234
    
    @kubernetes/rh-networking @kubernetes/sig-network-misc @eparis @knobunc @danwinship @thockin @freehan
    15f04689
Name
Last commit
Last update
..
boilerplate Loading commit data...
cmd/teststale Loading commit data...
e2e-internal Loading commit data...
gen-swagger-doc Loading commit data...
jenkins Loading commit data...
lib Loading commit data...
make-rules Loading commit data...
testdata Loading commit data...
verify-flags Loading commit data...
.linted_packages Loading commit data...
BUILD Loading commit data...
OWNERS Loading commit data...
autogenerated_placeholder.txt Loading commit data...
benchmark-go.sh Loading commit data...
build-cross.sh Loading commit data...
build-go.sh Loading commit data...
build-ui.sh Loading commit data...
cherry_pick_pull.sh Loading commit data...
dev-build-and-push.sh Loading commit data...
dev-build-and-up.sh Loading commit data...
dev-push-hyperkube.sh Loading commit data...
e2e-node-test.sh Loading commit data...
e2e.go Loading commit data...
e2e_test.go Loading commit data...
federated-ginkgo-e2e.sh Loading commit data...
generate-bindata.sh Loading commit data...
generate-docs.sh Loading commit data...
get-build.sh Loading commit data...
ginkgo-e2e.sh Loading commit data...
godep-restore.sh Loading commit data...
godep-save.sh Loading commit data...
grab-profiles.sh Loading commit data...
install-etcd.sh Loading commit data...
list-feature-tests.sh Loading commit data...
local-up-cluster.sh Loading commit data...
lookup_pull.py Loading commit data...
print-workspace-status.sh Loading commit data...
run-in-gopath.sh Loading commit data...
test-cmd.sh Loading commit data...
test-go.sh Loading commit data...
test-integration.sh Loading commit data...
test-update-storage-objects.sh Loading commit data...
update-all.sh Loading commit data...
update-api-reference-docs.sh Loading commit data...
update-bazel.sh Loading commit data...
update-codecgen.sh Loading commit data...
update-codegen.sh Loading commit data...
update-federation-api-reference-docs.sh Loading commit data...
update-federation-generated-swagger-docs.sh Loading commit data...
update-federation-openapi-spec.sh Loading commit data...
update-federation-swagger-spec.sh Loading commit data...
update-generated-docs.sh Loading commit data...
update-generated-protobuf-dockerized.sh Loading commit data...
update-generated-protobuf.sh Loading commit data...
update-generated-runtime-dockerized.sh Loading commit data...
update-generated-runtime.sh Loading commit data...
update-generated-swagger-docs.sh Loading commit data...
update-godep-licenses.sh Loading commit data...
update-gofmt.sh Loading commit data...
update-openapi-spec.sh Loading commit data...
update-staging-client-go.sh Loading commit data...
update-staging-godeps.sh Loading commit data...
update-swagger-spec.sh Loading commit data...
update-translations.sh Loading commit data...
update_owners.py Loading commit data...
verify-all.sh Loading commit data...
verify-api-groups.sh Loading commit data...
verify-api-reference-docs.sh Loading commit data...
verify-bazel.sh Loading commit data...
verify-boilerplate.sh Loading commit data...
verify-cli-conventions.sh Loading commit data...
verify-codecgen.sh Loading commit data...
verify-codegen.sh Loading commit data...
verify-description.sh Loading commit data...
verify-federation-openapi-spec.sh Loading commit data...
verify-flags-underscore.py Loading commit data...
verify-generated-docs.sh Loading commit data...
verify-generated-protobuf.sh Loading commit data...
verify-generated-runtime.sh Loading commit data...
verify-generated-swagger-docs.sh Loading commit data...
verify-godep-licenses.sh Loading commit data...
verify-godeps.sh Loading commit data...
verify-gofmt.sh Loading commit data...
verify-golint.sh Loading commit data...
verify-govet.sh Loading commit data...
verify-import-boss.sh Loading commit data...
verify-linkcheck.sh Loading commit data...
verify-openapi-spec.sh Loading commit data...
verify-pkg-names.sh Loading commit data...
verify-readonly-packages.sh Loading commit data...
verify-staging-client-go.sh Loading commit data...
verify-staging-godeps.sh Loading commit data...
verify-staging-imports.sh Loading commit data...
verify-swagger-spec.sh Loading commit data...
verify-symbols.sh Loading commit data...
verify-test-images.sh Loading commit data...
verify-test-owners.sh Loading commit data...