Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop using UncanonicalizedIter for QueryKind::Exact #11937

Merged
merged 1 commit into from
Apr 6, 2023

Conversation

arlosi
Copy link
Contributor

@arlosi arlosi commented Apr 5, 2023

QueryKind::Exact causes unnecessary HTTP requests when querying for crates that don't exist. Even though the query is Exact, when fetching Summaries, Cargo still uses UncanonicalizedIter and requests additional possible crate names if the first one isn't found.

This change moves the use of UncanonicalizedIter further up the call stack such that we have the QueryKind available, and only do the additional queries for QueryKind::Fuzzy.

The impact is most noticeable when publishing a new crate that contains - or _. Since Cargo waits for publish by querying the registry, if the crate name is my-example-test-crate, Cargo currently makes 8 HTTP requests each second while waiting for the crate to be available. With this fix, Cargo makes only 1 request per second.

cc #11934

@rustbot
Copy link
Collaborator

rustbot commented Apr 5, 2023

r? @epage

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added A-registries Area: registries S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 5, 2023
@ehuss
Copy link
Contributor

ehuss commented Apr 6, 2023

Looks good, thanks!

@bors r+

@bors
Copy link
Contributor

bors commented Apr 6, 2023

📌 Commit a888c94 has been approved by ehuss

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Apr 6, 2023
@bors
Copy link
Contributor

bors commented Apr 6, 2023

⌛ Testing commit a888c94 with merge 60aaca6...

@bors
Copy link
Contributor

bors commented Apr 6, 2023

☀️ Test successful - checks-actions
Approved by: ehuss
Pushing 60aaca6 to master...

@bors bors merged commit 60aaca6 into rust-lang:master Apr 6, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Apr 11, 2023
Update cargo

17 commits in 0e474cfd7b16b018cf46e95da3f6a5b2f1f6a9e7..7bf43f028ba5eb1f4d70d271c2546c38512c9875
2023-03-31 23:15:58 +0000 to 2023-04-10 16:01:41 +0000

- docs(pkgid): Consistently use @ (rust-lang/cargo#11956)
- Fix credential token format validation. (rust-lang/cargo#11951)
- Validate token on publish. (rust-lang/cargo#11952)
- Clarify docs on `-C` that it appears before the command. (rust-lang/cargo#11947)
- Add `try_canonicalize` and use it over `std::fs::canonicalize` (rust-lang/cargo#11866)
- Fix typo (rust-lang/cargo#11944)
- docs(changelog): Change wording about auto-fix message (rust-lang/cargo#11943)
- Update home repo URL (rust-lang/cargo#11941)
- doc(changelog): `[env]` is a table, not a stable (rust-lang/cargo#11942)
- Stop using UncanonicalizedIter for QueryKind::Exact (rust-lang/cargo#11937)
- Don't query permutations of the path prefix. (rust-lang/cargo#11936)
- Fix typo in variable name (rust-lang/cargo#11931)
- Fix Cargo warning about unused sparse configuration key (rust-lang/cargo#11930)
- Switch benchsuite to the index archive. (rust-lang/cargo#11933)
- Update git2 (rust-lang/cargo#11928)
- Publish docs: Clarify requirements about the state of the index after publish. (rust-lang/cargo#11926)
- Call out the differences between the index JSON and the API or metadata. (rust-lang/cargo#11927)
@ehuss ehuss added this to the 1.70.0 milestone Apr 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-registries Area: registries S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants