~mvo/snapd/+git/snapd-mvo:gvfsd-metadata-fails-to-cleanup

Last commit made on 2019-08-12
Get this branch:
git clone -b gvfsd-metadata-fails-to-cleanup https://git.launchpad.net/~mvo/snapd/+git/snapd-mvo

Branch merges

Branch information

Name:
gvfsd-metadata-fails-to-cleanup
Repository:
lp:~mvo/snapd/+git/snapd-mvo

Recent commits

e719ffc... by Michael Vogt

tests: enable interfaces-calendar-service again on tumbleweed

232c228... by Michael Vogt

Merge remote-tracking branch 'upstream/master' into gvfsd-metadata-fails-to-cleanup

7db5555... by Michael Vogt

Merge pull request #7231 from mvo5/protocol-error-retry

httputil: retry for http2 PROTOCOL_ERROR

99d36cc... by Jamie Strandboge

Errata commit: pulseaudio still auto-connects on classic (#7229)

76492e4f1d334c890f403bc45c10573400413616 claimed to make pulseaudio
manually connect, but that was purposefully reverted. This empty commit
is to document pulseaudio auto-connection did not change.

d8c4444... by Michael Vogt

Merge pull request #7216 from jdstrand/k8s-updates

interfaces/misc: updates for k8s 1.15 (and greengrass test)

03fba72... by Michael Vogt

tests: disable interfaces-calendar-service to make PR green

35103b4... by "John R. Lenton" <email address hidden>

Merge pull request #7190 from zyga/tweak/tests-panic

tests: set GOTRACEBACK=1 when running tests

912d0c6... by Michael Vogt

Merge pull request #7220 from zyga/fix/die-leak

cmd/libsnap: don't leak memory in sc_die_on_error

64b59b5... by Maciej Borzecki

Merge pull request #7171 from sergiocazzolato/tests-fix-snapd-not-starting

tests: improve how the system is restored when the upgrade-from-2.15 test fails

72efaf8... by Michael Vogt

httputil: retry for http2 PROTOCOL_ERROR

We see some test failures (and probably real-world failures as
well) in the downloads with something like:

```
+ snap install test-snapd-content-circular1
error: cannot perform the following tasks:
- Download snap "test-snapd-content-circular2" (2) from channel "stable" (stream error: stream ID 1; PROTOCOL_ERROR)
```

Looking at the logs it seems that we get the protocol error from
fastly and that it is sent to us from the remote side:
```
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Transport failed to get client conn for fastly.cdn.snapcraft.io:443: http2: no cached connection was available
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Transport creating client conn 0xc4200baa80 to 151.101.250.217:443
...
c4204fbce0: wrote SETTINGS len=18, settings: ENABLE_PUSH=0, INITIAL_WINDOW_SIZE=4194304, MAX_HEADER_LIST_SIZE=10485760
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: wrote WINDOW_UPDATE len=4 (conn) incr=1073741824
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: wrote HEADERS flags=END_STREAM|END_HEADERS stream=1 len=869
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: read SETTINGS len=6, settings: MAX_CONCURRENT_STREAMS=100
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: wrote SETTINGS flags=ACK len=0
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: read WINDOW_UPDATE len=4 (conn) incr=16711681
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: read SETTINGS flags=ACK len=0
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: read HEADERS flags=END_HEADERS stream=1 len=378
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: read RST_STREAM stream=1 len=4 ErrCode=PROTOCOL_ERROR
Aug 09 20:03:16 aug091949-909109 snapd[7255]: 2019/08/09 20:03:16 http2: Framer 0xc4204fbce0: wrote RST_STREAM stream=1 len=4 ErrCode=CANCEL
...
```
There is a bugreport upstream that looks a bit like our issue:
https://github.com/golang/go/issues/29125

and there retrying seemed to have solved the issue. We should
dig a bit deeper and see if we can build a small reproducer
using fastly so that we can figure out if go2 is doing something
that fastly is not expecting or if fastly is the issue. But in
the meantime this hopefully unblocks us.