outdated maven-metadata.xml, failed invalidations
Categories
(Release Engineering :: General, defect, P3)
Tracking
(Not tracked)
People
(Reporter: jcristau, Unassigned)
References
Details
Attachments
(1 file)
A few times recently the mobile team and/or release management noticed taskcluster getting a stale version of maven metadata from (nightly.)maven.mozilla.org.
Looking into the logs from the lambda function that's meant to invalidate the cache when that file is updated, I see that sometimes fails, e.g.:
WARN: Could not invalidate cache. Reason: An error occurred (Throttling) when calling the CreateInvalidation operation (reached max retries: 4): Rate exceeded
| Reporter | ||
Comment 1•3 years ago
|
||
One mitigation might be to tell cloudfront to revalidate more often, so even if the invalidation fails it refreshes after e.g. 10 minutes.
| Reporter | ||
Comment 2•3 years ago
|
||
Looking into the logs some more, AFAICT what's happening is the lambda is called for each .pom file that we upload to s3, and there may be a lot of those e.g. for android-components (one per component), so all the beetmover tasks running together can cause the invalidation to fail due to throttling.
I was thinking we could have some retries / backoff around the invalidate, but instead we should have probably fewer CreateInvalidation calls in the first place.
| Reporter | ||
Comment 3•3 years ago
|
||
| Reporter | ||
Comment 4•3 years ago
|
||
I guess the alternative is, instead of triggering the lambda from s3 for each .pom upload, have an explicit trigger from a new taskcluster task after all files from a given release are uploaded, regenerate all metadata files from that one invocation and have a single invalidate.
Comment 5•3 years ago
|
||
(In reply to Julien Cristau [:jcristau] from comment #4)
I guess the alternative is, instead of triggering the lambda from s3 for each
.pomupload, have an explicit trigger from a new taskcluster task after all files from a given release are uploaded, regenerate all metadata files from that one invocation and have a single invalidate.
This does sound like an improvement, like we're performing a single transaction rather than per-file updates that may leave us in an indeterminate state.
Comment 6•3 years ago
|
||
I think adding the cache-control is always a good idea, and doing a single invalidation for all of the files getting updated is even better
| Reporter | ||
Updated•3 years ago
|
| Reporter | ||
Comment 7•3 years ago
|
||
Thanks :jbuck! Filed bug 1752809 to get the cache-control change deployed.
Updated•3 years ago
|
Updated•3 years ago
|
| Reporter | ||
Comment 8•3 years ago
|
||
The worst of this is taken care of by adding max-age, so moving to backlog.
| Reporter | ||
Updated•3 years ago
|
Updated•3 years ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Description
•