-
Notifications
You must be signed in to change notification settings - Fork 17.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
x/exp/cmd/gorelease: hangs #56840
Comments
Send the stuck command |
|
I attached a debugger to the running gorelease application when this is happening. It's spinning finding missing dependencies here: https://github.com/golang/exp/blob/master/cmd/gorelease/gorelease.go#L1125-L1131 |
Here's a stack trace for the
|
|
It appears we're getting stuck here: We never break out of this loop in the temporary module created by gorelease |
I haven't had time to create a minimal repro, yet, but I think I've reduced what's going on a little bit. When gorelease creates a fake version and uses that as a replace version in the temp Go module we hit a case in Assume the module gorelease is being run against is
|
I still haven't been able to create a minimal reproducer but I did compile a debug build of the Without graph pruning there seems to be some dependency constraint that causes the resolver onto an old version and with graph pruning that constraint doesn't exist and a newer version is selected. This appears to happen with different dependencies in the dependency graph but involving the same root (circular) dependency, which is what causes the infinite oscillation back and forth. I just noticed #56494 which also has a circular module dependency as a contributing factor. While the symptoms are different (hang versus panic) I wonder if the underlying bug is the same? Once there's a patch for #56494 available I'd be happy to also test it with this issue. |
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env
)?go env
OutputWhat did you do?
Running gorelease on most of our internal software takes 3-5 minutes and works as expected. On one particular repo it will hang for an hour with no response. I recognize that this gives no information to solve the issue. Is there a way to get debug output that would be helpful?
The text was updated successfully, but these errors were encountered: