20after4 (Mukunda Modell)
Release Engineer @ Wikimedia Foundation

Projects

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Monday

  • Clear sailing ahead.

User Details

User Since
Nov 28 2011, 9:35 AM (273 w, 4 d)
Availability
Available

Recent Activity

Yesterday

20after4 added a comment to T12296: Improve Phacility repository import performance.

The commit cache should be a fairly large performance win.

Fri, Feb 24, 7:22 PM · Diffusion, Ops, Phacility
20after4 added a comment to D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

Great feedback, thanks! I'll update again over the weekend or early next week.

Fri, Feb 24, 7:19 PM
20after4 added a comment to T12296: Improve Phacility repository import performance.

My impression is that there is a lot of room for optimization in the RepositoryPullLocalDaemon. I've wanted to tackle that for a while because it causes a fair delay between when a commit goes into git and when it actually shows up in Diffusion.

Fri, Feb 24, 10:45 AM · Diffusion, Ops, Phacility
20after4 planned changes to D17384: WIP: Cluster "Search Servers" config and back-end abstraction.
Fri, Feb 24, 10:34 AM
20after4 updated the diff for D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

doh. I arc diff'd from the wrong git state. This is better, I hope.

Fri, Feb 24, 10:30 AM
20after4 planned changes to D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

Can you just have the "mysql" service not accept any hosts in its configuration (i.e., always use the same Phabricator hosts)?

Fri, Feb 24, 9:43 AM
20after4 updated the diff for D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

This implements 'service' level config with individual hosts that can have
one or more 'roles' assigned. Currently roles are 'read' and 'write'

Fri, Feb 24, 9:39 AM
20after4 abandoned D17406: WIP: Cluster "Search Servers" config and back-end abstraction.

ugh, this was supposed to update D17384: WIP: Cluster "Search Servers" config and back-end abstraction

Fri, Feb 24, 9:35 AM
20after4 added a comment to D17406: WIP: Cluster "Search Servers" config and back-end abstraction.

As currently implemented, search.servers looks like this:

Fri, Feb 24, 9:33 AM
20after4 created D17406: WIP: Cluster "Search Servers" config and back-end abstraction.
Fri, Feb 24, 9:29 AM

Wed, Feb 22

20after4 added a comment to T12134: Develop a Nuance-based Phabricator reporting/support flow.

FWIW I think this is pretty genius. Especially the repro-or-it-didn't-happen aspect.

Wed, Feb 22, 6:36 AM · Abuse
20after4 awarded T10612: Editing a panel causes it to duplicate in dashboard a Orange Medal token.
Wed, Feb 22, 6:11 AM · Dashboards (v2), Bug Report
20after4 added a comment to D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

There is a small issue with what I've been doing here, so far:

Wed, Feb 22, 4:59 AM
20after4 awarded T5698: Github-style Remarkup previews on a checked-in resource a Like token.
Wed, Feb 22, 4:54 AM · KDE, Haskell.org, Wikimedia, Restricted Project, Diffusion, Remarkup
20after4 awarded T10756: Make daemons work correctly no matter where they are or how many copies are running a Orange Medal token.
Wed, Feb 22, 4:54 AM · Restricted Project, Daemons

Mon, Feb 20

20after4 added a comment to D17384: WIP: Cluster "Search Servers" config and back-end abstraction.

Awesome, thanks for the guidance! All very good suggestions, I think it makes sense to have a ThingYouCanHealthCheckInterface and I agree that services make more sense than servers. The scenarios you mention are exactly the kinds of functionality I'd like to make possible.

Mon, Feb 20, 6:00 PM

Sun, Feb 19

20after4 added a comment to T2794: Implement Phage (like Hypershell).

I totally get the motivation to have a strong collection of highly integrated tools which all work together seamlessly and provide a value that is larger than the sum of it's parts.

Sun, Feb 19, 11:42 AM · Infrastructure

Sat, Feb 18

