Fix remoteResolver caching issue - #10456
#10456Merged
Merged
Conversation
williammartin
requested changes
Feb 19, 2025
williammartin
force-pushed
the
10103-remotes-cache
branch
from
February 20, 2025 12:16
c333e45 to
b61f2ef
Compare
williammartin
approved these changes
Feb 20, 2025
Member
There was a problem hiding this comment.
I made a couple of minor changes to the tests to hopefully make them a little clearer to read and to understand the error messages if they fail:
--- FAIL: Test_remoteResolver_Caching (0.00s)
--- FAIL: Test_remoteResolver_Caching/cache_error (0.00s)
remote_resolver_test.go:374:
Error Trace: /Users/williammartin/workspace/cli/pkg/cmd/factory/remote_resolver_test.go:374
Error: Not equal:
expected: *errors.errorString(&errors.errorString{s:"error to be cached"})
actual : <nil>(<nil>)
Test: Test_remoteResolver_Caching/cache_error
Messages: expected the error to be cached
--- FAIL: Test_remoteResolver_Caching/cache_remotes (0.00s)
remote_resolver_test.go:333:
Error Trace: /Users/williammartin/workspace/cli/pkg/cmd/factory/remote_resolver_test.go:333
Error: Received unexpected error:
readRemotes should only be called once
Test: Test_remoteResolver_Caching/cache_remotes
Messages: expected no error to be cached
Thanks!
Contributor
|
@williammartin : Is this a situation where we should have a mutex locked if the cache is empty and we're generating remotes? I haven't traced the code to see how it is or isn't used with concurrency, which is the only situation I could see having a problem. |
Member
|
Interesting question. I don't believe there was ever any intention for this to be safe for concurrent usage. I can't think of a place in the CLI where we would expect concurrent calls to remote resolution. |
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Mar 6, 2025
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [cli/cli](https://github.com/cli/cli) | minor | `v2.67.0` -> `v2.68.0` | MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot). **Proposed changes to behavior should be submitted there as MRs.** --- ### Release Notes <details> <summary>cli/cli (cli/cli)</summary> ### [`v2.68.0`](https://github.com/cli/cli/releases/tag/v2.68.0): GitHub CLI 2.68.0 [Compare Source](cli/cli@v2.67.0...v2.68.0) #### What's Changed ##### ✨ Features - \[gh repo view] Improve error message for forked repo by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10334 - Add signer-digest, source-ref, and source-digest options for `gh attestation verify` by [@​malancas](https://github.com/malancas) in cli/cli#10308 - \[gh pr checkout] Add --no-tags option to git fetch commands in checkout by [@​latzskim](https://github.com/latzskim) in cli/cli#10479 - \[`gh issue/pr comment`] Add `--create-if-none` and prompts to create a comment if no comment already exists by [@​latzskim](https://github.com/latzskim) in cli/cli#10427 - \[gh cache delete --all] Add `--succeed-on-no-caches` flag to return exit code 0 by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10327 - \[gh release create] Fail when there are no new commits since the last release by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10398 - update default upstream when forking repo during MR creation by [@​daviddl9](https://github.com/daviddl9) in cli/cli#10458 ##### 🐛 Fixes - Refactor `GetLocalAttestations` and clean up custom registry transport by [@​malancas](https://github.com/malancas) in cli/cli#10382 - Check `GH_REPO` too in addition to `--repo` for disambiguation by [@​williammartin](https://github.com/williammartin) in cli/cli#10539 - (Fixes `gh secret` subcommands not working outside of a repository) - Fix unhandled panic in FindWorkflow and add tests by [@​jtmcg](https://github.com/jtmcg) in cli/cli#10521 - Fix checkout when URL arg is from fork and cwd is upstream by [@​williammartin](https://github.com/williammartin) in cli/cli#10512 - \[gh api] Escape package name (URL encoding) for packages endpoint by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10384 - Fix `remoteResolver` caching issue by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10456 - Fix gh project item-edit to allow --number 0 as a valid value by [@​aryanbhosale](https://github.com/aryanbhosale) in cli/cli#10417 - Add mutex to fix race in attestation test client by [@​codysoyland](https://github.com/codysoyland) in cli/cli#10439 - Base64 decode GPG passphrase in deployment workflow by [@​BagToad](https://github.com/BagToad) in cli/cli#10546 ##### 📚 Docs & Chores - Deep Dive Document Release Process by [@​williammartin](https://github.com/williammartin) in cli/cli#10503 - Inconsistent format of examples in help text by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10508 - Inconsistent format of description of flags (starting with lowercase letter) by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10507 - Update Go version to 1.23 in CONTRIBUTING.md by [@​williammartin](https://github.com/williammartin) in cli/cli#10504 - Fix minor auth login help typo by [@​williammartin](https://github.com/williammartin) in cli/cli#10501 - docs: document how to revoke `gh` OAuth tokens in `auth logout`'s help by [@​BagToad](https://github.com/BagToad) in cli/cli#10490 - chore: update codespaces Go version by [@​BagToad](https://github.com/BagToad) in cli/cli#10491 - Allow injection of TUFMetadataDir in tests by [@​williammartin](https://github.com/williammartin) in cli/cli#10478 - refactor: use a more straightforward return value by [@​beforetech](https://github.com/beforetech) in cli/cli#10489 - Use subtests in attestation verification integration tests by [@​williammartin](https://github.com/williammartin) in cli/cli#10463 - Fix typo in README by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10445 - Update usage to lower-kebab-case by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10447 - Standardize URLs by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10429 - Remove trailing whitespace by [@​iamazeem](https://github.com/iamazeem) in cli/cli#10430 #####Dependencies - Bump actions/attest-build-provenance from 2.2.0 to 2.2.2 by [@​dependabot](https://github.com/dependabot) in cli/cli#10518 - Bump github.com/go-jose/go-jose/v4 from 4.0.2 to 4.0.5 by [@​dependabot](https://github.com/dependabot) in cli/cli#10499 - Bump github.com/spf13/pflag from 1.0.5 to 1.0.6 by [@​dependabot](https://github.com/dependabot) in cli/cli#10338 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this MR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box --- This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODYuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE4Ni4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
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.
Fixes #10103.