Page MenuHomePhabricator

epriestley (Evan Priestley)
OverengineerAdministrator

Projects (73)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Monday

  • Clear sailing ahead.

User Details

User Since
Feb 8 2011, 1:28 AM (558 w, 4 d)
Roles
Administrator
Availability
Available

Psyduck is the greatest pokemon of all time.

Recent Activity

Thu, Oct 21

epriestley added a comment to T2794: Implement Phage (like Hypershell).

The non-public parts of Phage are currently very specific to Phacility's cluster and probably not generally useful. The current version of PhageRemoteWorkflow is similar to P2107 and depends on particular Phacility services and hosts to enumerate valid remotes and negotiate a connection to them through a bastion pool. These service-listing and bastion-host components are not generalized and not trivially generalizable.

Thu, Oct 21, 8:00 PM · Phage, Infrastructure

Tue, Oct 19

epriestley added a comment to T13628: Provide "Foist Upon", an inverse operation to "Commandeer".
  1. As Alice, commandeer a revision authored by Baliey and reviewed by Claire. Edit it locally to do arbitrary bad things, then git push it.
  2. Make a commit, edit the commit message to say Differential Revision: D1234, where D1234 is a current, valid, accepted revision authored by anyone, then git push it.
Tue, Oct 19, 6:25 PM · Differential
epriestley added a comment to T13628: Provide "Foist Upon", an inverse operation to "Commandeer".

I believe it is extremely difficult to configure Phabricator to provide the assurance you describe, particularly if arc land does anything. If you are actually providing this guarantee ("an attacker needs two machines"), you can likely add a clause to the large amount of custom code you've written to prevent self-foisting while still supporting other foisting use cases. If you haven't written a large amount of custom code, I suspect an attacker can fairly easily deploy with one machine without using "Foist Upon".

Tue, Oct 19, 6:18 PM · Differential

Fri, Oct 1

epriestley added a comment to D21425: Streamline handling of Futures and PIDs in daemons.

The Future stuff is used on both the client and server, so it lives in Arcanist rather than Phabricator. The method definition should be here:

Fri, Oct 1, 9:49 PM

Tue, Sep 28

epriestley added a comment to T13588: PHP 8 Compatibility.

See also T12404#256288 for a note on each removal.

Tue, Sep 28, 2:41 PM · Infrastructure
epriestley added a comment to T12404: Implement a first-party SMTP client.

each is usually easy to replace and I'm happy to accept a change to replace it if someone wants to reproduce/test it. I believe this (totally ridiculous) construction:

Tue, Sep 28, 2:40 PM · Infrastructure, Mail

Sep 17 2021

epriestley added a comment to D21723: Make corrections to the "arc amend" workflow in Mercurial repositories to be compatible with PHP 5+.

The second baby has arrived so I have about 17 seconds per day to look at my computer nowadays, but I think it would also be reasonable to backfill str_starts_with() if you run into more of this -- the strncmp() syntax has always felt pretty hard to read to me. You can do that in PHP like this:

Sep 17 2021, 1:02 PM
epriestley accepted D21723: Make corrections to the "arc amend" workflow in Mercurial repositories to be compatible with PHP 5+.
Sep 17 2021, 2:20 AM

Sep 13 2021

epriestley added inline comments to D21680: An assortment of fixes and updates to using arc-land with mercurial.
Sep 13 2021, 9:28 PM

Sep 5 2021

epriestley accepted D21716: Update ArcanistMercurialAPI to support getting the current commit ref.

The "symbol" here could, in the absolute-most-general case, be a short commit hash (abcd1234) or symbolic commit (tip^^^) -- not just a bookmark or tag name -- so I think this trick (though quite clever) may run into trouble some day. This looks like a reasonable fix to the immediate issue, though, and we can cross this bridge if/when we come to it.