20after4 added a comment to D17300: Add repositories to fulltext search index..

Looks good. Couple of minor nits inline.

Your test plan should also include something like this:

  • Edited a repository to have "platypus" in the description, searched for "platypus", found the repository.

Even when bin/search index works, the actual "edit stuff with the web UI" workflow may still not be fully hooked up. Usually, this is because the Editor does not override supportsSearch(), so edits don't rebuild the index. In this case it looks like you're in the clear, so I'd expect this to work correctly with no further changes, but it's worth double checking.

Sat, Feb 18, 8:40 PM · Diffusion, Search
20after4 created D17384: WIP: Cluster "Search Servers" config and back-end abstraction.
Sat, Feb 18, 7:55 AM
20after4 awarded T12157: Make it visibly clearer that a Phabricator user account has been disabled a Orange Medal token.
Sat, Feb 18, 6:38 AM · Profile, Feature Request
20after4 added a comment to T2794: Implement Phage (like Hypershell).

Cool stuff. I didn't see you already had made so much progress before I commented on T12218. You can safely disregard my clustershell suggestion.

Sat, Feb 18, 6:37 AM · Infrastructure
20after4 added a comment to T12218: Reduce the operational cost of a larger Phacility cluster.

@epriestley: Have you seen clustershell? It's a massively scaleable management shell with some pretty interesting features. Wikimedia operations are adopting it in place of a lot of dsh and saltstack stuff. From what I have seen it is a really solid framework to build upon.

Sat, Feb 18, 6:24 AM · Ops, Phacility

Thu, Feb 9

20after4 added a comment to T12106: task search not finding task with full word match .

Interestingly, phabricator_maniphest maniphest_transaction gives zero results but "phabricator_maniphest" "maniphest_transaction" works. Seems like the underscores are a problem as much as the period.

Thu, Feb 9, 6:52 PM · Restricted Project, Search, Bug Report
20after4 added a comment to T12106: task search not finding task with full word match .

Maybe phabricator should automatically try adding quotes to a search if the initial query returns zero results?

Thu, Feb 9, 6:49 PM · Restricted Project, Search, Bug Report
20after4 awarded D17328: Fix icon color on project icon chooser a Like token.
Thu, Feb 9, 6:47 PM

Mon, Feb 6

20after4 claimed T9893: Support ElasticSearch 2.0.
Mon, Feb 6, 5:36 AM · Elasticsearch, Search

Fri, Feb 3

20after4 awarded rP42743810e914: When a viewer can't see some of a dashboard's panels, only hide those panels a Orange Medal token.
Fri, Feb 3, 7:18 PM

Thu, Feb 2

20after4 added projects to D17300: Add repositories to fulltext search index.: Search, Diffusion.
Thu, Feb 2, 6:36 PM · Diffusion, Search
20after4 created D17300: Add repositories to fulltext search index..
Thu, Feb 2, 6:34 PM · Diffusion, Search
20after4 awarded D17295: Add a Picture Menu Item for Profiles a Like token.
Thu, Feb 2, 2:34 PM
20after4 added a comment to T9893: Support ElasticSearch 2.0.

@epriestley: This all sounds excellent. I'll start by fixing any instances of

Thu, Feb 2, 3:24 AM · Elasticsearch, Search
20after4 added a comment to T9460: Unable to search for open tasks using Elasticsearch.

I have this working downstream in Wikimedia's instance of phabricator, however, our fork is significantly modified. I intend to refactor this into something that is either a) mergeable upstream or b) installable as an extension but for now the code is on phabricator.wikimedia.org PhabricatorElasticFulltextStorageEngine.php

Thu, Feb 2, 3:17 AM · Elasticsearch, Search

Wed, Feb 1

robertkraig awarded Community Resources a Love token.
Wed, Feb 1, 8:22 PM
20after4 added a comment to T9893: Support ElasticSearch 2.0.

