It appears that a bug in http/2 golang library is causing very slow pushes towards registries that support http/2 flow. The bug is opened here:
https://github.com/google/go-containerregistry/pull/799
While Docker does seem to turn this off on compile time, there are other clients who do not do this, which causes issues. According to the last comment, Google mitigates this by advertising a rather large buffer:
# gcr 2020/10/29 22:57:39 http2: Framer 0xc0002de380: read WINDOW_UPDATE stream=21 len=4 incr=360474 2020/10/29 22:57:39 http2: Transport received WINDOW_UPDATE stream=21 len=4 incr=360474 # quay 2020/10/29 22:58:10 http2: Framer 0xc00071c0e0: read WINDOW_UPDATE stream=21 len=4 incr=16339 2020/10/29 22:58:10 http2: Transport received WINDOW_UPDATE stream=21 len=4 incr=16339
I know that Quay is written in Python with nginx as frontend proxy. Is it possible to achieve a similar thing in Quay? Thanks!