Skip to content
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/build/cmd/relui: "Go 1.20 final" workflow ended too early #58228

Closed
dmitshur opened this issue Feb 1, 2023 · 5 comments
Closed

x/build/cmd/relui: "Go 1.20 final" workflow ended too early #58228

dmitshur opened this issue Feb 1, 2023 · 5 comments
Assignees
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. Unfortunate
Milestone

Comments

@dmitshur
Copy link
Contributor

dmitshur commented Feb 1, 2023

A recent "Go 1.20 final" relui workflow reached almost the end of its execution. One of the last tasks failed, which should've left the option to retry that task and keep going, but instead the entire workflow ended early with a no workflow named "Go 1.20 final" error.

This is the tracking issue to investigate and fix that.

CC @golang/release, @mknyszek, @mdempsky.

@dmitshur dmitshur added Builders x/build issues (builders, bots, dashboards) NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Feb 1, 2023
@dmitshur dmitshur added this to the Unreleased milestone Feb 1, 2023
@dmitshur
Copy link
Contributor Author

dmitshur commented Feb 1, 2023

The failing task (#58227) didn't just fail with an error, but panicked, and that caused all of relui to restart. If relui restarting causes a workflow to get marked as completed, maybe that's unavoidable, or maybe we can do better.

A particular task can avoid taking down the entire workflow by adding a defer recover that converts any unexpected panics into internal errors. (Hopefully this shouldn't be needed very often thanks to problems being caught by tests, but perhaps can be useful sometimes when a new task is being rolled out for the first time.)

@dmitshur
Copy link
Contributor Author

dmitshur commented Feb 1, 2023

I see what happened—the sequence of events here was unfortunate:

  1. a "Go 1.20 final" workflow was running and almost finished
  2. relui restarted and tried to resume all pending workflows
  3. during workflow registration, since a go1.20 tag was already published, a workflow named "Go 1.21 final" was registered, and a workflow named "Go 1.20 final" was not

I guess we should take this possible sequence of events into account in our logic for dynamic release workflow registration. 😅

@dmitshur dmitshur added NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. Unfortunate and removed NeedsInvestigation Someone must examine and confirm this is a valid issue and not a duplicate of an existing one. labels Feb 1, 2023
@heschi
Copy link
Contributor

heschi commented Feb 6, 2023

Oops. A bit janky, but perhaps we should GetTag on the latest tag and drop back to the previous one if it's less than, say, 3 days old?

@cagedmantis
Copy link
Contributor

Making the workflows more idempotent (if possible) would help prevent this from happening in the future.

@heschi heschi self-assigned this Feb 7, 2023
@gopherbot
Copy link

Change https://go.dev/cl/466145 mentions this issue: internal/relui: don't forget how to do major releases too fast

@dmitshur dmitshur added NeedsFix The path to resolution is known, but the work has not been done. and removed NeedsDecision Feedback is required from experts, contributors, and/or the community before a change can be made. labels Feb 7, 2023
@golang golang locked and limited conversation to collaborators Feb 8, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Builders x/build issues (builders, bots, dashboards) FrozenDueToAge NeedsFix The path to resolution is known, but the work has not been done. Unfortunate
Projects
Archived in project
Development

No branches or pull requests

4 participants