So, @epriestley: How do you feel about me taking over elasticsearch backend and moving it out to an extension rather than keeping it in phabricator core? The other possibility is I could just fork the elastic backend and name it something different, as it seems phabricator already supports loading the engine extension dynamically.

Wed, Feb 1, 12:09 AM · Elasticsearch, Search
20after4 added a comment to T9893: Support ElasticSearch 2.0.

@Ramm: I'm already on it: https://phabricator.wikimedia.org/T155299

Wed, Feb 1, 12:07 AM · Elasticsearch, Search

Tue, Jan 31

20after4 added a comment to T9530: Release Server / Workflow app / Future of Releeph .

So I was thinking about software components recently and one of the issues I've had with both Jenkins and Harbormaster is that builds of one repository aren't aware of the builds from another repository. This is a common scenario in the software I build:

Tue, Jan 31, 11:47 PM · Restricted Project, Harbormaster, Releeph
20after4 awarded D16981: Initial code-dump of Release a Like token.
Tue, Jan 31, 11:44 PM
20after4 awarded rP5760e499b729: Redesign Home/Profile/Projects side navigation a Love token.
Tue, Jan 31, 11:40 PM
20after4 added a watcher for ApplicationEditor: 20after4.
Tue, Jan 31, 10:49 PM

Sun, Jan 29

20after4 added a comment to D17259: Redesign Home/Profile/Projects side navigation.
In D17259#205427, @chad wrote:

Truth be told I have a diff locally that removes serious business more for all boring all the time.

Sun, Jan 29, 10:02 AM

Sat, Jan 28

20after4 created U36 commits by 20after4.
Sat, Jan 28, 1:42 AM
20after4 awarded T12164: Put an indirection layer between author/committer strings and user accounts a Cup of Joe token.
Sat, Jan 28, 1:11 AM · Diffusion (v3), Phacility

Fri, Jan 27

20after4 added a comment to T11741: Use InnoDB for FULLTEXT indexes where supported.

Our DBAs are currently in the process of testing the a patched mariadb package. I will try to keep you posted on that progress but it looks like the fix is now backported to 10.0

Fri, Jan 27, 6:01 PM · Infrastructure
20after4 awarded rP5960b1c8a3cd: Allow menu items to render their own content; make Dashboard items render on… a Love token.
Fri, Jan 27, 5:45 PM
20after4 added a comment to D17228: Don't require edit capability on the Favorites application to edit personal menu items.

Is there any way that getCustomPHID would return false/null when it's a non-admin editing favorites?

Fri, Jan 27, 2:09 AM

Jan 25 2017

20after4 added a comment to T5000: Using Differential with plain Git, without requiring Arc.

Another possibility is that we just build this behavior (intercept and react to ref changes) as an extension point prior to the Herald, and then you can implement whatever magic you want. I suspect very few installs want the default behavior of git push origin mybranch for arbitrarily named branches to be anything except "create a branch".

Jan 25 2017, 11:12 AM · KDE, FreeBSD, Restricted Project, Haskell.org, Wikimedia, Differential, Arcanist

Jan 18 2017

20after4 awarded T12101: Phabricator PHP 7 Compatibility a Mountain of Wealth token.
Jan 18 2017, 5:36 AM · Infrastructure, Guides

Dec 5 2016

20after4 awarded T11939: IPv6 Support a Love token.
Dec 5 2016, 7:19 PM · Infrastructure
20after4 awarded rPHU2ffd89902c1b: Support IPv6 in CIDR block lists a Love token.
Dec 5 2016, 7:19 PM

Dec 4 2016

20after4 created T11945: Unable to edit calendar events created by someone else, even after `bin/policy unlock` .
Dec 4 2016, 9:40 AM · Bug Report (Needs Information), Policy, Calendar

Dec 2 2016

20after4 awarded D16973: Implement basic IPv6 address parsing support a Love token.
Dec 2 2016, 8:46 PM

Dec 1 2016

20after4 awarded Blog Post: Write, Review, Merge, Publish: Phabricator Review Workflow a Orange Medal token.
Dec 1 2016, 1:29 AM

