Page MenuHomePhabricator
Feed All Stories

May 26 2022

epriestley added a revision to T13065: Move storage for `mailKey` to the Mail application: Restricted Differential Revision.
May 26 2022, 12:10 AM · Mail
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 26 2022, 12:00 AM · Remarkup

May 25 2022

epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 25 2022, 7:53 PM · Remarkup
epriestley added a comment to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default".

"PhabricatorApplicationTransactionCommentView->setDraft()" has exactly two callers: one in Slowvote...

May 25 2022, 5:33 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 25 2022, 5:18 PM · Remarkup
Undedist updated Undedist.
May 25 2022, 8:08 AM

May 24 2022

epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 24 2022, 5:08 PM · Remarkup
epriestley updated the task description for T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default".
May 24 2022, 4:56 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 24 2022, 1:12 AM · Remarkup

May 23 2022

epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 23 2022, 6:13 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 23 2022, 5:24 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 23 2022, 4:24 PM · Remarkup

May 20 2022

epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 20 2022, 6:23 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 20 2022, 5:48 PM · Remarkup
epriestley updated the task description for T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default".
May 20 2022, 5:24 PM · Remarkup
epriestley added a revision to T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default": Unknown Object (Differential Revision).
May 20 2022, 5:12 PM · Remarkup

May 19 2022

epriestley triaged T13682: Improve Remarkup file reference attachment behaviors after removal of "attach by default" as Normal priority.
May 19 2022, 8:08 PM · Remarkup
epriestley closed T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception, a subtask of T13588: PHP 8 Compatibility, as Resolved.
May 19 2022, 5:33 PM · Infrastructure
epriestley closed T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception as Resolved.

Resolved by D21824.

May 19 2022, 5:33 PM · Conpherence

May 17 2022

epriestley closed T13681: Ancient "feed.publish" API is (at best) long obsolete, and arguably exploitable as Resolved.
May 17 2022, 11:31 PM · Security, Feed
epriestley added a revision to T13681: Ancient "feed.publish" API is (at best) long obsolete, and arguably exploitable: Unknown Object (Differential Revision).
May 17 2022, 11:29 PM · Security, Feed
cspeckmim added a comment to T13588: PHP 8 Compatibility.

Thank you!

May 17 2022, 11:28 PM · Infrastructure
epriestley triaged T13681: Ancient "feed.publish" API is (at best) long obsolete, and arguably exploitable as Normal priority.
May 17 2022, 11:27 PM · Security, Feed
epriestley added a comment to T13588: PHP 8 Compatibility.

A user just ran into this exception with Arcanist...

May 17 2022, 11:20 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
May 17 2022, 11:18 PM · Infrastructure
epriestley added a revision to T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception: Unknown Object (Differential Revision).
May 17 2022, 11:08 PM · Conpherence
cspeckmim added a comment to T13588: PHP 8 Compatibility.

A user just ran into this exception with Arcanist (current master changeset) while running arc diff (using Mercurial) with PHP 8.1. I haven't looked too in depth but it seems similar to other PHP 8.1 issues.

[2022-05-17 20:49:47] EXCEPTION: (RuntimeException) substr(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=master, ref.master=3cc486d5c156)
  #0 PhutilErrorHandler::handleError(integer, string, string, integer)
  #1 substr(NULL, integer, integer) called at [<arcanist>/src/repository/api/ArcanistRepositoryAPI.php:807]
  #2 ArcanistRepositoryAPI::getDisplayHash(NULL) called at [<arcanist>/src/repository/marker/ArcanistRepositoryMarkerQuery.php:67]
  #3 ArcanistRepositoryMarkerQuery::execute() called at [<arcanist>/src/repository/query/ArcanistRepositoryQuery.php:20]
  #4 ArcanistRepositoryQuery::executeOne() called at [<arcanist>/src/repository/api/ArcanistMercurialAPI.php:988]
  #5 ArcanistMercurialAPI::getActiveBookmark() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:2253]
  #6 ArcanistDiffWorkflow::buildDiffSpecification() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:380]
  #7 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:427]
<<< [1] (+8,567) <exec> 8,567,426 us
May 17 2022, 9:01 PM · Infrastructure

May 16 2022

epriestley added a subtask for T13588: PHP 8 Compatibility: T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception.
May 16 2022, 8:50 PM · Infrastructure
epriestley added a parent task for T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception: T13588: PHP 8 Compatibility.
May 16 2022, 8:50 PM · Conpherence
epriestley triaged T13680: Pagination in Conpherence may pass an int to `phutil_nonempty_string()`, throwing an exception as Low priority.
May 16 2022, 8:50 PM · Conpherence

