Page MenuHomePhabricator
Feed Advanced Search

Oct 10 2017

epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 10 2017, 12:04 AM · Ops, Phacility

Oct 9 2017

epriestley created T13006: Passphrase can't distinguish between correct, mangled, and passphrase-encoded SSH keys.
Oct 9 2017, 7:55 PM · Passphrase
epriestley added a member for Community: 0.
Oct 9 2017, 5:54 PM
20after4 awarded T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table a Baby Tequila token.
Oct 9 2017, 1:10 AM · Ops, Phacility

Oct 7 2017

epriestley added a comment to T13004: [Stable] bin/storage dump fails if there's a password set.

We should probably update the documentation to recommend --output and --compress, since the error behavior (e.g., in the event of a full disk) is better.

Oct 7 2017, 8:26 PM · Bug Report
epriestley closed T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic as Resolved.

This is still ongoing but it isn't impacting us so I don't plan to do anything else here.

Oct 7 2017, 12:14 PM · Ops, Phacility
epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

I've deployed the slightly more formal preamble. It no longer has the remote address logging, but here are the addresses captured up to now (first column: request count; second column: address):

Oct 7 2017, 12:10 PM · Ops, Phacility
epriestley closed T13004: [Stable] bin/storage dump fails if there's a password set as Resolved by committing Restricted Diffusion Commit.
Oct 7 2017, 12:00 PM · Bug Report

Oct 6 2017

epriestley added a comment to T4369: Phabricator HTTP repository hosting has fairly severe scalability limits.

A wrench in the gears here is that disabling enable_post_data_reading also disables $_FILES, which we use in about 20 places with vanilla HTTP <input type="file" /> controls. So on top of initialization order issues with $_POST, we also need to build a multipart/form-data parser that can populate a synthetic $_FILES or some similar construct.

Oct 6 2017, 11:05 PM · Diffusion (v3), Restricted Project
epriestley merged T11546: File Storage setup doc makes a hokey suggestion into T4369: Phabricator HTTP repository hosting has fairly severe scalability limits.
Oct 6 2017, 10:42 PM · Diffusion (v3), Restricted Project
epriestley merged task T11546: File Storage setup doc makes a hokey suggestion into T4369: Phabricator HTTP repository hosting has fairly severe scalability limits.
Oct 6 2017, 10:42 PM · Feature Request, Documentation
epriestley added a comment to T11546: File Storage setup doc makes a hokey suggestion.

I'm going to merge this into T4369, which has some similar discussion and more context.

Oct 6 2017, 10:42 PM · Feature Request, Documentation
epriestley edited the content of Changelog.
Oct 6 2017, 9:30 PM
epriestley created 2017 Week 40 (Early October).
Oct 6 2017, 9:30 PM
epriestley added a comment to T11786: Loop/degenerate behavior in RepositoryGraphCache.

PHI109 captured a slightly more illuminating error. D18692 has some discussion.

Oct 6 2017, 7:09 PM · Performance, Diffusion
epriestley added a revision to T11786: Loop/degenerate behavior in RepositoryGraphCache: Unknown Object (Differential Revision).
Oct 6 2017, 7:08 PM · Performance, Diffusion
epriestley added a comment to T11413: Support renaming Phacility instances.

We now have three of these in Support (PHI63, PHI107, PHI128). I think the pathway forward is something like:

Oct 6 2017, 4:24 PM · Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 6 2017, 2:51 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 6 2017, 2:09 PM · Ops, Phacility
epriestley added a revision to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic: Unknown Object (Differential Revision).
Oct 6 2017, 2:02 PM · Ops, Phacility
epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

This is still ongoing, although we're weathering it without any issues.

Oct 6 2017, 1:54 PM · Ops, Phacility
stevex awarded T11217: Make Tokens modular / real application a Manufacturing Defect? token.
Oct 6 2017, 1:43 PM · Restricted Project, Contributor Onboarding, Celerity, Tokens
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

Yes, use bin/storage dump --no-indexes. See here for more details:

Oct 6 2017, 1:43 PM · Ops, Phacility
kuba-orlik awarded T8783: Unprototype Nuance (v1) a Love token.
Oct 6 2017, 8:25 AM · Nuance, Restricted Project

Oct 5 2017

epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

merely a large number and not an enormous number

