Page MenuHomePhabricator

2018 Week 7 (Mid February)
Updated 1,178 Days AgoPublic

Summary of changes from February 9, 2018 to February 16, 2018.

PhabricatorrPrPcb2f7106058 commitsrP33b77e4a
ArcanistrARCrARCbe1dd7e21 commit
libphutilrPHUrPHUe1f7cfe2 commits
Instances (SAAS)rSAASrSAASa71d20f0 commits
Services (SAAS)rSERVICESrSERVICESedd96db0 commits
Core (SAAS)rCORErCOREc937d900 commits
  • These changes were promoted to stable.


[] Chaos Reduction: Some outstanding race conditions and workflow state behavior errors have been locked down.

Phabricator now holds a read lock on all objects undergoing transactional edits, so it should be more difficult to (for example) race API calls against web edits, or race bulk edits against indirect effects caused by the same bulk edit. Because the race window was fairly narrow to start with, this happened most often when two automated editors (like arc and an external script; or two bulk edit actions) were both trying to edit an object in response to a single event.

Harbormaster buildables now start in a "PREPARING" state and move to "BUILDING" only after builds queue. Buildables are now attached to containers while a lock is held by a dedicated editor rather than by an unrelated object reaching into the database directly. These changes fix a series of issues where builds could report to revisions multiple times, lose track of which revision they were associated with, or revisions could be held in a draft state for longer than they should be.

When two Drydock leases race to either reclaim or acquire a resource, the race is now always resolved into a consistent state. If the acquiring lease loses the race, it now returns to the pool to try acquisition again.

See T13054 for discussion and context.

[] Drydock: Several issues impacting Drydock's ability to reliably fulfill lease requests, especially under heavier load, have been stabilized.

While bin/drydock lease is running, it now prints log information. If the process is killed before a lease is activated, the lease is automatically released. Users are provided with more information about reviewing and releasing the leases that the command acquires.

When a lease engages a blueprint to build a new resource but resource construction fails, the lease now yields. Previously, it would immediately be broken and destroyed. Leases and blueprints also send more information about this situation to the logs.

Broadly, when a lease begins acquiring a resource but the resource fails before acquisition does anything interesting, the lease is now thrown back in the pool to retry. Previously, the lease would be immediately broken and destroyed. Logging around this scenario has also improved.

The bin/drydock lease --attributes flag now works again for leases which depend on other blueprints.

A bug where the builtin slot lock limiting mechanism would make bad guesses about which locks were free as the resource pool filled up has been fixed. This may make resource acquisition significantly faster under load in some cases.

UI handling of status and log information should generally be a little more user friendly now.

See T13073 for discussion, context, and additional plans.

[] Phriction: Phriction has been modernized somewhat, although many of these changes are internal with little or no visible effect.

New and APIs are available. The legacy and phriction.history APIs are now frozen.

See T13077 for discussion and context.

arc weld: The new arc weld command fuses two or more files into a single piece of material. Unlike other tools (like cat, a pathetic tool which arc weld completely replaces), this command produces a heavy duty joint that can stand up to the toughest conditions imaginable.


  • See T13084 for discussion of a far-fetched "attack" that the new Phriction linking rules enable.


20180210.hunk.01.droplegacy.sql11 ms
20180210.hunk.02.renamemodern.sql5 ms
20180212.harbor.01.receiver.sql659 ms
20180214.harbor.01.aborted.php1,118 ms
20180215.phriction.01.phidcol.sql706 ms
20180215.phriction.02.phidvalues.php1,381 ms
20180215.phriction.03.descempty.sql207 ms
20180215.phriction.04.descnull.sql507 ms
20180215.phriction.05.statustext.sql60 ms
20180215.phriction.06.statusvalue.sql10 ms

"Duration" is the duration for this install, and may not be representative.

Upgrading / Compatibility

  • [] The QuickSearchEngineExtension is now DatasourceEngineExtension. The old name still works, but the compatibility stub which is keeping it working will be removed in the future.
  • The behavior of typing p <query> into global search to jump to a project has changed slightly. The new query should be more reliable/consistent but the underlying strategy for executing the query is somewhat different.
  • [] The API method is now frozen. Evaluate an upgrade to
  • [] The phriction.history API method is now frozen. Evaluate an upgrade to
  • Internal state storage for Phriction has changed formats. Existing saved searches which include state filters may need to be updated.
  • The remarkup syntax [[ / ]] is now a link to the Phriction root, not to the install root.
  • []DrydockLease->releaseOnDestruction() is now DrydockLease->setReleaseOnDestruction(bool). Passing true preserves identical behavior to the old call.
  • [] When phabricator.silent is enabled, we no longer call Webhooks. The "CircleCI", "Buildkite", and "Make HTTP Request" build steps also now fail immediately in silent mode.
  • In Herald, "Commit Hook" rules, "Outbound Mail" rules, and "Diff" rules no longer offer "Call Webhooks" as an action. These rules don't apply to activity which can generate webhook calls.


  • (stable) Fixed an error with legacy SMTP password configuration.
  • (stable) Fixed an error with legacy SES encoding configuration.
  • (stable) Fixed an issue with generating the "blocking reviewers" mail stamp which could cause mail to hang in queue.
  • [] When a build is aborted in Harbormaster, the buildable now fails. Existing buildables in the "Building" state with an aborted build will be failed by a migration.
  • The behavior for [x](y) links, where y is a link to Wikipedia, is now incorrect less often.
  • Completely removed the legacy Differential hunk table.
  • Fixed an issue where a draft from the far future could return to haunt the present in unlikely circumstances.
  • [] arc diff --plan-changes works again even if you have prototypes enabled on the server.
  • [] The changeset banner is now less sticky across page navigations when Quicksand is active.
  • [] Owners-related fields are now available in Herald for "Commit Hook: Content" rules.
  • Initial email from Phriction about documents with relative links to other wiki pages should now link to those pages properly.
  • Linking to wiki pages by copy-pasting URL fragments with URL escaping should now work as desired.
  • Phriction documents now appear in the global quick search typeahead.
  • Added autocomplete behavior on [[ ... for Phriction documents.
  • Added autocomplete behavior on (( ... for Phurl URLs.

The [] icon indicates a change backed by support mana.

Last Author
Last Edited
Feb 21 2018, 5:02 PM