Page MenuHomePhabricator

Correct the flow of edit authority when sending messages to HarbormasterBuild objects

Authored by epriestley on Jul 15 2021, 6:02 PM.



Ref T13072. Currently, Harbormaster builds react to messages by applying a transaction inline (which can race) that has no real effect.

Later, the BuildEngine picks up the mesasge and applies a real effect, but this isn't transactional.

This is backwards, and makes it more difficult to transition to ModularTransaction and EditEngine. The desired workflow is:

  • sending a message just writes to the message table (and queues a worker to process the message);
  • the BuildEngine processes the message and applies effects in a transactional way.

Force this into at least roughly the right sequence of behaviors. This paves the way for porting to ModularTransaction, which should allow further cleanup.

Test Plan

Paused, resumed, aborted, and restarted a build. Ran BuildWorkers to process the commands, saw builds update appropriately.

Diff Detail

rP Phabricator
Lint Not Applicable
Tests Not Applicable

Event Timeline

Owners added a subscriber: Restricted Owners Package.Jul 15 2021, 6:02 PM
This revision was not accepted when it landed; it landed in state Needs Review.Jul 21 2021, 9:24 PM
This revision was automatically updated to reflect the committed changes.