Store shows incorrect latest release for amd64 arch, but arm64 and i386 are correct

Hi,

I maintain chezmoi which is published at snapcraft.io/chezmoi.

The snap store shows the latest release for amd64 as being 1.7.4 (revision 92), which is one version too old. The latest release is 1.7.5 (revision 96). For the other published architectures (arm64 and i386) the correct latest releases (1.7.5, revisions 94 and 95) are shown, and I have verified that 1.7.5 has been pushed to snapcraft.io on https://snapcraft.io/chezmoi/releases.

I noticed that before I pushed 1.7.5, the snap store was also one version behind, showing 1.7.3 instead of 1.7.4. It is strange that it is only the amd64 architecture that has this behavior. arm64 and i386 are correctly up-to-date.

Is there something that I need to configure to tell the snap store to show the correct latest version? I went though all the setting I could find for my snap in the web admin interface but could not find anything relevant.

Thanks for any help,
Tom

Hey there,

We are investigating this issue. Could you please give us exact details about the commands you ran for the upload and release of the revisions?

Thank you!
Natalia.

Thanks for the quick response :slight_smile:

I use goreleaser to build and push to snapcraft whenever I push a tag to the chezmoi GitHub repo. Some possibly relevant links:

You probably need more information than this. I’ll try to find out how to persuade goreleaser to emit more detailed logging information.

I also notice that the version installed by sudo snap refresh is also one version behind (i.e. 1.7.4, not 1.7.5) so the problem might not be specific to the store but instead to whatever API returns the latest version of a snap for amd64.

Hey there, thanks for the links. If you could provide exact details about the actual commands that are run for the publishing of the snap packages, that would be helpful for us. What we see internally is that we have a request to release revision 92 a few microseconds after the request to release 96, so 96 is released first but almost immediately superseded by 92.

Does that sound like something the tool you are using might be doing?

Thanks for the detailed info from your side. goreleaser does publish snaps concurrently, so it’s possible that there’s some missing synchronization here. I’ll follow up with the developers and report back here.

I opened this issue with the tool I’m using (goreleaser), but there’s an inconsistency between the snapcraft releases page and what I see on snapcraft.io.

snapcraft.io/chezmoi/releases shows this:

There is no mention of release 92 (1.7.4) here, and there’s no reasonable mechanism that I can think of that would allow goreleaser to “request to release revision 92”.

Is it possible to know where the “request to release revision 92” is coming from?

Hey Tom,

We have dig further into our stack and we have found out that we have a race condition when multiple releases are done too quickly to the same channel (even if those are for different architectures).

We’ll work on a fix soon, and I have fixed your snap release map so what you see in snapcraft.io (which matches the commands you ran) matches what the devices see.

Thank you for your help debugging!
Natalia.

1 Like

Great! Really happy to hear that you found the problem. Thanks for the really fast response and great support :slight_smile: