Page MenuHomePhabricator

tstarling (Tim Starling)
UserAdministrator

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Friday

  • Clear sailing ahead.

User Details

User Since
Oct 15 2014, 8:27 PM (285 w, 6 d)
Roles
Administrator
Availability
Available
LDAP User
Tim Starling
MediaWiki User
Tim Starling (WMF) [ Global Accounts ]

Recent Activity

Yesterday

tstarling created T249584: Call LoadExtensionSchemaUpdates later.
Tue, Apr 7, 6:31 AM · MW-1.35-notes (1.35.0-wmf.28; 2020-04-14), Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Thu, Apr 2

tstarling added a comment to T248564: Watchlist missing revisions with pages near the size limit.

MW should have the lowest limit, because it can deliver the nicest error messages. So I would increase the php-fpm CPU limit from 180s to 201s, not 200s, matching the WT limit. The idea is that the MW time limit will expire first and will deliver a nice error message, and it has 1s of grace to do the error message delivery.

Thu, Apr 2, 2:28 AM · serviceops, Performance-Team, MediaWiki-Page-derived-data

Tue, Mar 31

tstarling added a comment to T235357: PHP Warning: preg_match(): Compilation failed: two named subpatterns have the same name at offset 62.
path = /wiki/Wikimedia_Taiwan/wiki/index.php5/$1  pattern=/wiki/$1  SCRIPT_NAME=/wiki/Wikimedia_Taiwan/wiki/index.php5/$1

That seems wrong. $_SERVER['SCRIPT_NAME'] is supposed to be the current script's path, without the pathinfo part.

Tue, Mar 31, 12:34 AM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), User-brennen, Core Platform Team Workboards (Clinic Duty Team), MediaWiki-General, Wikimedia-production-error

Mon, Mar 30

tstarling claimed T235357: PHP Warning: preg_match(): Compilation failed: two named subpatterns have the same name at offset 62.
Mon, Mar 30, 10:56 PM · MW-1.35-notes (1.35.0-wmf.27; 2020-04-07), User-brennen, Core Platform Team Workboards (Clinic Duty Team), MediaWiki-General, Wikimedia-production-error
WhitePhosphorus awarded T46667: Review and merge chinese-collation branch into master, configure Chinese wikis to use it a Manufacturing Defect? token.
Mon, Mar 30, 6:38 AM · Chinese-Sites, MediaWiki-Internationalization, Wikimedia-Site-requests

Wed, Mar 25

tstarling closed T71301: Remove "viewmywatchlist" user right from anonymous users as Declined.

I agree with @Krinkle, I don't think rights should be used in this way. There were no objections to closing this in the TechCom meeting, but I note that we didn't have a quorum, so I'm closing the task on my own authority.

Wed, Mar 25, 8:53 PM · TechCom, Growth-Team, Africa-Wikimedia-Developers, MediaWiki-Watchlist
tstarling closed T71301: Remove "viewmywatchlist" user right from anonymous users, a subtask of T52039: Proposed changes to default settings (DefaultSettings.php) (tracking), as Declined.
Wed, Mar 25, 8:53 PM · Tracking-Neverending, MediaWiki-General
tstarling added a comment to T246855: Hook interface doc comment review.

Sounds good. Feel free to do a global search and replace -- I think that's an easier way to update the auto-generated interfaces than running the script again.

Wed, Mar 25, 12:26 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Tue, Mar 24

Bawolff awarded T26575: Purge Category and File description pages from HTTP/File cache when members/usage changes via LinkUpdate a Burninate token.
Tue, Mar 24, 10:18 PM · Patch-For-Review, Core Platform Team (Icebox), MediaWiki-Cache, MediaWiki-Page-editing

Thu, Mar 19

tstarling added a comment to T246855: Hook interface doc comment review.

"void" sounds more correct, I don't think we actually want people explicitly returning null.

Thu, Mar 19, 5:00 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Tue, Mar 17

tstarling added a comment to T247562: Warning: Memcached::setMulti(): failed to set key global:segment:....

I looked at the logged keys again. The top key from 20:13 by request rate was WANCache:t:arwiki:gadgets-definition:9:2 (by a small margin). This key appeared very rarely in log messages from another day. It's just a timestamp key, but it's fetched using getWithSetCallback() with a check key, which means that the timestamp key and the value key would have been requested together with getMulti(). The value would have been 82658 bytes, consistent with the chunk size above.

