Page MenuHomePhabricator

epriestley (Evan Priestley)
OverengineerAdministrator

Projects (73)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Wednesday

  • Clear sailing ahead.

User Details

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

Psyduck is the greatest pokemon of all time.

Recent Activity

Mon, Nov 22

epriestley closed T13653: After an AWS event, Phacility hosts may come up with swap only partially configured as Resolved.

This appears resolved: the workflow now tests that /proc/meminfo reports an appropriate value for TotalSwap.

Mon, Nov 22, 2:02 PM · Phacility
epriestley committed rARCc23222438b30: (stable) Provide an API for parsing swap information from "/proc/meminfo" (authored by epriestley).
(stable) Provide an API for parsing swap information from "/proc/meminfo"
Mon, Nov 22, 1:45 PM
epriestley closed D21733: Provide an API for parsing swap information from "/proc/meminfo".
Mon, Nov 22, 1:45 PM
epriestley committed rARCc53bb21bbd3e: Provide an API for parsing swap information from "/proc/meminfo" (authored by epriestley).
Provide an API for parsing swap information from "/proc/meminfo"
Mon, Nov 22, 1:45 PM
epriestley added a comment to D21733: Provide an API for parsing swap information from "/proc/meminfo".

This overlaps somewhat with PhutilSystem::getSystemMemoryInformation(), but that mechanism is narrower and also doesn't really work in practice, so it would probably be reasonable to remove it entirely.

Mon, Nov 22, 1:43 PM
epriestley updated the diff for D21733: Provide an API for parsing swap information from "/proc/meminfo".

Satisfy lint by catching and re-throwing Throwable.

Mon, Nov 22, 1:32 PM
epriestley requested review of D21733: Provide an API for parsing swap information from "/proc/meminfo".
Mon, Nov 22, 1:30 PM
epriestley added a revision to T13653: After an AWS event, Phacility hosts may come up with swap only partially configured: D21733: Provide an API for parsing swap information from "/proc/meminfo".
Mon, Nov 22, 1:30 PM · Phacility

Sun, Nov 21

epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

Just for completeness, vault used to be an HAProxy host serving as an SSH load balancer, but this responsibility moved to lb001 once ELBs became able to listen on inbound port 22 and TCP forward, so there is no longer a vault class of machines.

Sun, Nov 21, 3:55 PM · Almanac, Infrastructure, Phacility

Sat, Nov 20

epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

The new provisioning process for repository shards is:

Sat, Nov 20, 9:02 PM · Almanac, Infrastructure, Phacility

Fri, Nov 19

epriestley closed D21732: Allow "PhutilAWSException" to identify "EBS: Not Found" errors.
Fri, Nov 19, 10:55 PM
epriestley committed rARC7cbdf378198b: Allow "PhutilAWSException" to identify "EBS: Not Found" errors (authored by epriestley).
Allow "PhutilAWSException" to identify "EBS: Not Found" errors
Fri, Nov 19, 10:55 PM
epriestley requested review of D21732: Allow "PhutilAWSException" to identify "EBS: Not Found" errors.
Fri, Nov 19, 10:28 PM
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: D21732: Allow "PhutilAWSException" to identify "EBS: Not Found" errors.
Fri, Nov 19, 10:27 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Unknown Object (Differential Revision).
Fri, Nov 19, 10:24 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

Piledriver was built before the FutureGraph stuff settled in T11968; it runs into the same general set of sequencing problems and yield would likely be a good approach.

Fri, Nov 19, 10:22 PM · Almanac, Infrastructure, Phacility
epriestley committed rP8103d361774c: Remove "bin/celerity" dependency on database setup (authored by epriestley).
Remove "bin/celerity" dependency on database setup
Fri, Nov 19, 6:11 PM
epriestley closed D21730: Remove "bin/celerity" dependency on database setup.
Fri, Nov 19, 6:11 PM
epriestley added a comment to D21730: Remove "bin/celerity" dependency on database setup.

See also D19941, which removed a dependency that did previously exist.

Fri, Nov 19, 6:10 PM
epriestley requested review of D21730: Remove "bin/celerity" dependency on database setup.
Fri, Nov 19, 5:58 PM

Thu, Nov 18

epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

I can't figure out how to delete...

Thu, Nov 18, 7:24 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

I got rid of everything I could, and nothing appears to be affected.

Thu, Nov 18, 7:20 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

We have a lot of leftover VPC cruft that I'm going to nuke, notably meta and admin VPCs that (as far as I can tell) have nothing in them, and then a bunch of subnets (meta.private-a, meta.private-b, block-public-222, admin.public-a, admin.public-b, meta.public-a, meta.public-b, block-private-3) and some NGWs etc. I'm like 99% sure this stuff is all leftover from testing years ago and nothing depends on it, but I guess we'll see what happens when I delete all of it.

Thu, Nov 18, 6:55 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

Here's the last known state of the world from T12816:

Thu, Nov 18, 6:49 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Unknown Object (Differential Revision).
Thu, Nov 18, 6:26 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Unknown Object (Differential Revision).
Thu, Nov 18, 6:21 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Unknown Object (Differential Revision).
Thu, Nov 18, 5:15 PM · Almanac, Infrastructure, Phacility

Wed, Nov 17

epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

See also NAT carryover from T12816, via T13542.

Wed, Nov 17, 8:02 PM · Almanac, Infrastructure, Phacility
epriestley closed T13542: Rebalance Phacility instances into a private subnet as Resolved.

Closing this in favor of T13630, which covers the same ground.

Wed, Nov 17, 8:02 PM · Phacility

Tue, Nov 16

epriestley closed D21726: Provide missing "AlmanacInterfaceTransactionQuery".
Tue, Nov 16, 7:48 PM
epriestley committed rPc7b04170fedc: Provide missing "AlmanacInterfaceTransactionQuery" (authored by epriestley).
Provide missing "AlmanacInterfaceTransactionQuery"
Tue, Nov 16, 7:48 PM
epriestley requested review of D21726: Provide missing "AlmanacInterfaceTransactionQuery".
Tue, Nov 16, 7:47 PM

Mon, Nov 15

epriestley added a comment to T13654: Wind Down Phacility Operations.

I'm planning to simply delete the Discourse forum without preserving any content.

Mon, Nov 15, 4:22 PM · Phacility

Oct 21 2021

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.

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

Oct 19 2021

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.
Oct 19 2021, 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".

Oct 19 2021, 6:18 PM · Differential

Oct 1 2021

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:

Oct 1 2021, 9:49 PM

Sep 28 2021

epriestley added a comment to T13588: PHP 8 Compatibility.

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

Sep 28 2021, 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:

Sep 28 2021, 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