goproxy.cn: TLS handshake timeout

go get -v github.com/rcrowley/go-metrics

go get github.com/rcrowley/go-metrics: module github.com/rcrowley/go-metrics: Get https://goproxy.cn/github.com/rcrowley/go-metrics/@v/list: net/http: TLS handshake timeout

go env

… GOPROXY=“https://goproxy.cn,direct” …

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 17 (7 by maintainers)

Most upvoted comments

@clearcodecn @donnol 感谢两位老哥的回复!

破案了破案了!这里 TLS 握手超时的具体原因我已经找到了,是因为大家当时的网络较差所导致的,因为 Go modules 目前在用的 http.Client这个,它所用的 http.Transporthttp.DefaultTransport,也就是这个,其中所指定的 TLSHandshakeTimeout 是 10 秒,这对于正常的网络来说是非常充足的,但对于较差的网络可能就不够了。就像我在上面说的,Go modules 在拉取模块文件时会并行地发出大量的 HTTPS 请求,此时如果其中的任意一条 TLS 握手超时都会导致整体构建失败,而恰好大家当时的网络可能比较差,所以有那么一两条 TLS 握手超时掉了,于是大家就得到了那个错误。

那么以后大家再遇到这个问题该怎么解决呢?要么跟老板投诉让给大家改善一下工作环境的网络,要么多尝试几次,依靠 Go modules 的缓存机制一部分一部分地拉取,直到所有的都拉取成功(讲道理还是投诉给老板方便些)。

那么,鉴于问题已解决,那我就关闭这个 Issue 了哦~哈哈开心😊~不是 goproxy.cn 的锅就非常舒服了~✌️

如果大家以后再遇到别的问题欢迎随时反馈哦~我还是会继续保持尽快回应的~💪