Tue, Mar 17, 5:09 AM · User-notice, MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Cache, User-brennen, Wikimedia-production-error
tstarling added a comment to T247562: Warning: Memcached::setMulti(): failed to set key global:segment:....

We do have detailed statistics for the memcached instance, which shows that the traffic originated from memcached, not redis.

Tue, Mar 17, 3:37 AM · User-notice, MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Cache, User-brennen, Wikimedia-production-error
tstarling added a comment to T247562: Warning: Memcached::setMulti(): failed to set key global:segment:....

I tried pulling out the top 100 keys by error rate from that second, but nothing really stood out. So I tried multiplying the request count of those keys by their current size in memcached, but it was still uninspiring.

Tue, Mar 17, 3:15 AM · User-notice, MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Cache, User-brennen, Wikimedia-production-error

Mon, Mar 16

tstarling added a comment to T247562: Warning: Memcached::setMulti(): failed to set key global:segment:....

I used admin requests to verify that out of 10 selected log entries from 20:10:36, all 10 were associated with mc1030, consistent with saturation of its outbound networking at the time.

Mon, Mar 16, 11:37 PM · User-notice, MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Cache, User-brennen, Wikimedia-production-error
tstarling added a comment to T247562: Warning: Memcached::setMulti(): failed to set key global:segment:....

There was a spike in network transmit rate on mc1029 and mc1030 at the time in question. The other servers did not show such a spike. So it may be a small number of keys with large values being frequently requested.

Mon, Mar 16, 10:43 PM · User-notice, MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Cache, User-brennen, Wikimedia-production-error

Sun, Mar 15

tstarling updated the task description for T246855: Hook interface doc comment review.
Sun, Mar 15, 10:00 PM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling added a comment to T246855: Hook interface doc comment review.

OK, let's not do type hints just yet.

Sun, Mar 15, 10:00 PM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Fri, Mar 13

tstarling added a comment to T246855: Hook interface doc comment review.

You should certainly remove the thing about a string raising a fatal error. I'm a bit uncomfortable with having that in the default description since it's extremely rare and shouldn't be encouraged. Maybe I should just remove all mentions of the return value being potentially a string, and deprecate that behaviour.

Fri, Mar 13, 6:02 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling added a comment to T166010: The Great Namespaceization and Reorg.
  • Maybe PHP does autoload classes it sees in typehints. If this is the case, then on either type hint, it would load the class accordingly and always get both the class and the typehint in one go.
  • Maybe PHP doesn't autoload classes it sees in typehints. If this is the case, then both for aliased classes and regular classes mentioned in typehint it would not know the true identify of what the typehint refers to. But maybe it makes up the identity on the spot based solely on the string, and thus not have the knowledge it would normally be able to get about classes being identical.
Fri, Mar 13, 4:19 AM · Core Platform Team Workboards (Initiatives), MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Patch-For-Review, Core Platform Team, Wikimania-Hackathon-2019, TechCom-RFC (TechCom-RFC-Closed), TechCom, Epic

Thu, Mar 12

tstarling added a comment to T246855: Hook interface doc comment review.

Thanks for creating this task, @tstarling! I'm really excited about starting this work. Considering the number of hooks, it will likely take a few weeks to complete, and I'd like to schedule this work in a way that doesn't block the project. Do you have a sense of when you'd like to merge 574266?
I see that the task requests doc updates to be made in a separate commit. Would this be a separate patch request after 574266 is merged?

Thu, Mar 12, 11:17 PM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling added a comment to T166010: The Great Namespaceization and Reorg.

It is intentional. Sorry, I should have used different classes for the type declaration and the instantiated class to make this clearer. Let me just use the names from the actual test failure:

Thu, Mar 12, 1:41 AM · Core Platform Team Workboards (Initiatives), MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Patch-For-Review, Core Platform Team, Wikimania-Hackathon-2019, TechCom-RFC (TechCom-RFC-Closed), TechCom, Epic

Wed, Mar 11

tstarling added a comment to T166010: The Great Namespaceization and Reorg.

