cmd/go: describe stuck ops when terminated by signal

vhipe2zx  于 19天前  发布在  Go
关注(0)|答案(1)|浏览(17)

你正在使用的Go版本是什么( go version )?

go version go1.11 darwin/amd64

这个问题在最新版本的发布中是否重现?

是的。

你正在使用什么操作系统和处理器架构( go env )?

GOARCH="amd64"
GOCACHE="/Users/ccahoon/Library/Caches/go-build"
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"

你做了什么?

注意:我是在GO111MODULE=on的GOPATH内构建的。

  1. 我正在构建一个导入模块的命令,该模块定义为:module github.com/Figure53/figure53.com
  2. 在那个模块中,我导入了一个包,路径为:github.com/Figure53/figure53.com/backend/remote,它可以正常构建。
  3. 我在预存在的包中创建了一个新的文件,并复制粘贴了那个导入路径。在某个过程中,我引入了一个拼写错误到导入路径中。导入路径中的域名被拼写错误地写成了gitdub.com
  4. 我用go build运行了GO111MODULE=on,它静默挂起直到我取消操作。我尝试了几次,感到困惑。它似乎不是一个CPU问题,而且我已经有一段时间没有遇到过无反馈的慢速构建了。在我暂存我的更改后,它又可以正常构建了。
  5. 我阅读了我的差异,发现了我的拼写错误,并进行了修复,构建又可以正常工作了。

你期望看到什么?

我期望在较短的时间内看到一些提示信息,表明go build在尝试获取模块时挂起了。我也认为设置一个较短的超时时间是有意义的。

你看到了什么?

go build无限挂起。
当我运行go build -v [...]时,我可以查看它正在处理的内容,并且构建会无限挂起在:Fetching https://gitdub.com/Figure53/figure53.com/backend/remote?go-get=1。当请求快速返回时(例如,为了理解问题而进行的实验,我将域名更改为我自己控制的域名,它会很快返回404):build github.com/Figure53/figure53.com/backend/act: cannot find module for path figure53.com/Figure53/figure53.com/backend/remote时,这不是一个问题。顺便说一下,我非常喜欢这个模块系统。大部分情况下,它的过渡都非常顺利。感谢大家所做的出色工作!

z0qdvdin

z0qdvdin1#

gitdub.com 是一个停放的域名,并且对于HTTPS请求似乎会无限挂起。我们可能无法修复挂起的问题,因为我们无法区分慢速服务器和无效服务器,但我们至少可以采取一些措施来澄清哪个操作是挂起的。

相关问题