Oct 5 2017, 9:33 PM · Ops, Phacility
epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

Handful of these, too:

Oct 5 2017, 9:29 PM · Ops, Phacility
epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

I early 500'd these requests in preamble.php and load seems better now:

Oct 5 2017, 9:24 PM · Ops, Phacility
epriestley added a comment to T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.

There are a very large number of originating IP addresses so I'm going to filter this traffic by path rather than by IP address.

Oct 5 2017, 9:16 PM · Ops, Phacility
epriestley created T13003: `admin.phacility.com` is receiving a huge volume of "leafweb" traffic.
Oct 5 2017, 9:08 PM · Ops, Phacility
epriestley added a comment to T12907: Unable to download large files through alternative file domain.

On the bin/files download side of things, we currently buffer the whole file into a string and then hit this:

Oct 5 2017, 8:41 PM · Bug Report
epriestley added a comment to T12907: Unable to download large files through alternative file domain.

For consistency, I gave the content Cloudfront distribution a 60-second timeout as well.

Oct 5 2017, 8:28 PM · Bug Report
epriestley added a comment to T12907: Unable to download large files through alternative file domain.

Pulling stuff from admin.phacility.com via Cloudfront, I get this instead:

Oct 5 2017, 8:20 PM · Bug Report
epriestley added a comment to T12907: Unable to download large files through alternative file domain.

In the log above, this download should have worked:

Oct 5 2017, 7:43 PM · Bug Report
epriestley removed a member for Phacility High Command: chad.
Oct 5 2017, 5:02 PM
epriestley added a member for Phacility: amckinley.
Oct 5 2017, 5:02 PM
epriestley removed a member for Phacility: chad.
Oct 5 2017, 5:02 PM
epriestley removed a member for Phacility Core Access: chad.
Oct 5 2017, 5:02 PM
epriestley added a comment to T12612: Design (and possibly implement) production rate limiting controls.

In PHI120, we hit an issue where an instance (whose members seem to be located in Asia) performed 1,600 file uploads at roughly 256KB/sec, apparently putting a substantial amount of pressure on workers for ~12 minutes.

Oct 5 2017, 2:48 PM · Phacility, Ops
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 5 2017, 12:27 AM · Ops, Phacility

Oct 4 2017

epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 4 2017, 11:55 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 4 2017, 11:54 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 4 2017, 11:49 PM · Ops, Phacility
epriestley updated subscribers of T5016: Allow Herald rules for Maniphest to act on custom task fields.

The best place for this kind of question is now your organization's support pact -- @tammybutow or @alexmv should be able to help you get access.

Oct 4 2017, 11:34 PM · Herald, Custom Fields
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 4 2017, 6:58 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 4 2017, 5:24 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

Another thing we can do here which will generally reduce the operational load is to be more selective about how we dump/export tables from MySQL. Broadly, we have three general classes of tables today:

Oct 4 2017, 3:51 PM · Ops, Phacility

Oct 3 2017

epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

I've pushed the MySQL configuration tweaks here, and manually built the common ngrams table with a 0.15 threshold.

Oct 3 2017, 9:47 PM · Ops, Phacility
epriestley created T13001: Ambiguous commits should prompt you to select from options.
Oct 3 2017, 8:24 PM · Diffusion
epriestley added a comment to T12991: Enable notifications for admin.phacility.com.

(Basically, a notification is just a copy of a feed story which we deliver directly to an individual at the same time we publish the feed story, so feed and notifications are intertwined.)

Oct 3 2017, 8:20 PM
epriestley added a comment to T12991: Enable notifications for admin.phacility.com.

Mostly right: each node server process has both a "client" service and an "admin" service on different ports. Everything else is pretty much accurate, except that "admin server -> client server" is generally inside the same process.

Oct 3 2017, 8:19 PM
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 3 2017, 7:41 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

I'm also going to increase the db tier innodb_buffer_pool_size from 4GB to 6GB. The hosts have 7.5GB of RAM and 8GB of swap, and are pretty much sitting there with a little under 3GB of RAM mostly unused and no other load.

Oct 3 2017, 7:31 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

The thing I'm mostly looking at is how many queries are pushed down to 0 ngrams, i.e. they can't use the ngram index.

Oct 3 2017, 6:20 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