Nov 23 2016

20after4 added a comment to T11909: Recurring Events: "Edit all Future Events" edits past instances as well.

This all seems reasonable, I'm actually not 100% sure what happened so I'll try to gather a better understanding of the situation ;)

Nov 23 2016, 7:36 AM · Wikimedia, Calendar, Bug Report

Nov 22 2016

20after4 created T11909: Recurring Events: "Edit all Future Events" edits past instances as well.
Nov 22 2016, 8:07 PM · Wikimedia, Calendar, Bug Report

Nov 18 2016

20after4 awarded Blog Post: Advanced Internet Usage (Experts ONLY!) a Love token.
Nov 18 2016, 11:59 AM

Nov 17 2016

20after4 added a comment to D16889: Fix an EditEngine issue with unlocking fields which can't be locked.

hahahah nice.

Nov 17 2016, 6:30 PM

Nov 15 2016

20after4 added a comment to D16856: Allow Pygments to recognize .rs files as Rust.

Fixed in config

Nov 15 2016, 8:27 PM

Nov 14 2016

20after4 awarded T929: Allow two arbitrary revisions to be compared in Diffusion a Love token.
Nov 14 2016, 8:27 AM · Diffusion (v3), Restricted Project
20after4 added a comment to T11087: Make permissions more granular in repositorys.

FWIW: I believe @paladox means well, he's just young/inexperienced and overly enthusiastic. The decision to ban him is entirely reasonable for upstream though, given the circumstances.

Nov 14 2016, 8:05 AM · Wikimedia, Diffusion, Feature Request
20after4 added a comment to T11034: Provide more information about projects, etc. in tokenizer browse dialog to make distinguishing between similar projects easier.

Now that this has been deployed for a while, I'm curious if there's any feedback about it? Specifically:

  • Does this approach generally seem like it's a reasonable solution to the problem (if not in its current form, in some similar form which handles these issues more gracefully)? Or are we not really in the right ballpark?
Nov 14 2016, 7:48 AM · Restricted Project, Design & Planning, Typeahead, Prioritized, Wikimedia

Nov 10 2016

20after4 awarded Blog Post: Encouraging Open Source Etiquette a Love token.
Nov 10 2016, 6:42 PM

Oct 13 2016

20after4 closed D16525: Check for empty output from git ls-tree.

Somehow this didn't autoclose.

Oct 13 2016, 6:22 PM
20after4 added an edge to rPc0bf08058b77: Check for empty output from git ls-tree: D16525: Check for empty output from git ls-tree.
Oct 13 2016, 6:22 PM
20after4 added 1 commit(s) for D16525: Check for empty output from git ls-tree: rPc0bf08058b77: Check for empty output from git ls-tree.
Oct 13 2016, 6:22 PM

Oct 12 2016

20after4 added a comment to T11735: Upgrading: Calendar Storage Migrations.

Would it be safe for me to write a migration that sets utcInstanceEpoch equal to utcInitialEpoch on every row in the calendar_event table?

Oct 12 2016, 8:45 AM · Calendar
20after4 added a comment to T11735: Upgrading: Calendar Storage Migrations.

After running the migrations, some instances of recurring events end up with null for the utcInstanceEpoch column. I'm not sure how this happened, however, as some of the instances have a value that matches utcInitialEpoch and I'm not entirely sure what the purpose of utcInstanceEpoch would be. If it matches InitialEpoch then it seems kinda useless, as does null...

Oct 12 2016, 8:41 AM · Calendar
20after4 awarded D16690: Force a couple of Conduit results to the proper types in Calendar a Love token.
Oct 12 2016, 8:10 AM
20after4 added a comment to T11706: Retrieve event date from Calendar "calendar.event.search" method API.

@epriestley: Sounds good to me, this seems quite sensible in every way.

Oct 12 2016, 8:06 AM · Calendar, Feature Request
20after4 added a comment to T11741: Use InnoDB for FULLTEXT indexes where supported.

