Page MenuHomePhabricator
Feed Advanced Search

May 3 2022

epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 10:54 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

To create resource pressure, I'm now going to try this -- I guess I don't really need the --count flag, but it does make the terminal juggling slightly easier:

May 3 2022, 10:51 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

The blueprint thing was on the way toward creating allocation pressure, so D21802 allows you to select a blueprint (or a set of possible blueprints) with --blueprint. You can specify an ID or PHID:

May 3 2022, 10:07 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 10:03 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 9:28 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 9:10 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 9:09 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

That patch is reasonable, and shouldn't break anything as long as the list you provide is a subset of the possible list.

May 3 2022, 8:41 PM · Drydock
epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
May 3 2022, 7:00 PM · Infrastructure
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 7:00 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 6:57 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

After D21796:

May 3 2022, 6:54 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

(one orthogonal bug I found is that bin/drydock lease discards any blueprints provided in an attributes JSON)

May 3 2022, 6:46 PM · Drydock
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 6:36 PM · Drydock
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

Grab a test lease on the host with:

May 3 2022, 6:31 PM · Drydock
epriestley closed T12103: No active Drydock blueprint exists which can ever allocate a resource for lease, when there is one available as Resolved.

Harbormaster needs a "Working Copy" blueprint, not just a "Host" blueprint.

May 3 2022, 6:18 PM · Bug Report
epriestley added a revision to T13676: Drydock may reclaim recently-used resources: Unknown Object (Differential Revision).
May 3 2022, 6:10 PM · Drydock
epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
May 3 2022, 6:10 PM · Infrastructure
epriestley added a comment to T13676: Drydock may reclaim recently-used resources.

Here's a fairly simple way to reproduce this:

May 3 2022, 5:55 PM · Drydock
epriestley triaged T13676: Drydock may reclaim recently-used resources as Normal priority.
May 3 2022, 5:35 PM · Drydock

May 2 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

How do modern servers written in C/C++ handle parallelizing requests?

May 2 2022, 11:06 PM · Arcanist
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

Just for my own notes:

May 2 2022, 8:14 PM · Arcanist

Apr 29 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

What are the practical limits of multi-system or multi-architecture binaries?

Apr 29 2022, 8:32 PM · Arcanist
mormegil awarded T13675: Can Arcanist plausibly be compiled into a binary? a Love token.
Apr 29 2022, 8:26 AM · Arcanist

Apr 28 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

I generated D21794 with a native binary that has no dependency on system PHP (but does depend on system cURL).

Apr 28 2022, 10:41 PM · Arcanist
epriestley added a revision to T13675: Can Arcanist plausibly be compiled into a binary?: Unknown Object (Differential Revision).
Apr 28 2022, 10:25 PM · Arcanist
epriestley added a revision to T13556: Setting "phd.trace" may cause TTY testing with "posix_isatty()" against closed pipes: Unknown Object (Differential Revision).
Apr 28 2022, 10:25 PM · Daemons
epriestley added a comment to T13556: Setting "phd.trace" may cause TTY testing with "posix_isatty()" against closed pipes.

Another open question is: before we call posix_isatty(STDOUT), how do we test whether STDOUT is a valid handle?