We already ran into this issue with renaming RDBMS classes, and found a very simple workaround for it: The alias must be in the same file as the real class, and both the class and alias must be in the autoloader. E.g. Foo.php will contain class Foo {} and class_alias( Foo::class, 'FooAlias' ) and the autoloader will contain an entry for both Foo and FooAlias. This is already enforced by a phpunit structure test in MediaWiki core.

Wed, Mar 11, 10:10 PM · Core Platform Team Workboards (Initiatives), MW-1.35-notes (1.35.0-wmf.24; 2020-03-17), Patch-For-Review, Core Platform Team, Wikimania-Hackathon-2019, TechCom-RFC (TechCom-RFC-Closed), TechCom, Epic

Tue, Mar 10

tstarling added a comment to T246938: How to update/delete ExternalStore entries?.

The ES clusters which are not currently being written to have read-only mode enabled in MariaDB, so you can't modify them in any way. They also don't have replication running. So ES is managed by the DBAs as an append-only cluster, a strategy which is enabled by the restricted API presented by MediaWiki. Presenting ES as an append-only store provides some flexibility for implementation options which would not be there if we allowed deletion and update.

Tue, Mar 10, 2:02 AM · Core Platform Team Workboards (Clinic Duty Team), MediaWiki-Revision-backend

Mar 6 2020

tstarling updated the task description for T246855: Hook interface doc comment review.
Mar 6 2020, 6:10 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling added a comment to T246855: Hook interface doc comment review.

I suppose we also need type hints, not just doc comment types. The RFC did promise "strong types". I'll add something about that. I think we can just say that every documented class type also becomes a type hint.

Mar 6 2020, 6:07 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Mar 4 2020

awight awarded T157658: Factor out a backend from EditPage a Baby Tequila token.
Mar 4 2020, 9:29 PM · Core Platform Team, MediaWiki-Page-editing
apaskulin awarded T246855: Hook interface doc comment review a Love token.
Mar 4 2020, 4:14 PM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling updated the task description for T246855: Hook interface doc comment review.
Mar 4 2020, 1:49 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General
tstarling created T246855: Hook interface doc comment review.
Mar 4 2020, 1:10 AM · Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review, MediaWiki-General

Mar 2 2020

tstarling closed T243925: Grant +2 gerrit rights for @polishdeveloper as Resolved.

I added Polishdeveloper to the mediawiki group in Gerrit.

Mar 2 2020, 10:10 AM · MediaWiki-Gerrit-Group-Requests
tstarling added a comment to T246408: Video undeletion hook is non-functional.

Your question was a bit of a rabbit hole. I think I will file a separate bug about general refactoring of file deletion and undeletion.

Mar 2 2020, 2:34 AM · Video (non-WMF), Social-Tools

Feb 28 2020

tstarling created T246408: Video undeletion hook is non-functional.
Feb 28 2020, 5:20 AM · Video (non-WMF), Social-Tools
tstarling added a comment to T193950: Hook parameters should not be passed by reference unless the parameter is documented to be replaceable.

For T240307 I really need a list of every inappropriate reference parameter. Ideally this would be indicated by some special syntax in hooks.txt, like [&]$editPage instead of &$editPage.

Feb 28 2020, 5:12 AM · MW-1.35-notes (1.35.0-wmf.22; 2020-03-03), Patch-For-Review, MediaWiki-General, Core Platform Team Legacy (Watching / External), User-Daniel

Feb 26 2020

tstarling added a comment to T193950: Hook parameters should not be passed by reference unless the parameter is documented to be replaceable.

For T240307 I really need a list of every inappropriate reference parameter. Ideally this would be indicated by some special syntax in hooks.txt, like [&]$editPage instead of &$editPage.

Feb 26 2020, 4:49 AM · MW-1.35-notes (1.35.0-wmf.22; 2020-03-03), Patch-For-Review, MediaWiki-General, Core Platform Team Legacy (Watching / External), User-Daniel

Feb 13 2020

tstarling added a comment to T244579: MediaWiki does not support consistent pagination on non-unique fields.

I see T244579 is done: the change is merged so it presumably should be closed. Does that answer all use cases in T236225, or is there something remaining that still needs OFFSET?

Feb 13 2020, 6:33 AM · MediaWiki-General, TechCom

Feb 11 2020

