See PHI1804. Previously, see T13284, which has a more detailed discussion of the general case of this behavior. Broadly, the setup here is:
- commit C is pushed to non-permanent branch "epriestley-tmp-123";
- later, commit C is pushed to permanent branch "master".
After T13284, we correctly reprocess "C" when it becomes reachable. However, the reprocessing effectively skips the "Message" step, which has some side effects beyond parsing the message -- notably, closing related revisions and tasks.
This means that revisions related to C are not closed.
The cleanest fix is to move these actions to "Publish", since they're really publish actions anyway and other publishing stuff already happens there.
The major issue I see with this is that these actions currently depend on a DiffusionCommitRef object, which is available in the "Message" step but not in the "Publish" step. These actions also have some side effects that impact commit data and are not "pure" publish actions.