@epriestley: Jaime, Senior DBA at the WMF, has posted some answers for your list of questions:

Oct 12 2016, 7:58 AM · Infrastructure

Oct 9 2016

20after4 added a comment to T11741: Use InnoDB for FULLTEXT indexes where supported.

Also, reindexing is required after switching to innodb.

Oct 9 2016, 9:32 PM · Infrastructure
20after4 added a comment to T11741: Use InnoDB for FULLTEXT indexes where supported.

Does InnoDB FULLTEXT respect ft_boolean_syntax? If no: is there another similar option? If no: we need to parse queries ourselves and submit the +A +B version to the backend (see also T10642).

Oct 9 2016, 9:31 PM · Infrastructure
20after4 committed rARC296250485541: Fix an DOMDocument error with NoseTestEngine running on PHP 7 (authored by 20after4).
Fix an DOMDocument error with NoseTestEngine running on PHP 7
Oct 9 2016, 9:29 PM
20after4 closed D16672: Fix an DOMDocument error with NoseTestEngine running on PHP 7 by committing rARC296250485541: Fix an DOMDocument error with NoseTestEngine running on PHP 7.
Oct 9 2016, 9:29 PM
20after4 added a comment to T11735: Upgrading: Calendar Storage Migrations.

That's some pretty awesome support for an unsupported prototype. Kudos!

Oct 9 2016, 9:14 PM · Calendar
20after4 awarded T11735: Upgrading: Calendar Storage Migrations a Love token.
Oct 9 2016, 9:13 PM · Calendar

Oct 5 2016

20after4 retitled D16672: Fix an DOMDocument error with NoseTestEngine running on PHP 7 from to Fix an DOMDocument error with NoseTestEngine running on PHP 7.
Oct 5 2016, 8:23 PM

Oct 2 2016

20after4 added a comment to T10003: Upgrading: Maniphest field-level policies ("Can Prioritize Tasks", etc.) have been deprecated and will be removed.

@vanmeeuwen couldn't you use custom forms to lock/hide the policy controls on the maniphest task submission / edit forms? That's how we handled it at Wikimedia's Phabricator. As mentioned above, Custom Forms is the general way forward for controlling default task policies.

Oct 2 2016, 12:41 AM · Policy, Maniphest, Installing & Upgrading
20after4 added a comment to T929: Allow two arbitrary revisions to be compared in Diffusion.
avivey moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.
Oct 2 2016, 12:33 AM · Diffusion (v3), Restricted Project
20after4 awarded T8238: Formally support side-band change handoff in external repositories a Doubloon token.
Oct 2 2016, 12:29 AM · Restricted Project, Restricted Project, Diffusion, Harbormaster
20after4 added a comment to T10747: Import and export ICS from Calendar.

@epriestley: if you still haven't figured out how to trigger the calendar event ui in gmail, maybe these headers are part of the secret sauce? [ 1 ]

Oct 2 2016, 12:20 AM · Restricted Project, Prioritized, Calendar

Sep 29 2016

20after4 added a comment to T9779: ./bin/search init error with elasticsearch 2.0.

I doubt that upstream is interested in adding yet another configuration option, however, in case anyone runs across this issue, the following patch will make phabricator work with newer elasticsearch versions (2+)

Sep 29 2016, 10:11 PM · Elasticsearch
20after4 added a comment to T9893: Support ElasticSearch 2.0.

@epriestley:
So far innodb is working. I can't say if it's worse than myisam really, seems pretty similar. Stemming would help a lot but the main complaint I have is the ranking algorithm seems really bad. It doesn't return the most relevant results first. myisam had the same problem though.

Sep 29 2016, 7:14 PM · Elasticsearch, Search

Sep 28 2016

20after4 added a comment to T9893: Support ElasticSearch 2.0.

With InnoDB now mostly finished indexing, search seems to be working and the service isn't getting killed by locked tables. More info at the link I pasted above ^

