Page MenuHomePhabricator

Allow users to restart builds at any time
AbandonedPublic

Authored by hach-que on Aug 19 2014, 1:16 AM.
Tags
None
Referenced Files
Unknown Object (File)
Wed, Apr 24, 10:14 PM
Unknown Object (File)
Fri, Apr 19, 2:07 AM
Unknown Object (File)
Fri, Apr 19, 2:07 AM
Unknown Object (File)
Thu, Apr 11, 7:32 AM
Unknown Object (File)
Thu, Apr 11, 3:31 AM
Unknown Object (File)
Fri, Mar 29, 1:34 AM
Unknown Object (File)
Mar 16 2024, 7:25 PM
Unknown Object (File)
Feb 14 2024, 1:19 AM

Details

Reviewers
epriestley
Group Reviewers
Blessed Reviewers
Maniphest Tasks
T1049: Implement Harbormaster
Summary

Ref T1049. This allows users to a queue a build restart even if the build is currently restarting. We encountered an issue where a build was in "restarting" status, but there was no HarbormasterBuildWorker task in the queue to actually restart the build. In this scenario, there was no way to restart the build other than go into the DB and remove the command manually, which is obviously not practical for most users.

By allowing users to restart at any time, it means build can't get stuck like this, because at the very least, it'll place another build worker in the queue which will also process any other commands (like pausing or resuming) as well.

Test Plan

Stopped daemons and then restarted a build. Removed the task from the queue via the DB and started daemons again. Then I hit "Restart Build" again and saw the build restart successfully.

Diff Detail

Repository
rP Phabricator
Branch
restart-anyway
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 2268
Build 2272: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

hach-que retitled this revision from to Allow users to restart builds at any time.
hach-que updated this object.
hach-que edited the test plan for this revision. (Show Details)
hach-que added a reviewer: epriestley.
This comment was removed by paralkad.
src/applications/harbormaster/controller/HarbormasterBuildActionController.php
76

오오오오오

I don't think we should pursue this.

At worst, I think we could maybe add a "force build update" button which queues a task to update the build (which would cover all cases of things getting wedged, rather than requiring us to go let everything individually ignore workflow rules), but I'd really like to understand what happened here before deciding how to react to it.

Is there a way we can detect if there is no HarbormasterBuildWorker in the queue, but the build has commands against it, and only offer the button in those circumstances? I don't want to confuse people with a button that does nothing 99% of the time.

Caught the source of the issue, which I've documented in T6033.