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
F13275711: D10292.diff
Fri, May 31, 5:06 AM
F13256093: D10292.diff
Sat, May 25, 9:33 AM
F13247216: D10292.diff
Thu, May 23, 4:53 PM
F13220696: D10292.diff
Sun, May 19, 1:52 AM
F13203166: D10292.diff
Tue, May 14, 11:32 PM
F13185135: D10292.diff
Sat, May 11, 2:37 AM
F13177268: D10292.diff
Wed, May 8, 7:35 PM
Unknown Object (File)
Tue, May 7, 5:17 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.