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

proxy.golang.org: @v/list includes versions with no corresponding .info file #34033

Closed
aofei opened this issue Sep 3, 2019 · 3 comments
Closed
Labels
FrozenDueToAge modules NeedsFix The path to resolution is known, but the work has not been done.
Milestone

Comments

@aofei
Copy link
Contributor

aofei commented Sep 3, 2019

The https://proxy.golang.org/gopkg.in/jcmturner/rpc.v1/@v/list is now printing:

v1.0.0
v1.1.0
v1.1.1

But in fact this module doesn't contain the v1.1.1 revision (see this and this). Or maybe it existed before but was deleted by the author after being cached by the proxy.golang.org.

This caused a problem: I can't pass the following command:

$ GOPROXY=https://proxy.golang.org go get -u github.com/jinzhu/gorm
...
go get: upgrading gopkg.in/jcmturner/rpc.v1@v1.1.0: unexpected status (https://proxy.golang.org/gopkg.in/jcmturner/rpc.v1/@v/v1.1.1.info): 410 Gone
...

Therefore, I recommend that the proxy.golang.org should only cache the results of the /<module>/@v/<version>.info, /<module>/@v/<version>.mod, and /<module>/@v/<version>.zip into the storage. Both of the /<module>/@latest and /<module>/@v/list should only be cached by the CDN and the backend should refresh the results (regenerate from the module's source) every time the CDN back-to-source.

cc @andybons

@bcmills
Copy link
Contributor

bcmills commented Sep 3, 2019

CC @katiehockman @hyangah @heschik

@bcmills bcmills added the modules label Sep 3, 2019
@bcmills bcmills added this to the Unreleased milestone Sep 3, 2019
@bcmills bcmills added the NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. label Sep 3, 2019
@bcmills bcmills changed the title proxy.golang.org: the list requests shouldn't be cached to the storage proxy.golang.org: /@v/list includes versions with no corresponding .info file Sep 3, 2019
@bcmills bcmills changed the title proxy.golang.org: /@v/list includes versions with no corresponding .info file proxy.golang.org: @v/list includes versions with no corresponding .info file Sep 3, 2019
@katiehockman
Copy link
Contributor

Thanks for reporting the issue. I think you're right in your assumptions. It looks like gopkg.in/jcmturner/rpc.v1 had a version 1.1.1 tag, proxy.golang.org picked it up, then the tag was removed and proxy.golang.org is continuing to serve that version from list.

What we'll probably end up doing is serving a combination of cached module versions (ie. versions with zips that are currently being served through proxy.golang.org) and new list results, which would prevent /list from including versions like this one.

@heschi
Copy link
Contributor

heschi commented Oct 21, 2019

This should now be fixed. Please let us know if you see any further problems.

@heschi heschi closed this as completed Oct 21, 2019
@golang golang locked and limited conversation to collaborators Oct 20, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge modules NeedsFix The path to resolution is known, but the work has not been done.
Projects
None yet
Development

No branches or pull requests

5 participants