gomods / athens

A Go module datastore and proxy
https://docs.gomods.io
MIT License
4.44k stars 502 forks source link

Occasional broken pipe error #1608

Open xytan0056 opened 4 years ago

xytan0056 commented 4 years ago

Describe the bug We intermittently see broken pipe or connection reset by peer errors. Looks like something to do with network buffers. Any idea why this happened? On the other hand, these normally get resolved by a retry. Do you think it's worth it to configure a retry at API level?

Error Message

ERROR: write tcp port1->port2: write: broken pipe http-method=GET http-path=/github.com/lightstep/lightstep-tracer-go/@v/v0.18.1.zip kind=Internal Server Error module=github.com/lightstep/lightstep-tracer-go operation=download.ZipHandler ops=[download.ZipHandler] user= version=v0.18.1

ERROR: write tcp port1->port2: write: connection reset by peer http-method=GET http-path=/github.com/uber/kraken/@v/v0.1.4-0.20191206225829-0fc0e7dfb55a.zip http-url=/github.com/uber/kraken/@v/v0.1.4-0.20191206225829-0fc0e7dfb55a.zip kind=Internal Server Error module=github.com/uber/kraken operation=download.ZipHandler ops=[download.ZipHandler] user= version=v0.1.4-0.20191206225829-0fc0e7dfb55a

To Reproduce Cannot repro. Happening randomly

arschles commented 4 years ago

@xytan0056 not sure why this is happening but I'd like to see if we can fix it before adding retry functionality to Athens. As you probably know, Athens is doing these downloads with the go CLI, which is really just git behind the scenes. Can you start by trying several go mod download github.com/lightstep/lightstep-tracer-go@v0.18.1 calls in quick succession on the same server and see if you can reproduce it?