Daimona awarded T239975: Complete WikiPage/Article split and deprecate Page interface a Doubloon token.
Feb 11 2020, 2:30 PM · MW-1.35-notes (1.35.0-wmf.26; 2020-03-31), Core Platform Team Workboards (Initiatives), Patch-For-Review, MediaWiki-General

Feb 5 2020

1997kB awarded T6845: CAPTCHA doesn't work for people with visual impairments a Heartbreak token.
Feb 5 2020, 12:40 PM · Security, ConfirmEdit (CAPTCHA extension), Accessibility, Design, WCAG-Level-A
Cameron11598 awarded T6845: CAPTCHA doesn't work for people with visual impairments a Heartbreak token.
Feb 5 2020, 4:56 AM · Security, ConfirmEdit (CAPTCHA extension), Accessibility, Design, WCAG-Level-A

Jan 30 2020

tstarling added a comment to T239975: Complete WikiPage/Article split and deprecate Page interface.

Make Action::factory() and Action::__construct() take an Article as a parameter instead of a Page. Codesearch suggests that only Flow will be broken by this, requiring a simultaneous update.

Jan 30 2020, 8:13 PM · MW-1.35-notes (1.35.0-wmf.26; 2020-03-31), Core Platform Team Workboards (Initiatives), Patch-For-Review, MediaWiki-General

Jan 29 2020

TK-999 awarded T243051: A query builder for MediaWiki core a Party Time token.
Jan 29 2020, 3:37 PM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review

Jan 23 2020

tstarling added a comment to T243051: A query builder for MediaWiki core.

In a meeting, @daniel convinced me that there's not much to gain by making SelectQueryBuilder be a value object as opposed to having IDatabase act as a factory. It's likely that anything that constructs a SelectQueryBuilder will also need access to an IDatabase, at least for addQuotes(). If IDatabase is a factory, then SelectQueryBuilder can potentially be extended in future with expression builder functions that depend on addQuotes() etc.

Jan 23 2020, 10:54 PM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review

Jan 21 2020

tstarling added a comment to T243051: A query builder for MediaWiki core.

Is it easier to accept a context-sensitive useIndex() function if you consider it to be effectively appending to a query string?

Jan 21 2020, 3:10 AM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review
tstarling added a comment to T243051: A query builder for MediaWiki core.

I like the "fluent" style for builders in general, for something like $builder->select(...)->from( ... )->where( ... ). In fact, because of this, I'd prefer from over tables (or maybe support both).

Jan 21 2020, 12:29 AM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review

Jan 20 2020

tstarling added a comment to T243051: A query builder for MediaWiki core.

A goal I have is to try to put table options close to the tables they serve. So far, I have formal parameters:

Jan 20 2020, 5:58 AM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review
tstarling added a comment to T243051: A query builder for MediaWiki core.

We could always have an interface that returns a partially filled SelectQueryBuilder, with empty conditions. I'm not sure if it's worth worrying about right now. The low hanging fruit is one-off queries that aren't part of any larger query building system, and direct callers of Database::select() like QueryPage::reallyDoQuery(). I mentioned getQueryInfo() because it's a good analogy, I'm not planning to get rid of it immediately. The point of introducing SelectQueryBuilder is to split a useful concept out of ApiQueryBase so that it can be used in pure backends.

Jan 20 2020, 1:13 AM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review

Jan 17 2020

tstarling created T243051: A query builder for MediaWiki core.
Jan 17 2020, 4:25 AM · MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), Wikimedia-Rdbms, Core Platform Team Workboards (Clinic Duty Team), Patch-For-Review

Jan 15 2020

tstarling added a comment to T240884: RFC: How to evaluate user-provided regular expressions.

There is https://pecl.php.net/package/re2 . It was written for PHP 5 and was never updated after its initial release in 2011, but we have the skills to update it for PHP 7 and review it for security. If we believe in RE2 then we shouldn't be afraid to invest in it.

Jan 15 2020, 9:54 PM · User-Addshore, TechCom-RFC, Wikidata

Jan 8 2020

tstarling added a comment to T240307: Hook container with strong types and DI.

Task description edit: I came up with a pretty neat and simple hook deprecation system, slightly different to what I proposed in the comment above. See what you think. It doesn't need core to be aware of the deprecation chain, it just needs a list of deprecated hooks.