I looked at how the last 1,000 queries on this instance would be affected by different "common" thresholds. Note that these charts are all sort of garbage (X axis is nonlinear) because I couldn't figure out how basic spreadsheet software works.

Oct 3 2017, 6:06 PM · Ops, Phacility

Oct 2 2017

epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 2 2017, 11:40 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 2 2017, 10:50 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

Here are some possible structural changes we can make to the table, using the Maniphest ngrams table on this install as an example dataset (this is roughly 50x smaller than the target dataset):

Oct 2 2017, 10:18 PM · Ops, Phacility
epriestley added a revision to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table: Unknown Object (Differential Revision).
Oct 2 2017, 8:01 PM · Ops, Phacility
epriestley added a comment to T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.

There's still a big element of mystery here: why did MySQL sustain 80MB/sec of write I/O without daemons running? There "should" have been no queries against the fngrams table, and a large table "should" not require huge I/O volumes if it isn't being used. I don't think it's totally implausible that this was some kind of general thrash/swap/memory management issue in MySQL (the innodb_buffer_pool_size on these hosts if 4GB, and mysql was using all of it) but I would expect "paging-like" activities to cause a large read volume, not a large write volume.

Oct 2 2017, 3:48 PM · Ops, Phacility
epriestley created T13000: Sustained MySQL I/O overwhelmed db009 / huge Ferret engine ngrams table.
Oct 2 2017, 3:14 PM · Ops, Phacility
epriestley created T12999: Replace cluster magnetic volumes with SSD volumes.
Oct 2 2017, 2:48 PM · Phacility, Ops
epriestley added a revision to T12526: parse_url() behavior has changed with PHP7, causing libphutil unit tests to fail and possibly creating security concerns: Unknown Object (Differential Revision).
Oct 2 2017, 2:14 PM · libphutil, Security

Sep 30 2017

epriestley added a comment to T12526: parse_url() behavior has changed with PHP7, causing libphutil unit tests to fail and possibly creating security concerns.

(I'll fix this if you don't get there first, but have used up all my brain energy for today. And thanks for the report!)

Sep 30 2017, 10:35 PM · libphutil, Security
epriestley added a comment to T12526: parse_url() behavior has changed with PHP7, causing libphutil unit tests to fail and possibly creating security concerns.

Would it be acceptable to change PhutilRemarkupHyperlinkRule to catch this exception and behave as if it were a non-whitelisted protocol? (Happy to draft the patch, just want to check before I do so)

Sep 30 2017, 10:32 PM · libphutil, Security
epriestley edited the content of Changelog.
Sep 30 2017, 1:04 AM
epriestley created 2017 Week 39 (Very Late September).
Sep 30 2017, 1:03 AM
epriestley added a comment to T12998: Image macros not working in Differential.

Well, it half-works in email, so that's something!

Sep 30 2017, 1:02 AM · Differential, Macros
epriestley added a comment to T12998: Image macros not working in Differential.

You can do this

Sep 30 2017, 1:01 AM · Differential, Macros
epriestley added a comment to T12998: Image macros not working in Differential.

They need to be on their own line. I think this rule got added in 2011, shortly after I left FB.

Sep 30 2017, 12:56 AM · Differential, Macros

Sep 29 2017

epriestley added a revision to T5523: Make bulk moves easier on Workboards: Unknown Object (Differential Revision).
Sep 29 2017, 11:24 PM · Restricted Project, Workboards

Sep 28 2017

epriestley added a revision to T12990: Support pact language around Autopay is misleading at best: Unknown Object (Differential Revision).
Sep 28 2017, 7:24 PM · Phacility, Support
epriestley added a revision to T12904: Support Pact Errata: Unknown Object (Differential Revision).
Sep 28 2017, 12:27 AM · Phacility, Support

Sep 27 2017

epriestley added a comment to T12991: Enable notifications for admin.phacility.com.

Drive-by mention in PHI91.

Sep 27 2017, 10:49 PM
epriestley shifted T12991: Enable notifications for admin.phacility.com from the Restricted Space space to the S1 Core space.
Sep 27 2017, 10:48 PM
epriestley added a comment to T11343: Generate default "Depends on" line in commit message when multiple diffs are stacked.

It should also work with Mercurial (D18652 and D18653 were my Mercurial tests).

Sep 27 2017, 9:17 PM · Differential, Arcanist, Feature Request
epriestley added a comment to T11911: Arcanist Experimental Branch.
  • arc diff --cache (which was a passthrough for arc lint --cache) has been removed.