May 12 2022

epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
May 12 2022, 10:38 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: Unknown Object (Differential Revision).
May 12 2022, 10:37 PM · Infrastructure

May 10 2022

epriestley added a comment to T13588: PHP 8 Compatibility.

I am pretty sure that this error message does not exist prior to PHP 8.1, and PHP 7.4 can not possibly emit it. See here for some evidence that this is true -- note that the error message is not present in the script output until PHP 8.1:

May 10 2022, 12:18 PM · Infrastructure
bleketux added a comment to T13588: PHP 8 Compatibility.

Trying to fresh install using PHP 7.4 or PHP 8.1, have the same result when executing:

  • ./bin/config set phd.user root
[2022-05-10 02:01:12] EXCEPTION: (RuntimeException) strlen(): Passing null to parameter #1 ($string) of type string is deprecated at [<arcanist>/src/error/PhutilErrorHandler.php:261]
arcanist(head=master, ref.master=fc5b228db537), phabricator(head=master, ref.master=698ada2470b1)
  #0 PhutilErrorHandler::handleError(integer, string, string, integer) called at [<phabricator>/src/infrastructure/env/PhabricatorEnv.php:128]
  #1 PhabricatorEnv::initializeCommonEnvironment(boolean) called at [<phabricator>/src/infrastructure/env/PhabricatorEnv.php:75]
  #2 PhabricatorEnv::initializeScriptEnvironment(boolean) called at [<phabricator>/scripts/init/lib.php:26]
  #3 init_phabricator_script(array) called at [<phabricator>/scripts/init/init-setup.php:11]
  #4 require_once(string) called at [<phabricator>/scripts/setup/manage_config.php:5]
May 10 2022, 3:58 AM · Infrastructure

May 9 2022

epriestley closed T13677: Drydock may grow resource pools too cautiously as Resolved.

There may be additional work here, but presuming this is more or less resolved until evidence to the contrary arises.

May 9 2022, 10:21 PM · Drydock
epriestley closed T13679: Non-administrators can incorrectly edit default global settings as Resolved.

I believe D21811 covers this completely.

May 9 2022, 10:19 PM · Security
epriestley updated the task description for T13679: Non-administrators can incorrectly edit default global settings.
May 9 2022, 10:18 PM · Security
epriestley added a revision to T13679: Non-administrators can incorrectly edit default global settings: Unknown Object (Differential Revision).
May 9 2022, 10:10 PM · Security
epriestley triaged T13679: Non-administrators can incorrectly edit default global settings as Normal priority.
May 9 2022, 10:08 PM · Security
epriestley closed T13678: Remarkup objects may form rendering cycles when embedded as Resolved.
May 9 2022, 7:02 PM · Remarkup
epriestley added a revision to T13678: Remarkup objects may form rendering cycles when embedded: Unknown Object (Differential Revision).
May 9 2022, 6:20 PM · Remarkup
epriestley triaged T13678: Remarkup objects may form rendering cycles when embedded as Normal priority.
May 9 2022, 6:06 PM · Remarkup
epriestley added a revision to T13677: Drydock may grow resource pools too cautiously: Unknown Object (Differential Revision).
May 9 2022, 5:45 PM · Drydock
epriestley added a revision to T13677: Drydock may grow resource pools too cautiously: Unknown Object (Differential Revision).
May 9 2022, 5:30 PM · Drydock
epriestley added a revision to T13677: Drydock may grow resource pools too cautiously: Unknown Object (Differential Revision).
May 9 2022, 5:24 PM · Drydock
epriestley added a revision to T13677: Drydock may grow resource pools too cautiously: Unknown Object (Differential Revision).
May 9 2022, 5:09 PM · Drydock
mrjoops updated mrjoops.
May 9 2022, 12:49 PM

May 5 2022

epriestley added a comment to T13677: Drydock may grow resource pools too cautiously.

When this mechanism is removed (by commenting out the logic that cares about the 25% limit), we'd expect Drydock to build 8 resources at a time (limited by number of taskmasters). It actually builds ~1-4...

May 5 2022, 11:29 PM · Drydock
epriestley added a revision to T13677: Drydock may grow resource pools too cautiously: Unknown Object (Differential Revision).
May 5 2022, 11:01 PM · Drydock
epriestley added a revision to T13675: Can Arcanist plausibly be compiled into a binary?: Unknown Object (Differential Revision).
May 5 2022, 5:27 PM · Arcanist
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