Jan 8 2020, 5:09 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Jan 8 2020, 5:07 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling added a comment to T240307: Hook container with strong types and DI.

Task description edit: remove the term "listener" and move hook interfaces into the namespace of the caller.

Jan 8 2020, 4:50 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Jan 8 2020, 4:49 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Jan 7 2020

tstarling added a comment to T240307: Hook container with strong types and DI.

One thing I don't quite see is why we still need hooks names, other than the names of the associated interfaces. This seems redundant and prone to inconsistencies. For legacy hook, there could be an aliasing mechanism by which extra names for a hook can be registered, which then get mapped to the name of an interface.

Jan 7 2020, 4:18 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 17 2019

tstarling added a comment to T240307: Hook container with strong types and DI.
public function onMyOldHook() {
    if ( interface_exists( MyNewHook::class ) ) {
        return; // new hook interface exists, assume it was/will be called
    }
    // hook logic goes here
}
Dec 17 2019, 6:29 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 16 2019

MGChecker awarded T240307: Hook container with strong types and DI a Like token.
Dec 16 2019, 2:39 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Dec 16 2019, 12:25 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 12 2019

tstarling added a comment to T239724: Fatal error: "Object does not support method calls" (from MemcachedPeclBagOStuff).

Are those all happening on requests that are timing out (and killed as a result)?
If some of these fatals happen when timeouts aren't involved, then I think it's an entirely different diagnosis and a more general problem than just timeouts.

Dec 12 2019, 6:50 PM · Core Platform Team Workboards (Architecture Review Workboard), Performance-Team, MediaWiki-Cache, Wikimedia-production-error
tstarling added a comment to T187154: Performance regression from Apcu/ExtensionRegistry::loadFromQueue on PHP7.

apcu_fetch() copies the data out of shared memory instead of referring to it. So it's slower than opcache or HHVM's APC. Large arrays are especially slow since allocator calls are needed for each array element.

Dec 12 2019, 4:01 PM · Wikimedia-Incident, Performance-Team, Core Platform Team Workboards (Clinic Duty Team), PHP 7.2 support, Release-Engineering-Team-TODO
tstarling added a comment to T239724: Fatal error: "Object does not support method calls" (from MemcachedPeclBagOStuff).

My running theory is that the interrupt opportunity used by our php-excimer extension is not cleanly occurring between two PHP statements, nor cleanly between two parts of a fluent call chain in PHP.

Dec 12 2019, 1:33 AM · Core Platform Team Workboards (Architecture Review Workboard), Performance-Team, MediaWiki-Cache, Wikimedia-production-error
apaskulin awarded T240307: Hook container with strong types and DI a Like token.
Dec 12 2019, 12:49 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 11 2019

tstarling claimed T237618: Amendments to the Gerrit Privilege policy.
Dec 11 2019, 9:09 PM · TechCom
daniel awarded T240307: Hook container with strong types and DI a Love token.
Dec 11 2019, 7:02 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
Daimona awarded T240307: Hook container with strong types and DI a Like token.
Dec 11 2019, 6:23 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
TK-999 awarded T240307: Hook container with strong types and DI a Yellow Medal token.
Dec 11 2019, 6:08 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling added a comment to T240307: Hook container with strong types and DI.

It's true that the performance implications would be concerning if the plan was to migrate all extension hook classes to use DI without splitting them up. I think existing massive hook classes in extensions could initially continue to use MediaWikiServices::getInstance() but switch from static functions to non-static functions with interfaces. That way, they get documentation and strong typing, they just don't get DI for now.

Dec 11 2019, 6:06 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 10 2019

tstarling added a comment to T240307: Hook container with strong types and DI.
  • The idea of sharing a single hook container in extension with multiple hook callbacks seems fine at first, but it's not clear to me why we want to encourage this. In particular, I think this has worked out somewhat negatively in the Wikibase-family of extensions. Their hook singletons are too monolithic and closely coupled. It makes the code hard to maintain, and (more to my own interest) creates a performance nightmare in that to invoke any hook, you end up constructing an expensive tree of services for all dependencies of all hooks. See T177311 and T160678 for examples of this.
Dec 10 2019, 10:32 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling added a comment to T240307: Hook container with strong types and DI.