Apr 28 2022, 10:23 PM · Daemons
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.
  1. PHP doesn't link cURL statically and doesn't appear (?) to provide any easy way to link it statically.
      • Possible solution: build static cURL.
      • Possible solution: link cURL dynamically.
      • Possible solution: replace cURL with mbedTLS + a first-party HTTP client, since we don't care about 99% of what cURL does. Or implement first-party TLS hahaha except I'm half-serious? If HTTP/HTTPS is going to happen from an embedded context on my coffee maker I need a healthy embeddable TLS + HTTP stack anyway.
    1. The STDERR and STDOUT constants are defined by the CLI SAPI, and not present in the embed SAPI.
      • Possible solution: define them in the C wrapper.
      • Possible solution: polyfill them at startup in PHP (I'm not entirely sure this is possible).
      • Possible solution: abstract around them and use php://stderr and php://stdout instead. See also T13556. This is likely desirable anyway.
    2. When arc tries to load PHP code, it needs to read data out of the executable binary in some set of conditions (e.g., "if we miss on disk").
      • Possible solution: hook zend_compile_file(), which seems to be the expected way to approach this. The flow in phar_compile_file() seems similar.
    3. To run unit tests, arc depends on the presence of a php binary on the system.
      • Possible solution: accept that you must also have PHP to run arc's tests (and that system PHP may differ from arc php).
      • Possible solution: also include the PHP CLI wrapper and invoke it when arc is executed as php, providing what is essentially a fallback toolset.
      • Possible solution: provide a "unit test helper" fallback toolset.
      • Possible solution: rewrite the 5 trivial cases where we need this (support/unit/*) in shell script (but: the reason to do these in PHP in the first place was so that they're portable to Windows).
Apr 28 2022, 9:44 PM · Arcanist

Apr 27 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

Can we build a single binary with a bunch of data in it (e.g., a picture of a cat) without breaking anything?

Apr 27 2022, 4:51 PM · Arcanist

Apr 26 2022

cburroughs awarded T13675: Can Arcanist plausibly be compiled into a binary? a Y So Serious token.
Apr 26 2022, 12:50 AM · Arcanist

Apr 25 2022

epriestley closed T5619: Duplicate entry 'PHID-PHRF-n6jez7lb5eyyll77k7re-338' for key 'key_version'' in Phragment as Wontfix.

See T5479.

Apr 25 2022, 11:50 PM · Phragment
epriestley closed T4684: Asynchronously calculate or pre-calculate patches for Phragment files as Wontfix.

See T5479.

Apr 25 2022, 11:50 PM · Phragment
epriestley closed T5065: Allow Phragment to serve up repositories in e.g. NuGet and Maven formats, a subtask of T5479: Unbeta Phragment, as Wontfix.
Apr 25 2022, 11:50 PM · Phragment
epriestley closed T5065: Allow Phragment to serve up repositories in e.g. NuGet and Maven formats as Wontfix.

See T5479.

Apr 25 2022, 11:50 PM · Phragment
epriestley closed T5479: Unbeta Phragment as Resolved.

I removed Phragment in D21793.

Apr 25 2022, 11:50 PM · Phragment
epriestley added a comment to T13658: How to rebrand Phabricator.

My initial linter implementation didn't actually catch all of these so there were a few more than I expected, but I think I got essentially all of them.

Apr 25 2022, 11:48 PM
epriestley added a revision to T5479: Unbeta Phragment: Unknown Object (Differential Revision).
Apr 25 2022, 11:45 PM · Phragment
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:45 PM
epriestley added a revision to T9530: Release Server / Workflow app / Future of Releeph : Unknown Object (Differential Revision).
Apr 25 2022, 11:40 PM · Restricted Project, Harbormaster
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:40 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:30 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:26 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:24 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:19 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:16 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:12 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:08 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 11:05 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:50 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:44 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:39 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:34 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:28 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:21 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 9:14 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 8:04 PM
epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
Apr 25 2022, 7:28 PM · Infrastructure
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 7:19 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 7:16 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 7:09 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 7:03 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 6:37 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 6:24 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 6:19 PM
epriestley added a comment to T13658: How to rebrand Phabricator.

Some general guidelines I'm following here:

Apr 25 2022, 5:56 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 5:46 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 5:30 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 5:18 PM
epriestley added a comment to T13658: How to rebrand Phabricator.

I don't want to get embroiled in this too much, but:

Apr 25 2022, 5:04 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 4:44 PM
epriestley added a revision to T13658: How to rebrand Phabricator: Unknown Object (Differential Revision).
Apr 25 2022, 4:41 PM

Apr 23 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

Is the purpose of implementing introspection of libraries to allow for building native components that would get picked up and auto-loaded by arcanist?

Apr 23 2022, 10:08 PM · Arcanist

Apr 22 2022

cspeckmim awarded T13675: Can Arcanist plausibly be compiled into a binary? a Manufacturing Defect? token.
Apr 22 2022, 2:08 AM · Arcanist

Apr 21 2022

epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

How can PHP be built statically? How hard is this?

Apr 21 2022, 11:01 PM · Arcanist
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.
$ cat random.c
int get_random_number() {
  return 5;
}
$ gcc -c -o random.o random.c
$ gcc -shared -o random.so random.o
Apr 21 2022, 10:23 PM · Arcanist
epriestley triaged T13675: Can Arcanist plausibly be compiled into a binary? as Normal priority.
Apr 21 2022, 8:24 PM · Arcanist

Apr 20 2022

epriestley lowered the priority of T11132: New Phabricator NUX from High to Wishlist.
Apr 20 2022, 10:43 PM · Design, Phacility, NUX
epriestley lowered the priority of T11456: Don't lose user in NUX flow because of Timezone issues from High to Wishlist.
Apr 20 2022, 10:43 PM · Design, Phacility, NUX
epriestley closed T10847: 30GB Phacility instance caused a series of cascading failures which left web services unreachable as Resolved.

There's nothing particularly useful or actionable here now, so closing it out. (I believe this was the most severe incident Phacility ever experienced while actively maintained.)

Apr 20 2022, 10:43 PM · Ops, Phacility
epriestley closed T12610: Audit behavior of LB healthchecks against *.phacility.com and secure.phabricator.com as Wontfix.

This hasn't caused any more problems in like 4 years, so I guess it's kind of whatever.

Apr 20 2022, 10:30 PM · Ops, Phacility
epriestley closed T12674: Update developer docs to include rCORGI setup as Wontfix.

This is moot given the Phacility wind-down.

Apr 20 2022, 10:26 PM
epriestley closed T12727: Mail handler unable to parse e-mail from MS Outlook 12, Failed to JSON encode value as Wontfix.

This is almost certainly "PhabricatorMetaMTAReceivedMail incorrectly assumes email is valid UTF8", and the solution begins by making all the associated storage binary, but it's hard to imagine that ever happening now.

Apr 20 2022, 10:25 PM · Bug Report
epriestley closed T12886: Cannot upload file from Firefox (Android) as Wontfix.

Difficult to imagine this ever getting fixed in the upstream since I don't have any Android devices.

Apr 20 2022, 10:21 PM · Android, Firefox, Bug Report
epriestley closed T12984: Support issues don't have hovercards as Wontfix.

This only impacts the "Support" application in Phacility and it's hard to imagine building a Doorkeeper bridge for it now.

Apr 20 2022, 10:18 PM · Support
epriestley closed T13402: Owner audit flag got flipped in update? as Wontfix.

Discourse got nuked, so just throwing this away until another report somehow surfaces.

Apr 20 2022, 10:14 PM · Audit
epriestley closed T13493: JIRA API has changed identifiers from "key" to "accountId" as Resolved.

This hasn't cropped up again and is presumably resolved.

Apr 20 2022, 9:18 PM · Auth
epriestley closed T13537: Support local port forwarding through Phacility cluster bastion hosts as Wontfix.

This isn't really resolved, but almost certainly does not make sense to pursue given the Phacility wind-down.

Apr 20 2022, 9:09 PM · Phacility
epriestley closed T13555: In "ExecFuture", "proc_get_status()" may be passed NULL, possibly leading to a daemon stall as Resolved.

I believe the above changes resolved this, and it hasn't cropped up again.

Apr 20 2022, 9:03 PM · Daemons
epriestley closed T13586: In Herald transcripts, surface exceptions encountered while evaluating fields as Resolved.

I believe the above changes covered everything, and there hasn't been any more action on the motivating customer issues, although this isn't terribly meaningful.

Apr 20 2022, 8:47 PM · Herald
epriestley closed T13572: Daemon overseers may have a slow memory leak, possibly in FuturePool as Resolved.

I believe D21466 resolved this, since it hasn't cropped up again even though daemon runtimes between restarts have been very long at various periods in the last year.

Apr 20 2022, 7:22 PM · Daemons
epriestley closed T13573: When printing, render dates in an absolute, context-free format as Resolved.

It's likely that D21451 didn't catch exhaustively all of these, but the motivating use case is now moot. If further need arises somehow, this strategy can be applied to those cases.

Apr 20 2022, 7:18 PM · Infrastructure
epriestley closed T13583: Support reasonable guardrails against mismatched data retention policies in comment content as Resolved.

This is resolved and/or mooted.

Apr 20 2022, 7:16 PM · Herald
epriestley closed T13589: Git may interpret refnames as flags in some commands which accept both refs and paths as Resolved.

I believe these were all hunted down.

Apr 20 2022, 7:15 PM · Security, Git
epriestley closed T13623: Notifications may fail to paginate with GROUP BY error as Resolved.

I think this was resolved. I nuked Discourse anyway so it's effectively resolved until another report shows up.

Apr 20 2022, 7:11 PM · Restricted Project, Notifications
epriestley closed T13630: Move Phacility provisioning to Piledriver as Resolved.

Almost every host currently in production was provisioned with Piledriver and things have been stable for quite a while, so I'm calling this resolved. See elsewhere for issues with Ubuntu20, mail, etc.

Apr 20 2022, 7:10 PM · Almanac, Infrastructure, Phacility
epriestley closed T13638: Investigate "AllowEncodedSlashes" Apache setting as Resolved.

I made this change and deployed it to secure, and this "critical security vulnerability" is now a proper Phabricator 404 page:

Apr 20 2022, 7:05 PM · Setup
epriestley closed T13641: Support "Disabled" devices in Almanac as Resolved.

Calling this resolved, since it has been in production in the Phacility cluster for some time and worked correctly through relevant hardware changes.

Apr 20 2022, 6:39 PM · Almanac
epriestley closed T13641: Support "Disabled" devices in Almanac, a subtask of T13630: Move Phacility provisioning to Piledriver, as Resolved.
Apr 20 2022, 6:39 PM · Almanac, Infrastructure, Phacility
epriestley closed T13646: Add "E" to "variables_order" in Phacility environments as Resolved.

Moved the rest of this to T13640.

Apr 20 2022, 6:36 PM · Phacility, Infrastructure