We may fopen() an additional stdout and/or stderr handle, but do not fclose() it?

May 5 2022, 4:48 PM · Arcanist
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

I am suspicious that D21794 may have broken something subtle with unix magic, since I'm seeing some hangs out of deployment scripts wrapping daemon management scripts. I think the issue is probably one of:

May 5 2022, 2:15 PM · Arcanist

May 4 2022

epriestley added a comment to T13677: Drydock may grow resource pools too cautiously.

The outline above isn't quite sufficient because when the active resource list is nonempty, we don't actually reach the "new allocation" logic. Broadly, executeAllocator() is kind of wonky and needs some additional restructuring to cover both the D19762 case ("allocate up to the resource limit before reusing resources") and the normal set of cases. The proper logic is something like:

May 4 2022, 10:48 PM · Drydock
epriestley added a comment to T13677: Drydock may grow resource pools too cautiously.

This issue partially reproduces (consistent with the original report, not immediately consistent with my theorizing about a root cause in PHI2177 -- actually, looks like both parts are right, see below): Drydock builds ~1 working copy per minute serially until it reaches a pool size of 5 resources. Then, it begins allocating 2 simultaneous resources.

May 4 2022, 10:16 PM · Drydock
epriestley triaged T13677: Drydock may grow resource pools too cautiously as Normal priority.
May 4 2022, 9:37 PM · Drydock
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

What options exist for inter-process communication?

May 4 2022, 6:27 PM · Arcanist
epriestley added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

Here's how I'm thinking about overengineering this:

May 4 2022, 5:17 PM · Arcanist

May 3 2022

epriestley closed T11336: Provide a stable address range for Phacility outbound requests as Resolved.

This was resolved as part of T13630. I didn't actually put it in the UI anywhere, but all requests will now originate from 13.56.71.101, and this isn't likely to change given the wind-down of Phacility hosting.

May 3 2022, 11:29 PM · Customer Impact
epriestley added a project to T10522: Build plan page doesn't warn about unapproved Drydock blueprints: Drydock.
May 3 2022, 11:25 PM · Drydock, Restricted Project, Harbormaster (v3)
epriestley added a comment to T10508: Drydock WorkingCopy blueprints allow selection of invalid "Use Blueprints".

D21801, motivated by T13676, made this more practical.

May 3 2022, 11:19 PM · Drydock (v3)
epriestley added a revision to T10508: Drydock WorkingCopy blueprints allow selection of invalid "Use Blueprints": Unknown Object (Differential Revision).
May 3 2022, 11:18 PM · Drydock (v3)
epriestley closed T11694: Allow clients to generally reason about Drydock leases over the API as Resolved.

This is somewhat resolved and neither next steps or motivation are clear any longer, so I'm going to call it done until evidence to the contrary arises.

May 3 2022, 11:17 PM · Restricted Project, Drydock
epriestley closed T11694: Allow clients to generally reason about Drydock leases over the API, a subtask of T11693: Make drydock command interfaces accessible via SSH workflows, as Resolved.
May 3 2022, 11:17 PM · Restricted Project, Drydock
epriestley closed T13676: Drydock may reclaim recently-used resources as Resolved.

Perhaps a philosophical question here is: do we care about which repositories are checked out in a working copy resource?

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

Before, instant reclaim after lease destruction:

May 3 2022, 10:56 PM · Drydock
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
jmeador added a comment to T13676: Drydock may reclaim recently-used resources.

fill in the details a bit.

May 3 2022, 7:06 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
jmeador 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:42 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

May 1 2022

20after4 awarded T13658: How to rebrand Phabricator a Mountain of Wealth token.
May 1 2022, 10:15 PM
20after4 added a comment to T13675: Can Arcanist plausibly be compiled into a binary?.

FWIW I've found by far the easiest way to work with microcontrollers is using micropython / circuitpython on any of these chips: ESP32, ATSAMD21/ATSAMD51 and RP2040. The esp32 is in many ways the easiest and most practical because it's extremely cheap and includes a wifi radio.

May 1 2022, 9:58 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
mormegil added a comment to T13673: CVE-2022-24765 - Multi-user Git Privilege Escalation.

Just for visibility, this is I believe the change that broke Diffusion (which was fixed in rP52df4ff515b7), where the error message is something like

Apr 29 2022, 8:19 AM · Git, Security

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