Page MenuHomePhabricator

InfrastructureInfrastructure
ActivePublic

Watchers

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

Recent Activity

Tue, May 17

cspeckmim added a comment to T13588: PHP 8 Compatibility.

Thank you!

Tue, May 17, 11:28 PM · Infrastructure
epriestley added a comment to T13588: PHP 8 Compatibility.

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

Tue, May 17, 11:20 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21825: Fix a PHP 8.1 repository marker issue in Mercurial.
Tue, May 17, 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
Tue, May 17, 9:01 PM · Infrastructure

Mon, May 16

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

Thu, May 12

epriestley added a revision to T13588: PHP 8 Compatibility: D21822: Straggling fixes for PhutilURI under PHP 8.1.
Thu, May 12, 10:38 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21821: Fix some test suite stragglers with PHP 8.1 compatibility.
Thu, May 12, 10:37 PM · Infrastructure

Tue, May 10

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:

Tue, May 10, 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]
Tue, May 10, 3:58 AM · Infrastructure

Tue, May 3

epriestley added a revision to T13588: PHP 8 Compatibility: D21798: Fix more PHP 8.1 "strlen(null)" callsites in PhutilURI.
Tue, May 3, 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.
Tue, May 3, 6:10 PM · Infrastructure

Mon, Apr 25

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

Wed, Apr 20

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.

Wed, Apr 20, 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.

Wed, Apr 20, 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.
Wed, Apr 20, 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.

Wed, Apr 20, 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.

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

PHP 8.1 disallows strlen(null).

Wed, Apr 20, 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.
Wed, Apr 20, 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.
Wed, Apr 20, 4:53 PM · Infrastructure

Tue, Apr 19

epriestley added a revision to T13588: PHP 8 Compatibility: D21758: Fix a PHP 8.1 issue with "phutil_console_strlen()".
Tue, Apr 19, 9:55 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21757: Improve some PHP 8.1 behavior in "bin/auth recover".
Tue, Apr 19, 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
epriestley added a revision to T13588: PHP 8 Compatibility: D21752: Fix a PHP 8.1 unit test failure in Projects.
Apr 1 2022, 7:08 PM · Infrastructure
epriestley added a revision to T6203: Adjust nullability of various questionable columns: D21748: Make Phame blog policies non-nullable.
Apr 1 2022, 6:43 PM · Infrastructure

Dec 16 2021

epriestley added a revision to T13588: PHP 8 Compatibility: D21744: Fix a PHP 8.1 strlen() issue with "mysql.pass" configuration.
Dec 16 2021, 11:07 PM · Infrastructure
epriestley added a comment to T13588: PHP 8 Compatibility.

PHP 8.1 changed semantics of static variables in methods. See:

Dec 16 2021, 10:42 PM · Infrastructure
epriestley added a comment to T13492: Upgrade Support Infrastructure to Minimum PHP Version 5.5.

See also T13588. Using static::class to work around changes to the scope of static in PHP 8.1 is also possible now that PHP 5.5 is the minimum version, and some uses of get_class($this) might be replaceable. There's no strong motivator for this, it's just a little cleaner.

Dec 16 2021, 10:40 PM · Infrastructure

Dec 11 2021

epriestley added a revision to T13588: PHP 8 Compatibility: D21743: Fix a PHP 8.1 issue in lint rendering.
Dec 11 2021, 7:17 PM · Infrastructure
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

I put all the database migration stuff everywhere and it appears stable. I'm hooking up Postmark as an outbound pathway now. If I get that working, I'll let it sit for a while and start migrating databases.

Dec 11 2021, 5:43 PM · Almanac, Infrastructure, Phacility

Dec 10 2021

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

Finally, there are other some MySQL version issues which can be avoided with:

Dec 10 2021, 6:22 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13588: PHP 8 Compatibility: D21742: Provide additional Arcanist PHP 8.1 fixes.
Dec 10 2021, 12:21 AM · Infrastructure

Dec 9 2021

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

The new core/ support for the API is partially deployed; the new services/ support isn't anywhere yet.

Dec 9 2021, 11:13 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13588: PHP 8 Compatibility: D21741: Add a lint rule forbidding use of "each()".
Dec 9 2021, 9:55 PM · Infrastructure
epriestley added a comment to T13588: PHP 8 Compatibility.

See also T13232. Here's a possible build strategy for PHP 8.1 under macOS Mojave. Anyone reasonable should probably give up and use brew instead.

Dec 9 2021, 8:46 PM · Infrastructure
epriestley added a revision to T13588: PHP 8 Compatibility: D21740: Correct some Arcanist behaviors under PHP8.1.
Dec 9 2021, 8:46 PM · Infrastructure

Dec 4 2021

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

The latest version of Phabricator itself is everywhere.

Dec 4 2021, 11:46 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

I'm going to hold it until the weekend and try deploying then if things look calm on my end.

Dec 4 2021, 9:23 PM · Almanac, Infrastructure, Phacility

Dec 1 2021

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

While waiting to deploy db stuff, I was planning to look at pruning dead data out of S3 -- but, on closer examination, the total S3 bill is something like $1/day, so no priority on that whatsoever.

Dec 1 2021, 11:57 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

Piledriver also needs to be able to provision database hosts, but these are more-or-less a trivial subset of repository hosts.

Dec 1 2021, 11:47 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.
  • Make InstancesStateQuery use a dictionary when building the database ref information internally.
Dec 1 2021, 11:06 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Restricted Differential Revision.
Dec 1 2021, 11:03 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Restricted Differential Revision.
Dec 1 2021, 10:44 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Restricted Differential Revision.
Dec 1 2021, 9:34 PM · Almanac, Infrastructure, Phacility
epriestley added a revision to T13630: Move Phacility provisioning to Piledriver: Restricted Differential Revision.
Dec 1 2021, 9:25 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

Piledriver also needs to be able to provision database hosts, but these are more-or-less a trivial subset of repository hosts.

Dec 1 2021, 8:44 PM · Almanac, Infrastructure, Phacility
epriestley added a comment to T13630: Move Phacility provisioning to Piledriver.

I completed all the repository migrations over the weekend and seemingly haven't run into any issues.

Dec 1 2021, 8:41 PM · Almanac, Infrastructure, Phacility

Nov 21 2021

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.

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

Nov 20 2021

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

The new provisioning process for repository shards is:

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