Sep 5 2021, 3:29 PM
epriestley committed rPb9ba0418ed13: Correct a parameter order swap in "diffusion.historyquery" for Mercurial (authored by epriestley).
Correct a parameter order swap in "diffusion.historyquery" for Mercurial
Sep 5 2021, 1:16 AM
epriestley closed D21722: Correct a parameter order swap in "diffusion.historyquery" for Mercurial.
Sep 5 2021, 1:16 AM
epriestley accepted D21718: Update "arc liberate" to fix error with PHP 8, remove logging, modify error handling.
Sep 5 2021, 1:16 AM
epriestley requested review of D21722: Correct a parameter order swap in "diffusion.historyquery" for Mercurial.
Sep 5 2021, 12:48 AM
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21722: Correct a parameter order swap in "diffusion.historyquery" for Mercurial.
Sep 5 2021, 12:47 AM · Diffusion
epriestley accepted D21718: Update "arc liberate" to fix error with PHP 8, remove logging, modify error handling.

Thanks!

Sep 5 2021, 12:45 AM
epriestley added a comment to D21718: Update "arc liberate" to fix error with PHP 8, remove logging, modify error handling.

I think it's reasonable to remove the try/catch and just let the exception escape. It (the try-catch + log) isn't consistent with the approach to error handling in the rest of the codebase, and I can't think of any valid reason to continue here after a write failure.

Sep 5 2021, 12:38 AM
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

Good catch!

Sep 5 2021, 12:30 AM · Diffusion
epriestley accepted D21719: Fix searching legalpad documents by contributors.

Thanks!

Sep 5 2021, 12:17 AM

Sep 4 2021

epriestley accepted D21717: Remove history query from DiffusionRepositoryController as it is unused.

This looks great to me now, as long as I didn't miss anything with the Future stuff and it does what it's supposed to on top of D21720 + D21721.

Sep 4 2021, 9:38 PM
epriestley committed rPb757e5c30249: Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time (authored by epriestley).
Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time
Sep 4 2021, 9:36 PM
epriestley closed D21721: Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time.
Sep 4 2021, 9:36 PM
epriestley accepted D21718: Update "arc liberate" to fix error with PHP 8, remove logging, modify error handling.

I'd favor this change:

Sep 4 2021, 9:35 PM
epriestley requested review of D21721: Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time.
Sep 4 2021, 9:21 PM
epriestley committed rARCf993b1fbda71: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts (authored by epriestley).
Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts
Sep 4 2021, 9:19 PM
epriestley closed D21720: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts.
Sep 4 2021, 9:19 PM
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21721: Use "MethodCallFuture" to move Diffusion Conduit exceptions to resolution time.
Sep 4 2021, 9:13 PM · Diffusion
epriestley added a comment to D21720: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts.

