kubernetes/vendor/github.com
Nic Cope 7a2c6a432f Use checksums instead of fsyncs to manage discovery cache corruption
Part of the API discovery cache uses an HTTP RoundTripper that
transparently caches responses to disk. The upstream implementation of
the disk cache is hard coded to call Sync() on every file it writes.
This has noticably poor performance on modern Macs, which ask their disk
controllers to flush all the way to persistant storage because Go uses
the `F_FULLFSYNC` fnctl. Apple recommends minimizing this behaviour in
order to avoid degrading performance and increasing disk wear.

The content of the discovery cache is not critical; it is indeed just a
cache and can be recreated by hitting the API servers' discovery
endpoints. This commit replaces upstream httpcache's diskcache
implementation with a similar implementation that can use CRC-32
checksums to detect corrupted cache entries at read-time. When such an
entry is detected (e.g. because it was only partially flushed to
permanent storage before the host lost power) the cache will report a
miss. This causes httpcache to fall back to its underlying HTTP
transport (i.e. the real API server) and re-cache the resulting value.

Apart from adding CRC-32 checksums and avoiding calling fsync this
implementation differs from upstream httpcache's diskcache package in
that it uses FNV-32a hashes rather than MD5 hashes of cache keys in
order to generate filenames.

Signed-off-by: Nic Cope <nicc@rk0n.org>
2022-07-27 00:13:30 -07:00
..
antlr/antlr4/runtime/Go/antlr Bump cel-go to v0.12.0 2022-07-11 08:40:34 -07:00
armon feat: add missing SOCKS5 features 2022-01-21 11:49:41 +01:00
asaskevich/govalidator hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
aws/aws-sdk-go Updating AWS-SDK-Go to version 1.38.49 2021-06-17 08:42:25 -07:00
Azure upgrade Azure/go-autorest/autorest to v0.11.27 2022-06-04 01:52:47 +00:00
beorn7/perks hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
blang/semver/v4 Regenerate vendor 2022-05-04 10:27:41 -04:00
cespare/xxhash/v2 Regenerate vendor 2022-05-04 10:27:41 -04:00
chai2010/gettext-go Switch to v1.0.2 of github.com/chai2010/gettext-go 2022-06-10 19:58:10 -04:00
checkpoint-restore/go-criu/v5 Regenerate vendor 2022-05-04 10:27:41 -04:00
cilium/ebpf Regenerate vendor 2022-05-04 10:27:41 -04:00
clusterhq/flocker-go hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
container-storage-interface/spec dependencies: bump CSI to v1.6.0 2022-05-09 08:26:20 +02:00
containerd Regenerate vendor 2022-05-04 10:27:41 -04:00
coredns kubeadm: upgrade coredns to v1.9.3 2022-06-09 18:45:26 +08:00
coreos Switch to github.com/coreos/go-systemd/v22 and drop older package 2021-06-16 11:14:16 -04:00
cpuguy83/go-md2man/v2 Update cobra to v1.4.0 2022-03-10 16:19:43 -05:00
cyphar/filepath-securejoin Regenerate vendor 2022-05-04 10:27:41 -04:00
davecgh/go-spew hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
daviddengcn/go-colortext Switch to released tag v1.0.0 for github.com/daviddengcn/go-colortext 2022-06-10 17:12:24 -04:00
docker deps: update runc to 1.1.0 2022-03-28 16:23:18 -07:00
dustin/go-humanize hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
elazarl/goproxy hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
emicklei/go-restful/v3 Switch to released version of v3.8.0 - github.com/emicklei/go-restful/v3 2022-06-11 11:27:08 -04:00
euank/go-kmsg-parser hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
evanphx/json-patch upgrade github.com/evanphx/json-patch to v4.12.0 2021-10-26 11:20:45 +08:00
exponent-io/jsonpath hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
fatih/camelcase hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
felixge/httpsnoop Regenerate vendor 2022-05-04 10:27:41 -04:00
form3tech-oss/jwt-go Update protobuf,grpc,etcd dependencies 2021-06-15 10:06:09 -04:00
fsnotify/fsnotify Regenerate vendor 2022-05-04 10:27:41 -04:00
fvbommel/sortorder Regenerate vendor 2022-05-04 10:27:41 -04:00
go-errors/errors until stable: pin-dependency, update-vendor, update-bazel, lint-dep 2021-03-08 16:50:43 -08:00
go-logr dependencies: logr and zapr v1.2.3 2022-05-06 15:16:56 +02:00
go-openapi Regenerate vendor 2022-05-04 10:27:41 -04:00
go-ozzo/ozzo-validation hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
go-task/slim-sprig Build Ginkgo binary 2022-07-08 10:46:11 +08:00
godbus/dbus/v5 Regenerate vendor 2022-05-04 10:27:41 -04:00
gofrs/uuid Update Azure Go SDK version to v53.1.0 2021-04-23 02:30:48 +00:00
gogo/protobuf hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
golang vendor: bump golang/mock to 1.6.0 2022-03-28 21:49:04 -07:00
golang-jwt/jwt/v4 upgrade Azure/go-autorest/autorest to v0.11.27 2022-06-04 01:52:47 +00:00
google Bump cel-go to v0.12.4 2022-07-14 18:23:57 +00:00
googleapis/gax-go/v2 update kube-controller-manager dependencies 2022-06-23 18:07:18 +00:00
GoogleCloudPlatform/k8s-cloud-provider update kube-controller-manager dependencies 2022-06-23 18:07:18 +00:00
gophercloud/gophercloud Regenerate vendor 2022-05-04 10:27:41 -04:00
gorilla/websocket Regenerate vendor 2022-05-04 10:27:41 -04:00
gregjones/httpcache Use checksums instead of fsyncs to manage discovery cache corruption 2022-07-27 00:13:30 -07:00
grpc-ecosystem Regenerate vendor 2022-05-04 10:27:41 -04:00
heketi/heketi Transitive dependency: high CVE fix 2021-06-22 07:35:13 -07:00
imdario/mergo hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
inconshreveable/mousetrap hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
ishidawataru/sctp hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
JeffAshton/win_pdh hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
jmespath/go-jmespath Regenerate vendor 2022-05-04 10:27:41 -04:00
jonboulle/clockwork Regenerate vendor 2022-05-04 10:27:41 -04:00
josharian/intern Regenerate vendor 2022-05-04 10:27:41 -04:00
json-iterator/go Regenerate vendor 2022-05-04 10:27:41 -04:00
karrick/godirwalk Regenerate vendor 2022-05-04 10:27:41 -04:00
libopenstorage/openstorage hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
liggitt/tabwriter hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
lithammer/dedent Regenerate vendor 2022-05-04 10:27:41 -04:00
mailru/easyjson Update Azure Go SDK to v55.0.0 2021-06-16 12:26:45 +00:00
MakeNowJust/heredoc Switch to v1.0.0 of github.com/MakeNowJust/heredoc (avoid SHA) 2022-06-10 14:51:33 -04:00
matttproud/golang_protobuf_extensions hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
Microsoft Regenerate vendor 2022-05-04 10:27:41 -04:00
mindprince/gonvml hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
mistifyio/go-zfs hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
mitchellh Regenerate vendor 2022-05-04 10:27:41 -04:00
moby Regenerate vendor 2022-05-04 10:27:41 -04:00
modern-go Regenerate vendor 2022-05-04 10:27:41 -04:00
mohae/deepcopy hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
monochromegane/go-gitignore until stable: pin-dependency, update-vendor, update-bazel, lint-dep 2021-03-08 16:50:43 -08:00
mrunalp/fileutils Regenerate vendor 2022-05-04 10:27:41 -04:00
munnerz/goautoneg hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
mvdan/xurls hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
mxk/go-flowrate hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
NYTimes/gziphandler Regenerate vendor 2022-05-04 10:27:41 -04:00
onsi Stop using the deprecated Measure method 2022-07-11 17:40:33 +08:00
opencontainers vendor: bump runc to 1.1.3 2022-06-09 16:19:50 -07:00
peterbourgon/diskv hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
pkg/errors hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
pmezard/go-difflib hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
pquerna/cachecontrol Switch to released tag v0.1.0 of github.com/pquerna/cachecontrol 2022-06-10 15:52:44 -04:00
prometheus Regenerate vendor 2022-05-04 10:27:41 -04:00
PuerkitoBio hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
quobyte/api hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
robfig/cron/v3 Regenerate vendor 2022-05-04 10:27:41 -04:00
rubiojr/go-vhd hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
russross/blackfriday Regenerate vendor 2022-05-04 10:27:41 -04:00
seccomp/libseccomp-golang vendor: bump runc to 1.1.3 2022-06-09 16:19:50 -07:00
sirupsen/logrus Regenerate vendor 2022-05-04 10:27:41 -04:00
soheilhy/cmux Regenerate vendor 2022-05-04 10:27:41 -04:00
spf13 Regenerate vendor 2022-05-04 10:27:41 -04:00
stoewer/go-strcase Regenerate vendor 2022-05-04 10:27:41 -04:00
storageos/go-api hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
stretchr Regenerate vendor 2022-05-04 10:27:41 -04:00
syndtr/gocapability vendor: cadvisor v0.39.0 2021-03-08 22:10:29 -08:00
tmc/grpc-websocket-proxy Update protobuf,grpc,etcd dependencies 2021-06-15 10:06:09 -04:00
vishvananda Regenerate vendor 2022-05-04 10:27:41 -04:00
vmware/govmomi hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
xiang90/probing hack/update-bazel.sh 2021-02-28 15:17:29 -08:00
xlab/treeprint until stable: pin-dependency, update-vendor, update-bazel, lint-dep 2021-03-08 16:50:43 -08:00