That change weakened the rationale for having a centralized HookRunner class for all core hooks, do you think I should reconsider that?

Dec 10 2019, 5:31 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Dec 10 2019, 5:29 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling added a comment to T240307: Hook container with strong types and DI.

I note that for cases where ExtensionFoo wants to add a listener for a hook from ExtensionBar but also wants to maintain the ability to be used when ExtensionBar is not installed, it will need to register a separate listener just for ExtensionBar's hooks because the requisite interfaces won't be available when ExtensionBar is not available.

Dec 10 2019, 5:27 PM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
Bawolff awarded T240307: Hook container with strong types and DI a Like token.
Dec 10 2019, 5:28 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Dec 10 2019, 5:25 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling updated the task description for T240307: Hook container with strong types and DI.
Dec 10 2019, 5:23 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team
tstarling created T240307: Hook container with strong types and DI.
Dec 10 2019, 5:07 AM · Dependency injection, Core Platform Team Workboards (Clinic Duty Team), MW-1.35-notes (1.35.0-wmf.23; 2020-03-10), Patch-For-Review, TechCom-RFC (TechCom-RFC-Closed), User-Daniel, Core Platform Team

Dec 6 2019

tstarling created T239975: Complete WikiPage/Article split and deprecate Page interface.
Dec 6 2019, 6:53 AM · MW-1.35-notes (1.35.0-wmf.26; 2020-03-31), Core Platform Team Workboards (Initiatives), Patch-For-Review, MediaWiki-General

Dec 4 2019

Njk awarded T214998: RFC: Remove .m. subdomain, serve mobile and desktop variants through the same URL a Like token.
Dec 4 2019, 2:56 PM · TechCom-RFC, Readers-Web-Backlog (Tracking), Traffic, MobileFrontend, Operations
Darylgolden awarded T214998: RFC: Remove .m. subdomain, serve mobile and desktop variants through the same URL a Like token.
Dec 4 2019, 2:48 PM · TechCom-RFC, Readers-Web-Backlog (Tracking), Traffic, MobileFrontend, Operations
tstarling added a comment to T237101: Grant +2 on mediawiki and extensions to Rosalie Perside (WMDE).

I mean, you could just directly contact your local friendly Gerrit admin. If that admin is me, I don't really need a task, I'm happy to just act on an email or IRC message, as I did in this case. For other administrators, whether a task is needed would depend on their workflow. In Gerrit-Privilege-Requests we now have a workboard in which you can flag tasks as being ready for administrator action. That would probably be a good workflow for this project as well. But for onboarding, it's potentially slow.

Dec 4 2019, 3:39 AM · MediaWiki-Gerrit-Group-Requests

Dec 3 2019

tstarling closed T237101: Grant +2 on mediawiki and extensions to Rosalie Perside (WMDE) as Resolved.

Done. Note that the "expedited process" states that it is not necessary to file a Phabricator task. I would not recommend filing a task.

Dec 3 2019, 11:16 PM · MediaWiki-Gerrit-Group-Requests
tstarling added a comment to T239666: RESTBase requests to Parsoid/PHP that contain a "." in the title (without a /<revid> component) fail with a http 403.

VisualEditor logs the failure response from RESTBase, e.g. https://logstash.wikimedia.org/app/kibana#/doc/logstash-*/logstash-mediawiki-2019.12.03/mediawiki?id=AW7JwbdXKWrIH1QRemDK&_g=h@44136fa

Dec 3 2019, 3:24 AM · MW-1.35-notes (1.35.0-wmf.5; 2019-11-05), User-Ryasmeen, RESTBase, VisualEditor, Parsoid
tstarling added a comment to T237604: Record per-server power usage.

I've some concerns to proceed with this. In our experience the BMCs are not that stable and an excessive interaction with them seems to aggravate the situation, statistically causing more BMCs to become unresponsive and requiring a reset.
For this reason we've kept to a minimum our checks of BMCs and I'd rather not add something that query the BMC so often.

Dec 3 2019, 2:39 AM · observability

Nov 28 2019

tstarling added a comment to T239448: MMV close button fails to restore scroll in Firefox.

As I wrote on Gerrit, the proposed fix may not be ideal: delaying the scroll causes visual flicker even in browsers unaffected by the bug, and the time before scroll may need to be very long to be reliable.