Sep 28 2016, 8:56 AM · Elasticsearch, Search
20after4 added a comment to T9893: Support ElasticSearch 2.0.

Wikimedia is considering another stab at elasticsearch because we just hit a fairly serious scalability issue with myisam (https://phabricator.wikimedia.org/T146673) and it looks like innodb isn't a lot better. In addition to that, the mysql fulltext engines don't seem to handle stemming or even simple prefix matching.

Sep 28 2016, 5:21 AM · Elasticsearch, Search
20after4 added a comment to T8345: Add task tabs for "Mentions" and "Merged".

+1 for mentions, that would serve the same purpose as see also: or related tasks: would. Primarily it would just be nice to be able to see them in one place instead of hiding in comments...

Sep 28 2016, 12:22 AM · Restricted Project, FreeBSD, Maniphest

Sep 24 2016

20after4 awarded rPHU1a0371a2247a: Add initial support for complex recurring events a Love token.
Sep 24 2016, 2:09 PM

Sep 21 2016

20after4 added a comment to T11675: "Text" type custom field in Maniphest not displayed in Maniphest Advanced Search form.

We use a text field for a 'reference number' which refers to tasks imported from bugzilla reference=bz123, or RT with reference=rt456

Sep 21 2016, 3:14 PM · Custom Fields, Maniphest, Bug Report

Sep 19 2016

20after4 added a comment to T7944: Add Conduit support to Calendar.

Here are 2 use-cases which are both essentially the same in all the important ways:

Sep 19 2016, 5:31 AM · Conduit, Calendar

Sep 18 2016

20after4 added a comment to T7944: Add Conduit support to Calendar.

@epriestley: Are you open to patches that add more information to the calendar.event.search response? It currently does not even include the event time which is a pretty crucial detail to make the results useful.

Sep 18 2016, 4:00 AM · Conduit, Calendar

Sep 14 2016

20after4 added a project to T11635: tagging a differential revision with a milestone breaks `arc diff`: Arcanist.
Sep 14 2016, 11:00 AM · Restricted Project, Arcanist, Bug Report
20after4 created T11635: tagging a differential revision with a milestone breaks `arc diff`.
Sep 14 2016, 11:00 AM · Restricted Project, Arcanist, Bug Report

Sep 10 2016

20after4 awarded D16517: Respect "End Date" for recurring Calendar events in detail UI a Love token.
Sep 10 2016, 11:18 AM
20after4 committed rPc0bf08058b77: Check for empty output from git ls-tree (authored by 20after4).
Check for empty output from git ls-tree
Sep 10 2016, 11:14 AM
20after4 closed T10155: Error when displaying a repository with only one empty commit as "Resolved" by committing rPc0bf08058b77: Check for empty output from git ls-tree.
Sep 10 2016, 11:14 AM · Diffusion, Bug Report

Sep 9 2016

chad awarded D16525: Check for empty output from git ls-tree a Pirate Logo token.
Sep 9 2016, 2:18 AM
20after4 retitled D16525: Check for empty output from git ls-tree from to Check for empty output from git ls-tree.
Sep 9 2016, 2:10 AM
20after4 added a revision to T10155: Error when displaying a repository with only one empty commit: D16525: Check for empty output from git ls-tree.
Sep 9 2016, 2:10 AM · Diffusion, Bug Report

Sep 7 2016

20after4 awarded T11399: Add support for locations in calendar events a Love token.
Sep 7 2016, 11:51 PM · Calendar, Feature Request
20after4 added a comment to T11399: Add support for locations in calendar events.

IMO, Pokémon catching is an essential feature, please implement that first.

Sep 7 2016, 11:51 PM · Calendar, Feature Request
20after4 added a comment to T10145: Adding a panel to a dashboard multiple times.

T10612: Editing a panel causes it to duplicate in dashboard may be the same root cause as this bug.

Sep 7 2016, 11:45 PM · Dashboards (v2), Bug Report