trying to upload a delta if delta service is disabled fails
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Snap Store Server |
Won't Fix
|
Low
|
Maximiliano Bertacchini | ||
Snapcraft |
Fix Released
|
High
|
Kyle Fazzari |
Bug Description
If upload deltas are disabled on the snap store servers, snapcraft fails like this when trying to upload a delta (easy way to ensure it's a delta upload: push two revisions of the same snap, one after the other).
After pushing, an attempt will be made to release to 'edge'
Preparing to push '/home/
Found cached source snap /home/ubuntu/
Generating xdelta3 delta for hello-roadmr-
Pushing delta /home/ubuntu/
Pushing hello-roadmr-
The Snap Store encountered an error while processing your request: not implemented (code 501).
The operational status of the Snap Store can be checked at https:/
> snapcraft --version
snapcraft, version 2.42.1+18.4
> lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04 LTS
Release: 18.04
Codename: bionic
this regressed in 2.42.1, because with 2.42 things work well, snapcraft gets the same 501 code from the store (which means deltas are not available/not implemented) and falls back to a full-snap upload (with a nice error saying delta support is disabled):
Pushing hello-roadmr-
After pushing, an attempt will be made to release to 'edge'
Preparing to push '/home/
Found cached source snap /home/ubuntu/
Generating xdelta3 delta for hello-roadmr-
Pushing delta /home/ubuntu/
Pushing hello-roadmr-
Unable to push delta to store: The delta upload support is currently disabled.
Falling back to pushing full snap...
Pushing hello-roadmr-
Processing...|
Ready to release!
Revision 51 of 'hello-roadmr-1' created.
Track Arch Channel Version Revision Expires at
latest amd64 stable 2018-06-08-01 47
We think the commit that regressed here was:
https:/
storeapi: handle 5xx error codes for all store endpoints (#2116)
Currently, the snapcraft CLI handles a 500 response when releasing a
snap. Make this more robust, and nicely handle 5xx codes for all
endpoints.
As reference, the response when deltas are disabled is that 501 HTTP status code with this payload:
{"error_list": [{"message": "The delta upload support is currently disabled.", "code": "feature-
Changed in snapcraft: | |
status: | Triaged → In Progress |
Changed in snapcraft: | |
status: | In Progress → Fix Committed |
Changed in snapcraft: | |
milestone: | none → 2.43 |
Changed in snapcraft: | |
status: | Fix Committed → Fix Released |
Changed in snapstore: | |
assignee: | nobody → Maximiliano Bertacchini (maxiberta) |
importance: | Undecided → Low |
Thanks Daniel, looks like we're missing a test case for that scenario.