Yeah -- isReady() should really be called something else nowadays (it's, uh, "doTheThingThisFutureDoes()" pretty much), but it would be a backward-compatibility break and I shuffled enough stuff around in T11968 that I didn't want to press my luck.

Sep 4 2021, 9:05 PM
epriestley added a comment to D21716: Update ArcanistMercurialAPI to support getting the current commit ref.

This might or might not be helpful, but the rough model here is that "hardpoints" are an open slot that some particular data may be loaded into. The physical analogy is a "hardpoint" on fighter aircraft where a particular missile or bomb may be attached.

Sep 4 2021, 9:00 PM
epriestley requested review of D21720: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts.
Sep 4 2021, 8:40 PM
epriestley added a revision to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations: D21720: Provide "MethodCallFuture" to fix exception semantics in mixed-future contexts.
Sep 4 2021, 8:40 PM · Diffusion
epriestley added a comment to D21717: Remove history query from DiffusionRepositoryController as it is unused.

Does that mean the ConduitClientFuture doesn't begin execution until resolve() is called or some other internal mechanism triggered by iterating a FutureIterator?

Sep 4 2021, 8:13 PM
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

Ah, that's helpful. I found a repro, it's specific to the behavior of the ImmediateFuture pathway for non-clustered resolution of Conduit "calls". This should force it from any configuration/state, I think:

Sep 4 2021, 7:46 PM · Diffusion
epriestley requested changes to D21716: Update ArcanistMercurialAPI to support getting the current commit ref.

The desired/intended approach is to implement ArcanistMercurialCommitSymbolCommitHardpointQuery, following ArcanistGitCommitSymbolCommitHardpointQuery. Alas, this is a significantly more complicated change (but might make life easier down the road).

Sep 4 2021, 7:39 PM
epriestley accepted D21715: Add support to marking commits as UNREACHABLE for Mercurial.

Thanks!

Sep 4 2021, 7:18 PM
epriestley requested changes to D21717: Remove history query from DiffusionRepositoryController as it is unused.

This construction:

Sep 4 2021, 7:16 PM
epriestley added a comment to T13666: Improve error-handling behavior of Diffusion repository landing page on non-clustered installations.

I'll have some more detail in D21717 in a minute, but I can't immediately reproduce this, I think? If I intentionally break diffusion.historyquery like this:

Sep 4 2021, 7:06 PM · Diffusion

Sep 3 2021

epriestley added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

(D21715 is still a draft, but I left a couple of more specific comments there.)

Sep 3 2021, 3:39 AM · Diffusion
epriestley added a comment to T13634: Support marking commits as UNREACHABLE in Mercurial.

Does this refer to when multiple dependent commits are pushed and then stripped from the on-disk state?

Sep 3 2021, 3:35 AM · Diffusion

Aug 20 2021

epriestley accepted D21714: Fix subtype extension support check.

Thanks!

Aug 20 2021, 1:52 PM

Aug 19 2021

epriestley updated the task description for T13664: SSRF and Phabricator.
Aug 19 2021, 5:07 PM · Security, Guides
epriestley triaged T13664: SSRF and Phabricator as Low priority.
Aug 19 2021, 4:41 PM · Security, Guides
epriestley added a comment to T13663: TypeError when editing calendar import.

I think this is probably the cleanest fix, but I only tested event imports (which now appear to work). If you want to test Maniphest with subtypes configured (to make sure it doesn't break) and send me a revision with this change, I'll review it. Otherwise, I'll do that testing when I get a chance and land this if nothing crops up.

Aug 19 2021, 4:07 PM · Calendar

Aug 18 2021

epriestley removed a member for Phacility High Command: amckinley.
Aug 18 2021, 7:31 PM

Aug 17 2021

cspeckmim awarded T13133: Phabricator Query Layer Overview a Mountain of Wealth token.
Aug 17 2021, 12:14 AM · Guides

Aug 2 2021

epriestley committed rP8daaf5ef2145: Pass a real context object to Phriction previews, fixing mentions (authored by epriestley).
Pass a real context object to Phriction previews, fixing mentions
Aug 2 2021, 3:36 PM
epriestley closed T13662: Mentions break Phriction preview as Resolved by committing rP8daaf5ef2145: Pass a real context object to Phriction previews, fixing mentions.
Aug 2 2021, 3:36 PM · Phriction
epriestley closed D21709: Pass a real context object to Phriction previews, fixing mentions.
Aug 2 2021, 3:36 PM
epriestley closed D21708: Fix Phriction document previews for the root document ("/") with Apache option "MergeSlashes On".
Aug 2 2021, 3:36 PM
epriestley committed rPc7550dbee9b1: Fix Phriction document previews for the root document ("/") with Apache option… (authored by epriestley).
Fix Phriction document previews for the root document ("/") with Apache option…
Aug 2 2021, 3:36 PM
epriestley added a comment to T13652: Notes on Ardunio CNC drivers.

I found this channel incredibly helpful for repairing/replacing components on boards:

Aug 2 2021, 4:19 AM

Aug 1 2021

epriestley added a comment to D21709: Pass a real context object to Phriction previews, fixing mentions.

You can render remarkup using this rule without having a meaningful relative base URI, e.g. on some other object type or via remarkup.process in the API. This isn't necessarily a meaningful operation and the result may not be useful, but remarkup generally tries not to fail loudly: if you copy/paste a block of text from somewhere that happens to have some substrings which aren't valid, the desired behavior is generally for your text to be processed in some best-guess-at-sensible way -- and usually emitted unmodified (see also discussion in D21713).

Aug 1 2021, 7:06 PM

Jul 29 2021

epriestley committed rPdbe2fb466fed: Add an "eval" rule to Remarkup (authored by epriestley).
Add an "eval" rule to Remarkup
Jul 29 2021, 11:47 PM
epriestley closed D21713: Add an "eval" rule to Remarkup.
Jul 29 2021, 11:47 PM
epriestley added inline comments to D21713: Add an "eval" rule to Remarkup.
Jul 29 2021, 8:31 PM
epriestley updated the diff for D21713: Add an "eval" rule to Remarkup.
  • For now, just return the literal input if we fail to evaluate an expression.
Jul 29 2021, 8:18 PM
epriestley added a comment to D21713: Add an "eval" rule to Remarkup.

When intent is ambiguous (the user might or might not be trying to invoke a Remarkup rule), I try to make the output of an "invalid" input exactly the same as the input, so (for example) copy/pasting text into Phabricator doesn't mangle it into a big blob of nonsense just because you happened to have some magic words in there.

Jul 29 2021, 3:57 PM
epriestley added a comment to D21713: Add an "eval" rule to Remarkup.

I suspect escaping things in PHP will be pretty rare and that the "collides with PHP strings" downside will be very small.

Jul 29 2021, 12:24 AM

Jul 28 2021

epriestley added a comment to D21712: Trying out removing "Phabricator" from some user-visible text.

Ah, yeah, the build issue is that ${...} in a PHP double-quoted string is semantic, so PHP is trying to do something with ${{{...}}} and failing with a syntax exception during parsing. You can either escape ${{{strings.x.y}}} as \${{{strings.x.y}}} or suggest a different syntax for the "eval" rule --- I'm not married to ${{{...}}}.

Jul 28 2021, 5:13 AM
epriestley added a comment to D21712: Trying out removing "Phabricator" from some user-visible text.

That build failure may be related to recent changes to T13072, or something else server-side -- I don't expect build failures to look like that in Harbormaster. Let me see if I can reproduce it locally.

Jul 28 2021, 5:09 AM

Jul 27 2021

epriestley requested review of D21713: Add an "eval" rule to Remarkup.
Jul 27 2021, 9:08 PM
epriestley added a revision to T13658: How to rebrand Phabricator: D21713: Add an "eval" rule to Remarkup.
Jul 27 2021, 9:07 PM
epriestley committed rPcc8cbed02941: Make "DifferentialDiff->properties" a proper "attachable" property (authored by epriestley).
Make "DifferentialDiff->properties" a proper "attachable" property
Jul 27 2021, 8:39 PM
epriestley closed D21710: Make "DifferentialDiff->properties" a proper "attachable" property.
Jul 27 2021, 8:39 PM
epriestley requested changes to D21712: Trying out removing "Phabricator" from some user-visible text.

These generally look reasonable to me, some thoughts inline. In some of these cases I think we can probably just remove extra references to "this install", "this install of Phabricator on this server", etc., and let it be implied by context.

Jul 27 2021, 8:36 PM

Jul 26 2021

epriestley committed rARC82016c00e132: Name extension as "arc-hg", not "arg-hg" (authored by epriestley).
Name extension as "arc-hg", not "arg-hg"
Jul 26 2021, 7:27 PM
epriestley closed D21711: Name extension as "arc-hg", not "arg-hg".
Jul 26 2021, 7:27 PM
epriestley updated the summary of D21708: Fix Phriction document previews for the root document ("/") with Apache option "MergeSlashes On".
Jul 26 2021, 7:27 PM
epriestley closed T13659: `arc land` may fail with missing rebase extension as Resolved.

I caught one cosmetic issue in D21711, but this works properly for me locally now. Thanks!

Jul 26 2021, 6:49 PM · Arcanist, Mercurial
epriestley requested review of D21711: Name extension as "arc-hg", not "arg-hg".
Jul 26 2021, 6:49 PM
epriestley added a revision to T13659: `arc land` may fail with missing rebase extension: D21711: Name extension as "arc-hg", not "arg-hg".
Jul 26 2021, 6:49 PM · Arcanist, Mercurial
epriestley requested review of D21710: Make "DifferentialDiff->properties" a proper "attachable" property.
Jul 26 2021, 6:45 PM
epriestley requested review of D21709: Pass a real context object to Phriction previews, fixing mentions.
Jul 26 2021, 6:33 PM
epriestley added a revision to T13662: Mentions break Phriction preview: D21709: Pass a real context object to Phriction previews, fixing mentions.
Jul 26 2021, 6:32 PM · Phriction
epriestley requested review of D21708: Fix Phriction document previews for the root document ("/") with Apache option "MergeSlashes On".
Jul 26 2021, 6:18 PM
epriestley added a revision to T13662: Mentions break Phriction preview: D21708: Fix Phriction document previews for the root document ("/") with Apache option "MergeSlashes On".
Jul 26 2021, 6:17 PM · Phriction
epriestley added a comment to T13662: Mentions break Phriction preview.

I ran into this while trying to reproduce the issue:

Jul 26 2021, 6:13 PM · Phriction
epriestley claimed T13662: Mentions break Phriction preview.
Jul 26 2021, 5:56 PM · Phriction

Jul 21 2021

epriestley added a comment to T13648: Transaction publishing may stall during mail expansion of package recipients.

The stalled transactions on this host published after I deployed the update.

Jul 21 2021, 11:39 PM · Transactions
epriestley removed a reviewer for D21498: Fix error handler on PHP 8: Unknown Object (Owners Package).
Jul 21 2021, 11:36 PM
epriestley removed a reviewer for D21497: Suppress PHP 8 deprecation warning in __arcanist_init_script__: Unknown Object (Owners Package).
Jul 21 2021, 11:34 PM
epriestley committed rP387d3b4983d7: Resolve deleted packages properly as having no mailable members (authored by epriestley).
Resolve deleted packages properly as having no mailable members
Jul 21 2021, 9:50 PM
epriestley closed D21707: Resolve deleted packages properly as having no mailable members.
Jul 21 2021, 9:50 PM
epriestley closed T13648: Transaction publishing may stall during mail expansion of package recipients as Resolved by committing rP387d3b4983d7: Resolve deleted packages properly as having no mailable members.
Jul 21 2021, 9:50 PM · Transactions
epriestley requested review of D21707: Resolve deleted packages properly as having no mailable members.
Jul 21 2021, 9:27 PM
epriestley updated the task description for T13661: Give Phame configurable interact policies.
Jul 21 2021, 9:26 PM · Phacility, Phame
epriestley triaged T13661: Give Phame configurable interact policies as Low priority.
Jul 21 2021, 9:25 PM · Phacility, Phame
epriestley closed D21687: Correct the flow of edit authority when sending messages to HarbormasterBuild objects.
Jul 21 2021, 9:24 PM
epriestley added a revision to T13648: Transaction publishing may stall during mail expansion of package recipients: D21707: Resolve deleted packages properly as having no mailable members.
Jul 21 2021, 9:22 PM · Transactions
epriestley closed D21696: Add a side nav to Conduit API method console pages.
Jul 21 2021, 9:19 PM
epriestley closed D21699: Rename "HarbormasterRestartException" to "HarbormasterMessageException".
Jul 21 2021, 9:18 PM
epriestley closed D21695: Add stub "harbormaster.build.edit" and "harbormaster.buildable.edit" API methods.
Jul 21 2021, 9:18 PM
epriestley committed rP3df1e175273f: Add a side nav to Conduit API method console pages (authored by epriestley).
Add a side nav to Conduit API method console pages
Jul 21 2021, 9:18 PM
epriestley closed D21698: Allow "harbormaster.sendmessage" to send control command (pause, restart, abort, resume) to Builds/Buildables.
Jul 21 2021, 9:18 PM
epriestley committed rP2ff1d4b3b007: Add stub "harbormaster.build.edit" and "harbormaster.buildable.edit" API methods (authored by epriestley).
Add stub "harbormaster.build.edit" and "harbormaster.buildable.edit" API methods
Jul 21 2021, 9:18 PM
epriestley committed rP4cffaa600bec: Rename "HarbormasterRestartException" to "HarbormasterMessageException" (authored by epriestley).
Rename "HarbormasterRestartException" to "HarbormasterMessageException"
Jul 21 2021, 9:18 PM
epriestley committed rP4c4123f98b6d: Allow "harbormaster.sendmessage" to send control command (pause, restart, abort… (authored by epriestley).
Allow "harbormaster.sendmessage" to send control command (pause, restart, abort…
Jul 21 2021, 9:18 PM
epriestley committed rP346ffc51e100: Modularize "HarbormasterBuildableTransaction" (authored by epriestley).
Modularize "HarbormasterBuildableTransaction"
Jul 21 2021, 9:18 PM
epriestley closed D21694: Modularize "HarbormasterBuildableTransaction".
Jul 21 2021, 9:18 PM
epriestley closed D21693: Remove "HarbormasterBuildableTransaction::TYPE_CREATE".
Jul 21 2021, 9:18 PM