Nov 28 2019, 11:15 PM · Patch-For-Review, MediaViewer
tstarling created T239448: MMV close button fails to restore scroll in Firefox.
Nov 28 2019, 10:54 PM · Patch-For-Review, MediaViewer
tstarling added a comment to T236963: Deploy version 1.10.0 of wikidiff2 to production.

keys.txt only has my 2008 and 2009 keys, since that's when I was doing MediaWiki releases.

Nov 28 2019, 2:05 AM · serviceops, Operations, wikidiff2, MediaWiki-REST-API, CPT Initiatives (Core REST API in PHP), Core Platform Team Workboards (Green)
tstarling added a comment to T236963: Deploy version 1.10.0 of wikidiff2 to production.

@tstarling is the gpg key that you used to sign that release available anywhere? https://www.mediawiki.org/keys/keys.txt still has your old ones. I'm currently not able to verify the release to update it in Debian.

Nov 28 2019, 1:55 AM · serviceops, Operations, wikidiff2, MediaWiki-REST-API, CPT Initiatives (Core REST API in PHP), Core Platform Team Workboards (Green)
tstarling added a comment to T237618: Amendments to the Gerrit Privilege policy.

I strongly disagree with the idea of forking an extension just because the sole maintainer went away. That's not how open source projects are meant to work. The open source license grants the rights to continue to work on a project. I think the MediaWiki community in general owns MediaWiki extensions and should not need permission from the original author to continue work. The idea of a "chain of trust" is the exact thing I was arguing against when I made the new Gerrit privilege policy, since I don't trust existing maintainers to properly review the bona fide status of proposed new developers.

Nov 28 2019, 1:21 AM · TechCom
tstarling added a comment to T230848: Reader gets file description.

Invalid file extension found in the path info or query string.

Nov 28 2019, 1:13 AM · Core Platform Team Workboards (User Stories), Story, CPT Initiatives (Core REST API in PHP)

Nov 26 2019

tstarling added a comment to T232563: Drop IE6 and IE7 basic compatibility and security support.

I'll reply to @AlexisJazz by private email.

Nov 26 2019, 1:10 AM · Patch-For-Review, MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), MW-1.34-notes, User-notice, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General

Nov 25 2019

tstarling added a comment to T57332: Sanitizer::checkCss blacklist can be bypassed using vertical tab (ASCII 11).

In the course of backing out these changes for T232563, I confirmed the full-width, superscript parenthesis and S-repeat attacks against IE 6 and confirmed that they do not affect IE 8.

Nov 25 2019, 1:59 AM · Security, MediaWiki-Parser

Nov 22 2019

tstarling added a comment to T157658: Factor out a backend from EditPage.

The big unsolved question here was what to do about request context access from hooks, AbuseFilter being the most intractable example. I think the answer is to just let them call RequestContext::getMain(), without any FauxRequest. Most access to RequestContext is just for the user and IP address, which is correct for all web callers. If we need to have editing from the job queue or some other CLI request, the context user can be faked as necessary. The session manager documentation suggests using SessionManager::getSessionById() for authenticated jobs.

Nov 22 2019, 5:49 AM · Core Platform Team, MediaWiki-Page-editing

Nov 21 2019

tstarling added a comment to T238849: Post switchover to Parsoid/PHP on private wikis, VE edit saves on officewiki responded with a HTTP 412.

Yes, looks correct to me. Ignoring an If-Match header is not compliant with RFC 7232: "An origin server that receives an If-Match header field MUST evaluate the condition prior to performing the method." If If-Match support is really needed for correctness, a strong ETag should be used, since the only difference between a strong and a weak ETag is that a strong ETag may pass If-Match.

Nov 21 2019, 11:44 PM · User-Ryasmeen, Patch-For-Review, Parsoid-PHP, VisualEditor

Nov 20 2019

tstarling placed T114445: [RFC] Balanced templates up for grabs.
Nov 20 2019, 10:56 PM · MediaWiki-Templates, Parsing-Team, Patch-For-Review, TechCom-RFC
tstarling closed T230492: Requesting SRE permissions to create Gerrit projects under operations/debs as Resolved.

Done.

Nov 20 2019, 12:54 AM · Gerrit-Privilege-Requests
tstarling added a comment to T236963: Deploy version 1.10.0 of wikidiff2 to production.

