Page MenuHomePhabricator

InfrastructureInfrastructure
ActivePublic

Watchers

  • This project does not have any watchers.
  • View All

Recent Activity

May 30 2023

cspeckmim added a revision to T13588: PHP 8 Compatibility: D21864: Addressing some PHP8 incompatibilities - Diffusion & Differential.
May 30 2023, 3:35 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21865: Updates for PHP 8.2 compatibility - Arcanist.
May 30 2023, 3:35 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21866: Addressing some PHP 8 incompatibilities - Remarkup.
May 30 2023, 3:35 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21868: Addressing some PHP8 incompatibilities - Misc. Applications.
May 30 2023, 3:35 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21872: Addressing PHP8 incompatibilities - Conduit.
May 30 2023, 3:34 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21871: Addressing some PHP8 incompatibilities - Dashboard.
May 30 2023, 3:34 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21869: Addressing PHP8 incompatibilities - Miscellaneous.
May 30 2023, 3:34 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21870: Address some PHP8 incompatibilities - Arcanist.
May 30 2023, 3:34 PM · Infrastructure

May 24 2023

cspeckmim added a revision to T13588: PHP 8 Compatibility: D21863: Addressing some PHP8 incompatibilities - ProfileMenuItem.
May 24 2023, 9:07 PM · Infrastructure
cspeckmim added a revision to T13588: PHP 8 Compatibility: D21862: Addressing some PHP 8 incompatibilities.
May 24 2023, 9:06 PM · Infrastructure

Apr 30 2023

epriestley added a comment to T13588: PHP 8 Compatibility.

I think the string typehint isn't supported until recent-ish PHP, so its availability will depend on your minimum supported version.

Apr 30 2023, 3:41 AM · Infrastructure

Apr 29 2023

cspeckmim added a comment to T13588: PHP 8 Compatibility.

As an example, given this code

private $name;
Apr 29 2023, 8:33 PM · Infrastructure
cspeckmim added a comment to T12071: Require "E" be defined in variables_order so $_ENV is correctly populated.

I was ready to suggest that after further investigation was made, recalling the "recent" refactor work of the mercurial command-with-extensions changes we looked at 😄

Apr 29 2023, 7:46 PM · Infrastructure
epriestley added a comment to T12071: Require "E" be defined in variables_order so $_ENV is correctly populated.

For https://we.phorge.it/T15281, consider modifying DiffusionGitCommandEngine->newFormattedCommand() to pass explicit configuration to Git (as we do in Mercurial) rather than requiring administrators correctly configure Git via .gitconfig via $HOME.

Apr 29 2023, 7:39 PM · Infrastructure
cspeckmim added a comment to T13588: PHP 8 Compatibility.

Gotcha. I'm going to take a swing at updating past 8.0 and see what crops up. Also thanks for the tip with PHPAST. I haven't looked too much into it other than trying to get it working on Windows a year or so back

Apr 29 2023, 4:49 PM · Infrastructure
epriestley added a comment to T12071: Require "E" be defined in variables_order so $_ENV is correctly populated.

With the caveat that I mostly dig holes in the dirt now and no longer remember how computers work:

Apr 29 2023, 2:45 PM · Infrastructure
cspeckmim added a comment to T12071: Require "E" be defined in variables_order so $_ENV is correctly populated.

Would this be reasonable to address with a new server-side setup check, similar to the checks for post_max_size and op_cache values?

Apr 29 2023, 2:04 PM · Infrastructure

Apr 26 2023

epriestley added a comment to T13588: PHP 8 Compatibility.

I favor dealing with them on a case-by-case basis since they don't seem especially pervasive and I think in most of the cases where I've fixed the issue, the fix I chose wasn't just to swap the call. I think these strlen() errors are often a correct/useful symptom of undesirable slop in type handling.

Apr 26 2023, 7:29 PM · Infrastructure
cspeckmim added a comment to T13588: PHP 8 Compatibility.

PHP 8.1 disallows strlen(null).
...
Broadly, Phabricator likely will not pass the empty string as a constraint in these cases...
...
D21762 introduces phutil_nonempty_string(), which is like this test but slightly stricter (it raises an exception for wonky values) and easier to revisit later (i.e., use of this function is a hint that the code can be made more strict about value types).
...
Upshot:

  • if (strlen($maybe_null)) may be replaced in all cases with if (phutil_nonempty_string($maybe_null)) to work in PHP 8.1 and not break any code which wasn't already extremely suspicious (...stringlike() may be required if the value may be an object, usually a URI object).
  • This is usually not the most desirable replacement, but probably 95% of these aren't realistically worth being surgical about.
  • In new code, prefer increasing type strictness over these more-flexible tests.
