need a way to distinguish closed channel from epoch mismatch

Bug #1805818 reported by John Lenton
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Snap Store Server
Matias Bordese

Bug Description

Given a snap set up like "test-snapd-epoch" is, where different channels have different epochs, some of them incompatible, the store currently gives no hint that it's serving a channel different to the one requested due to an epoch mismatch instead of it being due to the channel being closed:

    $ snap info test-snapd-epoch
    name:      test-snapd-epoch
    summary:   Basic snap with epochs
    publisher: Canonical✓
    license:   unset
    description: |
      A basic snap that has epochs
    snap-id:      3EWQJuQAKGGSVsDIKeGXsVvpJNfdfoMW
      stable:    1        (1) 4kB -
      candidate: 2star0   (2) 4kB -
      beta:      2        (3) 4kB -
      edge:      3complex (4) 4kB -
    installed:   1        (1) 4kB -
    $ snap install test-snapd-epoch
    test-snapd-epoch 1 from Canonical✓ installed
    $ snap refresh --beta test-snapd-epoch
    test-snapd-epoch (candidate) 2star0 from Canonical✓ refreshed
    Channel beta for test-snapd-epoch is closed; temporarily forwarding to candidate.

that last message is wrong, but snapd doesn't currently have a way of telling one case from the other.

Revision history for this message
John Lenton (chipaca) wrote :

This one might be the same, or it might be slightly different:

    $ snap install --edge test-snapd-epoch
    test-snapd-epoch (edge) 3complex from Canonical✓ installed
    $ snap refresh --beta test-snapd-epoch
    error: snap "test-snapd-epoch" is not available on beta but is available to install on the
           following channels:

           edge       snap refresh --edge test-snapd-epoch

           Get more information with 'snap info test-snapd-epoch'.

Revision history for this message
Matias Bordese (matiasb) wrote :

Closing a channel is really making that channel inherit the release timeline of the upper channel (unless there isn't an open channel above, in which case the channel is closed for real, with no available releases).

On the other hand, when an epoch filtering is applied, the complete timeline of the channel is considered, and that timeline would include the periods the channel was inheriting the releases from another channel.

So, today, the only case in which a channel is completely closed is when all the upper channels chain is closed (and store returns no revision for that scenario). Otherwise, the best released revision in the channel's timeline will be returned.

Given all that, we should think and discuss what the right responses would be depending on the cases.

Daniel Manrique (roadmr)
Changed in snapstore:
assignee: nobody → Matias Bordese (matiasb)
William Grant (wgrant)
Changed in snapstore:
importance: Undecided → Low
status: New → Triaged
William Grant (wgrant)
tags: added: snap-releases
tags: added: epochs
Zygmunt Krynicki (zyga)
Changed in snapd:
status: New → Triaged
importance: Undecided → Low
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.