Should be done now.

Nov 20 2019, 12:20 AM · serviceops, Operations, wikidiff2, MediaWiki-REST-API, CPT Initiatives (Core REST API in PHP), Core Platform Team Workboards (Green)
tstarling added a comment to T236963: Deploy version 1.10.0 of wikidiff2 to production.

Never mind, I found https://www.mediawiki.org/wiki/Extension:Wikidiff2/Release_process

Nov 20 2019, 12:15 AM · serviceops, Operations, wikidiff2, MediaWiki-REST-API, CPT Initiatives (Core REST API in PHP), Core Platform Team Workboards (Green)
tstarling added a comment to T236963: Deploy version 1.10.0 of wikidiff2 to production.

I haven't made a tarball for wikidiff2 before and I can't find any documentation of how that is meant to be done. It looks like wikidiff2 is the only PHP extension that is released in this way. I assume I just do a git archive and sign it with gpg, then upload it to releases1001:/srv/org/wikimedia/releases/wikidiff2 ? There's no other procedure to follow or script to run? I don't need to be in that wikidiff2 group because I have root.

Nov 20 2019, 12:01 AM · serviceops, Operations, wikidiff2, MediaWiki-REST-API, CPT Initiatives (Core REST API in PHP), Core Platform Team Workboards (Green)

Nov 19 2019

tstarling added a comment to T238575: Wikibase test builds failing with “ERROR: 0 is not in the dispatch table”.

In getCandidateClients(), the return value ultimately comes from IDatabase::selectFieldValues(), implying that we have some wb_changes_dispatch rows where the chd_site is actually 0. I’m not sure if that’s correct.

Nov 19 2019, 5:59 AM · MW-1.35-notes (1.35.0-wmf.8; 2019-11-26), Wikidata-Campsite (Wikidata-Campsite-Iteration-∞), Wikidata

Nov 18 2019

tstarling added a comment to T230848: Reader gets file description.

Per my previous discussion with @eprodromou , the preferred transform is a thumbnail or poster which would be displayed on the image description page, or an icon thumb if there is no other thumbnail image. To do this, you will need to duplicate some of the logic from ImagePage::openShowImage(). In particular, around line 415:

Nov 18 2019, 6:05 AM · Core Platform Team Workboards (User Stories), Story, CPT Initiatives (Core REST API in PHP)
tstarling added a comment to T238197: mediawiki/core CI failure with test WANObjectCacheTest::testGetWithSetCallback.

PS1 of my logging change showed it failing due to worthRefreshPopular() returning true. Since the times are mocked, the chance of this happening should be a constant 1/825. To me, it seems like it's failing more often than that, like almost always. SamplingStatsdClientTest calls mt_srand(0), so maybe the exact right number of mt_rand() calls are done between SamplingStatsdClientTest and WANObjectCacheTest.

Nov 18 2019, 4:49 AM · MW-1.35-notes (1.35.0-wmf.14; 2020-01-07), MediaWiki-Core-Testing, Wikimedia-production-error (Shared Build Failure), ci-test-error, MediaWiki-General
tstarling closed T238378: Bot edit count endpoint is timing out as Resolved.

Deployed now. The link in the task description now returns quickly.

Nov 18 2019, 12:47 AM · MW-1.35-notes (1.35.0-wmf.8; 2019-11-26), mariadb-optimizer-bug, Core Platform Team Workboards (Green), CPT Initiatives (Core REST API in PHP), MediaWiki-REST-API
tstarling added a comment to T238378: Bot edit count endpoint is timing out.

I'm going to deploy it now.

Nov 18 2019, 12:09 AM · MW-1.35-notes (1.35.0-wmf.8; 2019-11-26), mariadb-optimizer-bug, Core Platform Team Workboards (Green), CPT Initiatives (Core REST API in PHP), MediaWiki-REST-API

Nov 17 2019

AlexisJazz awarded T232563: Drop IE6 and IE7 basic compatibility and security support a Like token.
Nov 17 2019, 7:22 AM · Patch-For-Review, MW-1.35-notes (1.35.0-wmf.20; 2020-02-18), MW-1.34-notes, User-notice, TechCom-RFC (TechCom-RFC-Closed), MediaWiki-General