Sep 27 2017, 6:52 PM · Restricted Project, Arcanist
epriestley closed T11343: Generate default "Depends on" line in commit message when multiple diffs are stacked as Resolved by committing Restricted Diffusion Commit.
Sep 27 2017, 5:46 PM · Differential, Arcanist, Feature Request
epriestley added a comment to T11343: Generate default "Depends on" line in commit message when multiple diffs are stacked.

D18651 is marked as fixing this. The "fix" is very rough and will land in the experimental branch, see T11911 (and perhaps T12996) for followups.

Sep 27 2017, 5:11 PM · Differential, Arcanist, Feature Request
epriestley added a revision to T11343: Generate default "Depends on" line in commit message when multiple diffs are stacked: Unknown Object (Differential Revision).
Sep 27 2017, 5:05 PM · Differential, Arcanist, Feature Request
epriestley added a comment to T11911: Arcanist Experimental Branch.
  • arc diff --no-diff (an internal workflow) has been removed.
  • The internal "async lint" flag has been removed. This was an ancient, Facebook-specific flag for extensions which is obsoleted by Harbormaster.
  • arc lint --only-new has been removed. This relied on upstream lint support which was never fully developed.
  • arc lint --cache has been removed.
  • The arc.lint.cache config option has been removed.
  • arc lint --only-changed has been removed. arc now detects whether you want warnings on all lines or only changed lines by examining the other arguments (paths, --everything, --lintall, and --rev).
Sep 27 2017, 3:25 PM · Restricted Project, Arcanist
epriestley closed T9749: `arc lint --only-new` doesn't work as expected as Resolved by committing Restricted Diffusion Commit.
Sep 27 2017, 3:21 PM · Restricted Project, Lint, Arcanist
epriestley added a comment to T12996: Parallelize substages of `arc diff`.

I think I'm going to land this stuff on the experimental branch since there's also some other related work which is better targeted there, and things are probably going to get worse before they get better.

Sep 27 2017, 3:14 PM · Arcanist

Sep 26 2017

epriestley added a revision to T12974: Upgrading: "Ferret" Fulltext Engine: Unknown Object (Differential Revision).
Sep 26 2017, 4:21 PM · Installing & Upgrading, Search
epriestley changed the visibility for F5198765: profile.out.
Sep 26 2017, 4:14 PM
epriestley changed the visibility for F5198727: profile.out.
Sep 26 2017, 3:26 PM
epriestley changed the visibility for F5197880: prof.out.
Sep 26 2017, 2:19 AM
epriestley changed the visibility for F5197860: prof.out.
Sep 26 2017, 2:19 AM
epriestley changed the visibility for F5197890: prof.out.
Sep 26 2017, 2:19 AM
epriestley changed the visibility for F5197880: prof.out.
Sep 26 2017, 2:19 AM
epriestley changed the visibility for F5197860: prof.out.
Sep 26 2017, 2:19 AM
epriestley added a revision to T12974: Upgrading: "Ferret" Fulltext Engine: Unknown Object (Differential Revision).
Sep 26 2017, 2:18 AM · Installing & Upgrading, Search
epriestley added a revision to T12974: Upgrading: "Ferret" Fulltext Engine: Unknown Object (Differential Revision).
Sep 26 2017, 2:15 AM · Installing & Upgrading, Search
epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 26 2017, 2:08 AM · Arcanist

Sep 25 2017

epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 25 2017, 9:48 PM · Arcanist
epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 25 2017, 6:39 PM · Arcanist
epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 25 2017, 6:22 PM · Arcanist
epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 25 2017, 6:17 PM · Arcanist
epriestley added a revision to T9749: `arc lint --only-new` doesn't work as expected: Restricted Differential Revision.
Sep 25 2017, 6:17 PM · Restricted Project, Lint, Arcanist
epriestley added a revision to T12996: Parallelize substages of `arc diff`: Unknown Object (Differential Revision).
Sep 25 2017, 6:08 PM · Arcanist
epriestley added a comment to T12996: Parallelize substages of `arc diff`.

Can we avoid filling the output buffer in subprocesses by testing if writes to stdout would block? (This should also be a "yes".)

Sep 25 2017, 5:59 PM · Arcanist