Apr 26 2023, 7:05 PM · Infrastructure

Apr 25 2023

cspeckmim added a revision to T13588: PHP 8 Compatibility: D21860: Update Figlet implementation to be PHP8 compatible.
Apr 25 2023, 2:53 PM · Infrastructure

Feb 4 2023

epriestley added a revision to T13588: PHP 8 Compatibility: D21857: Remove call to PHP "utf8_decode()" in "phutil_utf8_strlen()".
Feb 4 2023, 1:50 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21856: Correct a PHP8 compatibility issue when running "arc diff" with no active branch.
Feb 4 2023, 1:03 PM · Infrastructure

Oct 26 2022

epriestley triaged T13687: Consider implementing "JsonSerializable" in Phobject to forbid serialization as Wishlist priority.
Oct 26 2022, 7:56 PM · Infrastructure

Jun 7 2022

vm added a revision to T13588: PHP 8 Compatibility: D21853: Fix more PHP 8.1 "strlen(null)" callsites.
Jun 7 2022, 7:48 PM · Infrastructure

Jun 3 2022

epriestley added a revision to T13588: PHP 8 Compatibility: D21852: Fix repository URI generation for SVN commit identifiers represented with integer types.
Jun 3 2022, 10:00 PM · Infrastructure

May 19 2022

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

May 17 2022

cspeckmim added a comment to T13588: PHP 8 Compatibility.

Thank you!

May 17 2022, 11:28 PM · Infrastructure
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: D21825: Fix a PHP 8.1 repository marker issue in Mercurial.
May 17 2022, 11:18 PM · Infrastructure
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

May 12 2022

epriestley added a revision to T13588: PHP 8 Compatibility: D21822: Straggling fixes for PhutilURI under PHP 8.1.
May 12 2022, 10:38 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21821: Fix some test suite stragglers with PHP 8.1 compatibility.
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 3 2022

epriestley added a revision to T13588: PHP 8 Compatibility: D21798: Fix more PHP 8.1 "strlen(null)" callsites in PhutilURI.
May 3 2022, 7:00 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21795: Fix various "strlen(null)" PHP 8.1 issues on "bin/phd" and "bin/drydock" pathways.
May 3 2022, 6:10 PM · Infrastructure

Apr 25 2022

epriestley added a revision to T13588: PHP 8 Compatibility: D21775: Fix a PHP 8.1 string strictness issue in repositories.
Apr 25 2022, 7:28 PM · Infrastructure

Apr 20 2022

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 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 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
epriestley added a comment to T13640: Improve sequencing of Futures in "--trace" output.

See also T13646: some very early service calls during initialization currently occur before --trace becomes active. These calls should be visible, possibly by buffering them and then dumping the buffer once --trace comes online.

Apr 20 2022, 6:36 PM · Infrastructure
epriestley added a comment to T13588: PHP 8 Compatibility.

PHP 8.1 disallows strlen(null).

Apr 20 2022, 6:01 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21762: Introduce PHP8.1 replacement functions for string tests which may take multiple types.
Apr 20 2022, 5:45 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21761: Fix an issue where Herald may fail to extract content from an empty commit.
Apr 20 2022, 4:53 PM · Infrastructure

Apr 19 2022

epriestley added a revision to T13588: PHP 8 Compatibility: D21758: Fix a PHP 8.1 issue with "phutil_console_strlen()".
Apr 19 2022, 9:55 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21757: Improve some PHP 8.1 behavior in "bin/auth recover".
Apr 19 2022, 9:48 PM · Infrastructure

Apr 13 2022

epriestley added a comment to T11908: Support an "overlay" database connection mode where multiple applications share a single connection.

With max_connections at 1024, the server above still looks fine after ~14 days:

Apr 13 2022, 7:43 PM · Infrastructure

Apr 1 2022

epriestley added a comment to T11908: Support an "overlay" database connection mode where multiple applications share a single connection.

Elsewhere, I compacted Phacility free instances onto a small number of database servers. I attempted to "fill up" these servers, and succeeded, sort of, but maybe too much -- they eventually fall over and need to be rebooted.

Apr 1 2022, 8:35 PM · Infrastructure