Repository navigation
production serves a product page for a provider none of its benches list - #2981
Open
Flotapponnier wants to merge 1 commit into
Open
Flotapponnier wants to merge 1 commit into
Flotapponnier wants to merge 1 commit into
Conversation
/products/validationcloud answers 200 on openchainbench.com right now, with a title, a description and links to six keyed RPC benches. Open any of those six on production and the private cohort lists five providers, none of them Validation Cloud. No spec on main declares it; `git grep validationcloud benchmarks/` on this branch returns nothing. The provider index is built from the materialize worker's bench blobs, and the worker clones `dev` at Docker build time while production runs `main`. So the blob credits appearances that this deployment's own specs do not declare, and the index believes in a provider that cannot appear in a single table here. It is not in the sitemap, which is the only reason it has not been crawled, but it is reachable and carries no noindex. The fix is to confine the index to what this deployment declares: for each bench, if the local spec enumerates providers, drop blob appearances for any provider the spec does not name. Benches whose spec declares no provider list are untouched, so nothing outside the keyed RPC cluster changes behaviour. This is the guard half of #2978, taken alone. That PR also adds the provider to the keyed probe's harness config, which would start measuring Validation Cloud from main; this carries only the guard, so production stops publishing a page for a provider it does not measure and gains nothing about that provider. The test reads the repository's real specs rather than fixtures, because the defect is a disagreement between a spec and a blob: a synthetic spec would prove the filter filters, not that the filter matches what we actually ship.
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/products/validationcloudanswers 200 on openchainbench.com right now,with a title, a description and links to six keyed RPC benches. Open any of
those six on production and the private cohort lists five providers, none of
them Validation Cloud:
No spec on
maindeclares the provider:git grep validationcloud -- benchmarks/on this branch returns nothing.
Why
The provider index is built from the materialize worker's bench blobs, and the
worker clones
devat Docker build time while production runsmain. The blobtherefore credits appearances this deployment's own specs do not declare, and
the index ends up believing in a provider that cannot appear in a single table
here. It is absent from the sitemap, which is the only reason it has not been
crawled, but it is reachable and carries no
noindex.This is not specific to one provider. Any provider added to a bench on
devgets a production product page as soon as the worker rebuilds, for as long as
the change sits on
dev.The fix
Confine the index to what this deployment declares: for each bench, if the
local spec enumerates providers, drop blob appearances for any provider the
spec does not name. Benches whose spec declares no provider list are untouched,
so nothing outside the keyed RPC cluster changes behaviour.
This is the guard half of #2978, taken alone. That PR also adds the
provider to the keyed probe's harness config, which would start measuring
Validation Cloud from
main. This carries only the guard, so production stopspublishing a page for a provider it does not measure and gains nothing about
that provider. #2978 can stay open or be closed independently.
The test reads the repository's real specs rather than fixtures, because the
defect is a disagreement between a spec and a blob: a synthetic spec would
prove the filter filters, not that the filter matches what we ship.
Gates
After merge
Production redeploys from
mainautomatically. The product page should startanswering 404; the ISR entry for it may serve the 200 until it revalidates.
Worth re-checking the URL once the deploy lands.
One thing to know before merging: pushing to
mainredeploys the threeRailway probe services, which build from
main.mainhas novalidationcloudin the keyed harness's provider list, so the ValidationCloud measurement stops on the next push to main, whether or not it is this
one. That is pre-existing and is the trade #2978 exists to resolve; this PR
neither causes nor avoids it.