Page MenuHomePhabricator

Allow maintenance scripts to write synthetic events to the push log that act as repository updates
ClosedPublic

Authored by epriestley on Jun 1 2021, 1:50 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Dec 20, 10:09 PM
Unknown Object (File)
Thu, Dec 19, 11:04 PM
Unknown Object (File)
Thu, Dec 12, 12:51 AM
Unknown Object (File)
Wed, Dec 11, 7:35 AM
Unknown Object (File)
Nov 20 2024, 3:15 AM
Unknown Object (File)
Nov 16 2024, 9:22 PM
Unknown Object (File)
Nov 15 2024, 9:56 PM
Unknown Object (File)
Nov 14 2024, 3:58 AM
Subscribers
None

Details

Summary

Ref T13614. When a script holds the write lock but modifies the repository directly (rather than by pushing), the repository version won't change when the script releases the write lock. Thus, the writes may not propagate to other nodes (it depends which node lucks out and accepts the next write).

To guarantee that writes propagate, allow these scripts to pretend they pushed the repository. These are bare-bones valid events flagged as "Maintenance".

Test Plan
  • Wrote a script to hold the write lock, wait (or pretend to do something), then release the write lock.
  • Applied patches, modified script to use new APIs ("newMaintenanceEvent()").
  • Ran script, saw repository verison bump and relevant push logs:

Screen Shot 2021-06-01 at 6.44.02 AM.png (176×1 px, 48 KB)

Diff Detail

Repository
rP Phabricator
Branch
lock2
Lint
Lint Passed
Unit
Tests Passed
Build Status
Buildable 25375
Build 35036: Run Core Tests
Build 35035: arc lint + arc unit

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Jun 1 2021, 3:30 PM
This revision was automatically updated to reflect the committed changes.