tstarling (Tim Starling)Administrator
User

Projects (18)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Saturday

  • Clear sailing ahead.

User Details

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

Recent Activity

Yesterday

RandomDSdevel awarded T209565: Dry run for normalizeThrottleParameters.php a Grey Medal token.
Wed, Jan 16, 5:56 PM · User-notice, MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), Patch-For-Review, MW-1.32-release, Core Platform Team Kanban (Doing), Core Platform Team (Security, stability, performance and scalability (TEC1)), Wikimedia-maintenance-script-run, AbuseFilter
RandomDSdevel awarded T212268: Make the abusefilter-blocker user not be a sysop a Piece of Eight token.
Wed, Jan 16, 5:55 PM · AbuseFilter, User-Daimona, Patch-For-Review

Tue, Jan 15

tstarling added a comment to T40432: Uploading MS Word files doesn't work ("File extension does not match the detected MIME type of the file").

You can apply the patch and test it. ZipDirectoryReader has changed very little since I introduced it in February 2011 to fix T26230. Based on the quoted debug log snippets, the issue is that Microsoft has extended the end of central directory record, adding new fields to the end of it. When I wrote ZipDirectoryReader, I had it flag any deviation from the ZIP specification as an error, since that seemed to be the safest way to flag potentially malicious files. For example, it is possible to deviate from the spec in ways that make files visible to one ZIP library but invisible to another. But extending the EOCDR does not help an attacker in any obvious way, so this particular error is needlessly paranoid. That's why I propose removing it in my patch.

Tue, Jan 15, 5:03 AM · Patch-For-Review, Multimedia, MediaWiki-Uploading
tstarling added a comment to T40432: Uploading MS Word files doesn't work ("File extension does not match the detected MIME type of the file").

I can't recall having seen this bug before. It is the simplest thing to fix. The patch is untested but probably works. Sorry @Pavel.petrovic, I don't know why it has taken so long.

Tue, Jan 15, 3:29 AM · Patch-For-Review, Multimedia, MediaWiki-Uploading

Wed, Dec 19

tstarling added a comment to T209565: Dry run for normalizeThrottleParameters.php.

Ran it again:

Wed, Dec 19, 1:58 AM · User-notice, MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), Patch-For-Review, MW-1.32-release, Core Platform Team Kanban (Doing), Core Platform Team (Security, stability, performance and scalability (TEC1)), Wikimedia-maintenance-script-run, AbuseFilter
tstarling added a comment to T209565: Dry run for normalizeThrottleParameters.php.

Thanks for your feedback, @Stryn and @Pxos. I filed T212268 for the problem of automatically created sysop users. Please put any further discussion on that task.

Wed, Dec 19, 12:24 AM · User-notice, MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), Patch-For-Review, MW-1.32-release, Core Platform Team Kanban (Doing), Core Platform Team (Security, stability, performance and scalability (TEC1)), Wikimedia-maintenance-script-run, AbuseFilter
tstarling created T212268: Make the abusefilter-blocker user not be a sysop.
Wed, Dec 19, 12:21 AM · AbuseFilter, User-Daimona, Patch-For-Review

Dec 17 2018

tstarling added a comment to T209565: Dry run for normalizeThrottleParameters.php.

It would be convenient if the script would report all malformed throttle rows, instead of stopping on the first one. Or maybe we could think of some way automatically deal with the bad rows, since there seems to be quite a lot. For example, disabling the throttle and generating a report for admins to check later.

Dec 17 2018, 5:08 AM · User-notice, MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), Patch-For-Review, MW-1.32-release, Core Platform Team Kanban (Doing), Core Platform Team (Security, stability, performance and scalability (TEC1)), Wikimedia-maintenance-script-run, AbuseFilter

Dec 14 2018

tstarling closed T207530: Deleting pages on the English Wikipedia is very slow as Resolved.
Dec 14 2018, 5:22 AM · Performance-Team (Radar), MW-1.32-release, Operations, MediaWiki-Page-deletion
tstarling triaged T211953: LiquidThreads deletion fails due to unindexed DELETE query as High priority.
Dec 14 2018, 5:21 AM · Schema-change, Performance, MediaWiki-extensions-LiquidThreads
tstarling added a comment to T207530: Deleting pages on the English Wikipedia is very slow.

@Krinkle's test case appears to be unrelated, although it is a bug. I filed T211953 for it.

Dec 14 2018, 5:18 AM · Performance-Team (Radar), MW-1.32-release, Operations, MediaWiki-Page-deletion
tstarling created T211953: LiquidThreads deletion fails due to unindexed DELETE query.
Dec 14 2018, 5:18 AM · Schema-change, Performance, MediaWiki-extensions-LiquidThreads

Dec 11 2018

tstarling added a comment to T209981: Confirm that post-send functions work fine with mediawiki under PHP 7.

@Krinkle, by corruption, do you just mean things like aborted LinksUpdate operations as in T201482? PHP timeouts are expected to break things, the main solution should be to make things be fast enough or to increase the timeout. It seems to me that a missed LinksUpdate would not be a failure mode so severe as to be a blocker for PHP 7 deployment.

Dec 11 2018, 3:06 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (PHP7 (TEC4)), PHP 7.0 support

Dec 6 2018

tstarling added a comment to T206152: Set up request profiling for PHP 7.

Please install tideways, but it should only be enabled in php.ini on the debug servers, since it will cause a performance degradation even without being used. Also, please install php-mongodb, the PHP driver for MongoDB, since this is recommended for XHGui saving on PHP 7. I am working on the mediawiki-config patch which will use these extensions.

Dec 6 2018, 11:50 PM · Performance-Team, MediaWiki-Debug-Logger, Operations

Dec 4 2018

Michael awarded T176370: Migrate to PHP 7 in WMF production a Love token.
Dec 4 2018, 12:17 PM · Core Platform Team Kanban (Doing), Core Platform Team (PHP7 (TEC4)), Patch-For-Review, TechCom-RFC (TechCom-Approved), User-ArielGlenn, HHVM, Operations
RandomDSdevel awarded T71237: Use of SVG nominal size in MMV a Haypence token.
Dec 4 2018, 2:48 AM · User-notice, MW-1.33-notes (1.33.0-wmf.6; 2018-11-27), Patch-For-Review, Google-Code-in-2018, Multimedia, good first bug, MediaWiki-extensions-MultimediaViewer
tstarling added a comment to T210567: Create a way to intentionally trigger fatal errors in MediaWiki.
  • create a new directory under operations/mediawiki-config/ where this script, and potentially any other such script can reside. This way, it will be easier to restrict access from the normal virtual host and to create an ad-hoc one for such requests.
Dec 4 2018, 2:29 AM · serviceops, User-Joe, Core Platform Team Kanban (Done with CPT), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), PHP 7.2 support

Dec 3 2018

MichaelSchoenitzer_WMDE awarded T71237: Use of SVG nominal size in MMV a Love token.
Dec 3 2018, 8:00 PM · User-notice, MW-1.33-notes (1.33.0-wmf.6; 2018-11-27), Patch-For-Review, Google-Code-in-2018, Multimedia, good first bug, MediaWiki-extensions-MultimediaViewer
CKoerner_WMF awarded T71237: Use of SVG nominal size in MMV a Love token.
Dec 3 2018, 4:19 PM · User-notice, MW-1.33-notes (1.33.0-wmf.6; 2018-11-27), Patch-For-Review, Google-Code-in-2018, Multimedia, good first bug, MediaWiki-extensions-MultimediaViewer

Dec 2 2018

tstarling added a comment to T210567: Create a way to intentionally trigger fatal errors in MediaWiki.

Maybe I'm missing something, but how do you intentionally cause PHP to segfault? Shouldn't any code that triggers a segfault be a PHP bug that should/would be reported upstream?

Dec 2 2018, 7:56 AM · serviceops, User-Joe, Core Platform Team Kanban (Done with CPT), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), PHP 7.2 support

Nov 30 2018

jcrespo awarded T176370: Migrate to PHP 7 in WMF production a Love token.
Nov 30 2018, 3:21 PM · Core Platform Team Kanban (Doing), Core Platform Team (PHP7 (TEC4)), Patch-For-Review, TechCom-RFC (TechCom-Approved), User-ArielGlenn, HHVM, Operations
tstarling added a comment to T205059: Excimer: new profiler for PHP.

Also, the zend_interrupt_function hook is only called after the internal function returns to the VM, at which point it is not in the stack anymore. At best you would only see functions that re-enter the VM, like array_map(). So it would be misleading.

Nov 30 2018, 4:29 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Nov 28 2018

tstarling added a comment to T205059: Excimer: new profiler for PHP.

@Joehoyle: internal functions were just skipped for simplicity. We configure xhprof to skip them, so we presumably don't need that feature for production. Finding the function name for an internal function requires a few more lines of code. So I guess it depends on how much you want them.

Nov 28 2018, 10:05 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Nov 26 2018

tstarling added a comment to T150826: Remove unblockself right on wikimedia wikis (but allow blocked admins to block their blocker).

I think we should remove unblockself on all Wikimedia wikis, and see if it helps with vandalism by compromised admin accounts like T210192. In the case of Killiondude, the compromised admin account was blocked after 2 minutes, but unblocked itself twice and thus was able to carry on vandalising for an additional 2 minutes prior to a steward-imposed global lock.

Nov 26 2018, 3:19 AM · MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), MediaWiki-User-management, User-notice, Community-consensus-needed, Wikimedia-Site-requests

Nov 21 2018

tstarling updated the task description for T54921: Database tables to be dropped on Wikimedia wikis and other WMF databases (tracking).
Nov 21 2018, 5:22 AM · Epic, DBA, Tracking
tstarling added a comment to T54921: Database tables to be dropped on Wikimedia wikis and other WMF databases (tracking).

@tstarling As a background task for myself I am slowly cleaning up all the tables listed here to be removed, so they don't pile up much.

I was checking this comment

bv2011_edits.ibd	E:SecurePoll	@tstarling	Yes		
bv2015_edits.ibd	E:SecurePoll	@tstarling	Yes

Those can be removed but they do not have a task for them, if you double confirm they can be killed, I will create a task for those and link them here.

Nov 21 2018, 5:21 AM · Epic, DBA, Tracking
tstarling added a comment to T147146: Text of many early edits missing to Massachusetts article on the English Wikipedia.

Deletion of articles with CGZ compression was not supposed to be possible after r6640 (a7371b7228aeb4891c3352f783591a169bce0704), which should have been active at the time of this deletion. I don't know why/how the deletion succeeded.

Nov 21 2018, 3:26 AM · Wikimedia-General-or-Unknown, MediaWiki-History-or-Diffs

Nov 20 2018

tstarling added a comment to T199332: PHP Warning: count(): Parameter must be an array or an object that implements Countable in Serializer.php.

OK, but there would have been a notice as well, and probably broken output, regardless of PHP version.

Nov 20 2018, 11:52 AM · Core Platform Team Kanban (Blocked Externally), Core Platform Team (Security, stability, performance and scalability (TEC1)), RemexHtml
tstarling added a comment to T147146: Text of many early edits missing to Massachusetts article on the English Wikipedia.

As I noted on the community wishlist page, IA has a dump from December 23, 2004. I think it may be our best bet for the majority of these revisions.

Nov 20 2018, 4:54 AM · Wikimedia-General-or-Unknown, MediaWiki-History-or-Diffs
tstarling triaged T147146: Text of many early edits missing to Massachusetts article on the English Wikipedia as Low priority.

There is some regularity for ealier versions: the history page shows that every 20th version is accessible (exactly 19 versions lost between accessible ones).
And this regularity looks strange: was there some database partition between 20 database files or so? (And 19 of them being lost?)

Nov 20 2018, 4:33 AM · Wikimedia-General-or-Unknown, MediaWiki-History-or-Diffs
tstarling created P7827 T147146 revision and text tables.
Nov 20 2018, 4:13 AM
tstarling triaged T199332: PHP Warning: count(): Parameter must be an array or an object that implements Countable in Serializer.php as Low priority.

Removing PHP 7 projects since it does not appear to be a PHP 7 migration issue, it's a RemexHtml issue which was observed on PHP 7.

Nov 20 2018, 2:58 AM · Core Platform Team Kanban (Blocked Externally), Core Platform Team (Security, stability, performance and scalability (TEC1)), RemexHtml
tstarling claimed T209565: Dry run for normalizeThrottleParameters.php.
Nov 20 2018, 1:32 AM · User-notice, MW-1.33-notes (1.33.0-wmf.8; 2018-12-11), Patch-For-Review, MW-1.32-release, Core Platform Team Kanban (Doing), Core Platform Team (Security, stability, performance and scalability (TEC1)), Wikimedia-maintenance-script-run, AbuseFilter

Nov 19 2018

tstarling updated subscribers of T209892: SecurePoll is not compatible with GPG 2.1+.
Nov 19 2018, 10:51 PM · MediaWiki-extensions-SecurePoll
tstarling created T209892: SecurePoll is not compatible with GPG 2.1+.
Nov 19 2018, 10:49 PM · MediaWiki-extensions-SecurePoll
tstarling closed T209802: Cannot vote on votewiki as Resolved.

One thing that was confusing me was why timeout in limit.sh wasnt killing the process eventually. But after reading docs i guess that is because it didnt have a -k flag

Nov 19 2018, 10:31 PM · Patch-For-Review, Operations, Wikimedia-production-error, MediaWiki-extensions-SecurePoll
tstarling added a comment to T209802: Cannot vote on votewiki.

Installing the package gnupg1 and using

Nov 19 2018, 12:34 PM · Patch-For-Review, Operations, Wikimedia-production-error, MediaWiki-extensions-SecurePoll

Nov 15 2018

Bawolff awarded T209556: In AuthManager, avoid encrypted storage of the password in the session a Like token.
Nov 15 2018, 10:20 AM · Security, MediaWiki-Authentication-and-authorization
tstarling created T209556: In AuthManager, avoid encrypted storage of the password in the session.
Nov 15 2018, 3:15 AM · Security, MediaWiki-Authentication-and-authorization

Nov 14 2018

tstarling added a comment to T204617: Identify a suitable PEG.js replacement in PHP.

I've just been looking at the phpegjs code. Performance will be extremely sensitive to character class matching. Ideally, that should be inlined, instead of split out to a runtime library function peg_char_class_test(). If the class is purely ASCII, then it should be possible to consume text without doing UTF-8 parsing. For example, Parsoid has:

Nov 14 2018, 2:23 AM · Parsoid-PHP
tstarling created T209448: Profiler subclass for excimer.
Nov 14 2018, 1:37 AM · Excimer

Nov 11 2018

Liuxinyu970226 awarded T46667: Review and merge chinese-collation branch into master, configure Chinese wikis to use it a Manufacturing Defect? token.
Nov 11 2018, 8:17 AM · Chinese-Sites, MediaWiki-Internationalization, Wikimedia-Site-requests
Liuxinyu970226 awarded T185607: Provide an inline discussion feature, "DiscussThis" a Like token.
Nov 11 2018, 8:14 AM · Growth-Team, VisualEditor-MediaWiki-Plugins, StructuredDiscussions, Collaboration-Team-Triage, VisualEditor, TechCom-RFC
Liuxinyu970226 awarded T108664: Provide an interactive edit conflict resolution tool a Like token.
Nov 11 2018, 7:06 AM · Epic, Contributors-Team, MediaWiki-Page-editing
Liuxinyu970226 awarded T161671: Compacting the revision table a Like token.
Nov 11 2018, 6:48 AM · Core Platform Team ( Code Health (TEC13)), Core Platform Team Backlog (Epic), Multi-Content-Revisions, Epic, Patch-For-Review, MediaWiki-Database, Schema-change

Nov 8 2018

tstarling added a comment to T199332: PHP Warning: count(): Parameter must be an array or an object that implements Countable in Serializer.php.

I need to dig into PHP semantics. Is it possible you might be suppressing the notice on $parent->children because of the =& instead of plain =? (line 246)

Nov 8 2018, 11:20 PM · Core Platform Team Kanban (Blocked Externally), Core Platform Team (Security, stability, performance and scalability (TEC1)), RemexHtml
tstarling added a comment to T193352: Update librsvg to ≥2.42.3.

paravoid explained to me that librsvg 2.44 was uploaded to sid on November 3. There was some consternation about the ports which are still missing, but it looks like the change will not be reverted. This upload to sid was the thing that was previously blocked by lack of architecture support.

Nov 8 2018, 10:54 PM · Operations, Upstream, Wikimedia-SVG-rendering
tstarling added a comment to T199332: PHP Warning: count(): Parameter must be an array or an object that implements Countable in Serializer.php.

I'm guessing the "non-existent elements" also have a funny $this->nodes[$self->parentId]->children ?

Nov 8 2018, 3:59 AM · Core Platform Team Kanban (Blocked Externally), Core Platform Team (Security, stability, performance and scalability (TEC1)), RemexHtml
tstarling added a comment to T205059: Excimer: new profiler for PHP.

@Krinkle asked whether we can do function counts in excimer, to provide feature parity with xhprof. I think the answer is no, not without a PHP patch. The relevant hook (zend_execute_ex) is a true global, so it needs to be installed unconditionally, on MINIT. When this hook is overridden, the VM switches into a slow mode which uses the C stack for internal function calls, instead of the internal stack. For example, in the DO_FCALL handler:

Nov 8 2018, 3:37 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Nov 7 2018

tstarling added a comment to T208909: [Bug] Update old nonuniformly distributed page_random values.

AND rev_timestamp < '20050601000000'

Nov 7 2018, 11:41 AM · MW-1.33-notes (1.33.0-wmf.3; 2018-11-06), Patch-For-Review, Readers-Web-Backlog (Readers-Web-Kanbanana-Board-2018-19-Q2), DBA, MediaWiki-General-or-Unknown
tstarling added a comment to T208909: [Bug] Update old nonuniformly distributed page_random values.

wfRandom currently uses:

$max = mt_getrandmax() + 1;
$rand = number_format( ( mt_rand() * $max + mt_rand() ) / $max / $max, 12, '.', '' );

This should work, though it seems odd to me. This seems much simpler, and less likely to run into issues with degrading precision in high IEEE float values:

$max = mt_getrandmax();
$rand =  number_format( ( mt_rand() + mt_rand()  ) / ( 2*$max ), 12, '.', '' );
Nov 7 2018, 10:54 AM · MW-1.33-notes (1.33.0-wmf.3; 2018-11-06), Patch-For-Review, Readers-Web-Backlog (Readers-Web-Kanbanana-Board-2018-19-Q2), DBA, MediaWiki-General-or-Unknown
tstarling added a comment to T208909: [Bug] Update old nonuniformly distributed page_random values.

It looks like the bug started in 2a03980093b5168a834bbf65e820c5400e29b21b (October 2004), you see Will changed the random number function to be "more random", by multiplying two random numbers together, producing a distribution heavily skewed towards zero. It was fixed in May 2005 in 133b12c9dc98e4f1abe5a1ccb3138612f3837176 and 4d556548eb8f2d020d99b813758fc50706a1821a.

Nov 7 2018, 12:42 AM · MW-1.33-notes (1.33.0-wmf.3; 2018-11-06), Patch-For-Review, Readers-Web-Backlog (Readers-Web-Kanbanana-Board-2018-19-Q2), DBA, MediaWiki-General-or-Unknown
tstarling added a comment to T208909: [Bug] Update old nonuniformly distributed page_random values.

The upper limit is around page_id 2200000, i.e. July 2005, so we should look for a fix in MW core at around that time.

Nov 7 2018, 12:32 AM · MW-1.33-notes (1.33.0-wmf.3; 2018-11-06), Patch-For-Review, Readers-Web-Backlog (Readers-Web-Kanbanana-Board-2018-19-Q2), DBA, MediaWiki-General-or-Unknown
tstarling added a comment to T208909: [Bug] Update old nonuniformly distributed page_random values.

cur_random values were reset with RAND() by Brion in May 2003, as described at the top of https://en.wikipedia.org/wiki/Wikipedia:Village_pump/Archive_E . But this is not the problem since page_id<1200000 does not show the skewed distribution, meaning that it started in approximately November 2004.

Nov 7 2018, 12:27 AM · MW-1.33-notes (1.33.0-wmf.3; 2018-11-06), Patch-For-Review, Readers-Web-Backlog (Readers-Web-Kanbanana-Board-2018-19-Q2), DBA, MediaWiki-General-or-Unknown

Nov 6 2018

tstarling closed T201184: CirrusSearch jobs sometimes fail with "RemexHtml\Tokenizer\Tokenizer: pcre.backtrack_limit exhausted" as Resolved.

Should be fixed now, feel free to undelete the page and try it.

Nov 6 2018, 3:53 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (Security, stability, performance and scalability (TEC1)), Patch-For-Review, Discovery-Search (Current work), CirrusSearch, Wikimedia-production-error, RemexHtml
tstarling added a comment to T201184: CirrusSearch jobs sometimes fail with "RemexHtml\Tokenizer\Tokenizer: pcre.backtrack_limit exhausted".

The reason I'm not concerned about increasing this limit is because the effect on CPU time is O(N). It just limits the number of characters examined by PCRE, and PCRE takes a very small amount of time for each character. The reason it exists is because for certain regexes, short input strings could cause an exponential amount of backtracking. Setting the backtrack limit to some constant factor times the input size avoids this problem, bounding execution time to be approximately linear. Settings the backtrack limit to less than the input size is pointless, it implies that the goal is sublinear performance, i.e. better than O(N), which is not possible.

Nov 6 2018, 3:19 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (Security, stability, performance and scalability (TEC1)), Patch-For-Review, Discovery-Search (Current work), CirrusSearch, Wikimedia-production-error, RemexHtml
tstarling added a comment to T201184: CirrusSearch jobs sometimes fail with "RemexHtml\Tokenizer\Tokenizer: pcre.backtrack_limit exhausted".

The usual way to fix exhaustion of pcre.backtrack_limit is to just increase the limit. I documented on line 1449 of Remex's Tokenizer.php that it needs to be at least twice the length of the input string. The current limit is 1MB, which I thought would be enough, but the input to RemexHtml for this test case is 1.4MB. I confirmed with eval.php that increasing pcre.backtrack_limit to 2MB fixes the issue for this test case. But let's make it 5MB to be on the safe side.

Nov 6 2018, 2:55 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (Security, stability, performance and scalability (TEC1)), Patch-For-Review, Discovery-Search (Current work), CirrusSearch, Wikimedia-production-error, RemexHtml

Nov 5 2018

tstarling added a comment to T208660: angle brackets on email in luasandbox causes build failures on Windows.

Apologies. I was wrong. It does not work.

The command line parser seems to be a little flakey.

C:\php-sdk\phpdev\vc14\x64\php-7.0.27-src>ECHO HI '<' THERE
The system cannot find the file specified.

C:\php-sdk\phpdev\vc14\x64\php-7.0.27-src>ECHO HI "'<'" THERE
HI "'<'" THERE

C:\php-sdk\phpdev\vc14\x64\php-7.0.27-src>ECHO HI "<" THERE
HI "<" THERE

C:\php-sdk\phpdev\vc14\x64\php-7.0.27-src>ECHO HI "\"<\"" THERE
The system cannot find the path specified.

C:\php-sdk\phpdev\vc14\x64\php-7.0.27-src>ECHO HI "\\"<\\"" THERE
The filename, directory name, or volume label syntax is incorrect.
Nov 5 2018, 10:42 PM · Patch-For-Review, LuaSandbox
tstarling added a comment to T207497: Excimer: Expose event_count in ExcimerLogEntry.

Do you think "event count" is the right name? It's correct if you take "event" to mean a hardware event, like in perf record, but it's not correct if an event is an invocation of an event handler.

Nov 5 2018, 9:23 AM · Core Platform Team Kanban (Done with CPT), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), Excimer
tstarling added a comment to T208660: angle brackets on email in luasandbox causes build failures on Windows.

It's unclear to me how this code works, since neither normal command lines nor NMAKE files appear to support backslash-escaped quotes, but I downloaded a DLL and it seemed to have plausible things in it, in the "details" tab of the file properties. In Windows command lines, the quotes need to be at the start and end of each argument to work, that's probably why it's redirecting. So it's a bit of a stab in the dark, but @MarkAHershberger , could you please try...

Nov 5 2018, 5:52 AM · Patch-For-Review, LuaSandbox
tstarling added a comment to T208660: angle brackets on email in luasandbox causes build failures on Windows.

The reason it's got angle brackets is because that's the format used by Pyrus: https://github.com/pyrus/Pyrus_Developer/blob/master/src/Pyrus/Developer/PackageFile/Commands/MakePEAR2.php#L384

Nov 5 2018, 5:06 AM · Patch-For-Review, LuaSandbox
tstarling updated subscribers of T193352: Update librsvg to ≥2.42.3.

We cannot easily upgrade librsvg on our Debian servers from 2.40 to 2.42 as 2.42.x requires Rust. See https://buildd.debian.org/status/package.php?p=rustc&suite=unstable and the discussion in https://mail.gnome.org/archives/desktop-devel-list/2017-December/msg00072.html

Nov 5 2018, 2:28 AM · Operations, Upstream, Wikimedia-SVG-rendering

Nov 4 2018

D3r1ck01 awarded T145952: Reduce password reset spam a Like token.
Nov 4 2018, 10:42 AM · MediaWiki-User-login-and-signup, MediaWiki-Email

Oct 31 2018

tstarling triaged T207974: Export with full history creates broken XML (missing end tag </page>) as High priority.
Oct 31 2018, 1:37 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (Security, stability, performance and scalability (TEC1)), MW-1.33-notes (1.33.0-wmf.2; 2018-10-30), Patch-For-Review, Regression, MediaWiki-Export-or-Import

Oct 26 2018

tstarling added a comment to T206411: Empty JSON keys are replaced with "_empty_".

The best idea I have so far is to document this behavior in the function comment, and recommend that callers pass the $assoc parameter as true, to receive an array rather than an object. Arrays can have an empty string as a key, so they don't suffer from the same language issue as an empty property.

If no one has any better ideas, I'm happy to refactor affected callers. Most already seem to request an array rather than an object, so the scope of that change isn't too intimidating.

Oct 26 2018, 7:03 PM · Core Platform Team Kanban (Done with CPT), MW-1.33-notes (1.33.0-wmf.4; 2018-11-13), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), MediaWiki-ContentHandler, HHVM, PHP 7.0 support, MediaWiki-General-or-Unknown

Oct 25 2018

tstarling updated the task description for T206084: Wikimedia Technical Conference 2018 Session - Architecting core: concepts.
Oct 25 2018, 7:25 AM · Wikimedia-Technical-Conference-2018
tstarling added a comment to T206084: Wikimedia Technical Conference 2018 Session - Architecting core: concepts.

Existing examples:

  • Page
    • Has revisions
    • Must it have a title?
  • Actions: edit/view, rollback/undo, delete/undelete, move
Oct 25 2018, 7:24 AM · Wikimedia-Technical-Conference-2018

Oct 24 2018

tstarling closed T207530: Deleting pages on the English Wikipedia is very slow as Resolved.

This should be fixed now

Oct 24 2018, 10:38 PM · Performance-Team (Radar), MW-1.32-release, Operations, MediaWiki-Page-deletion
tstarling updated the task description for T206070: Wikimedia Technical Conference 2018 Session - Mapping our data and content pipeline.
Oct 24 2018, 5:02 PM · Wikimedia-Technical-Conference-2018
tstarling added a comment to T207530: Deleting pages on the English Wikipedia is very slow.

There's no index on ar_page_id, it needs to select by namespace and title

Oct 24 2018, 12:17 AM · Performance-Team (Radar), MW-1.32-release, Operations, MediaWiki-Page-deletion
tstarling added a comment to T207530: Deleting pages on the English Wikipedia is very slow.

I logged a deletion on en.wikipedia.org using X-Wikimedia-Debug, you can see it in mwlog1001.eqiad.wmnet:/srv/mw-log/XWikimediaDebug.log . You can see that the row count query was indeed very slow. The query was:

Oct 24 2018, 12:11 AM · Performance-Team (Radar), MW-1.32-release, Operations, MediaWiki-Page-deletion

Oct 23 2018

tstarling added a comment to T207628: stubs dumps run much slower after move from bufferied queries to batches.

I see the patch does both things at the same time (index choice and batch size). I'd be interested to see a benchmark of the stub dump with different batch sizes but with the table scanning issue fixed. It should only take a couple of milliseconds to fetch 1000 rows. Having the benchmark will help us design similar software in future.

Oct 23 2018, 11:29 PM · User-Daniel, MW-1.32-notes, MW-1.33-notes (1.33.0-wmf.1; 2018-10-23), Patch-For-Review, Dumps-Generation

Oct 19 2018

kostajh awarded T166010: The Great Namespaceization and Reorg a Love token.
Oct 19 2018, 4:19 PM · Core Platform Team ( Code Health (TEC13)), Core Platform Team Backlog (Epic), Epic, TechCom-RFC
tstarling closed T201482: LinksUpdate fails, spams exception logs, whenever replication lag on any server rises above 10s as Resolved.
Oct 19 2018, 2:34 AM · Core Platform Team Kanban (Done with CPT), Core Platform Team (Security, stability, performance and scalability (TEC1)), MW-1.32-notes (WMF-deploy-2018-09-04 (1.32.0-wmf.20)), Patch-For-Review, Performance-Team (Radar), MediaWiki-Database

Oct 17 2018

tstarling moved T191231: RFC: Abstract schemas and schema changes from Backlog to Under discussion on the TechCom-RFC board.
Oct 17 2018, 8:25 PM · Core Platform Team ( Code Health (TEC13)), Core Platform Team Backlog (Epic), TechCom-RFC, SQLite, Oracle Database, MSSQL, PostgreSQL, MediaWiki-Database, Epic

Oct 10 2018

tstarling created T206586: Write LuaSandbox DocBook manual.
Oct 10 2018, 1:34 AM · Core Platform Team Kanban (Done with CPT), Patch-For-Review, Documentation, Core Platform Team, LuaSandbox

Sep 27 2018

tstarling added a comment to T205059: Excimer: new profiler for PHP.

I think there should also be ExcimerProfiler::flush(), which detaches the log and returns it, similar to what happens on an implicit flush. The theory is that ExcimerProfiler::stop() will leave the log still attached to the profiler, so this:

Sep 27 2018, 4:06 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Sep 26 2018

kostajh awarded T176370: Migrate to PHP 7 in WMF production a Love token.
Sep 26 2018, 6:42 PM · Core Platform Team Kanban (Doing), Core Platform Team (PHP7 (TEC4)), Patch-For-Review, TechCom-RFC (TechCom-Approved), User-ArielGlenn, HHVM, Operations

Sep 25 2018

tstarling closed T97192: HHVM request timeouts not working; support lowering the API request timeout per request as Resolved.
Sep 25 2018, 1:07 PM · User-notice, Performance-Team (Radar), Patch-For-Review, User-Joe, Operations, Services (watching), Wikimedia-Incident, HHVM, Availability, MediaWiki-API
tstarling closed T97192: HHVM request timeouts not working; support lowering the API request timeout per request, a subtask of T97204: RFC: Request timeouts and retries, as Resolved.
Sep 25 2018, 1:07 PM · Services (watching), Wikimedia-Incident, TechCom-RFC (TechCom-Approved), Proposal, Operations, RESTBase, Availability, Performance, Incident-20150423-Commons, Service-Architecture
tstarling created T205370: PHP 7 object layout/allocation error in LuaSandbox.
Sep 25 2018, 6:37 AM · Core-Platform-Team-Old (CPT-Q1-Jul-Sep-2018), PHP 7.0 support, LuaSandbox

Sep 24 2018

tstarling added a comment to T205059: Excimer: new profiler for PHP.

I'm planning the timer backend component. An interesting wrinkle is ZTS support. As in LuaSandbox, we can have an integer ID (sival_int) with our timer struct stored in a hashtable, with a lock protecting it from concurrent updates. Instead of setting a hook in a lua_State, we need to store &EG(vm_interrupt) in the timer struct, since in PHP 7.0+ it is declared with __thread, so taking the address of it is the only way to transport it to the handler thread. Then when the zend_interrupt_function() hook is called, the hook function will need to find all the ExcimerTimer/ExcimerProfiler instances associated with the local thread that have pending events -- this was not a problem with LuaSandbox which only had one "timer set" per lua_State.

Sep 24 2018, 11:35 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support
tstarling added a comment to T186302: Promote LuaSandbox as its own project, separate from Scribunto.

I started the process of adding LuaSandbox to PECL: https://marc.info/?l=pecl-dev&m=153776610925078&w=2

Sep 24 2018, 5:26 AM · Patch-For-Review, LuaSandbox, Librarization, MediaWiki-extensions-Scribunto
tstarling added a comment to T205059: Excimer: new profiler for PHP.

The main reason to use a flush callback is for real-time analysis of overload events. The problem we've had in the past is that if profiling data is only logged at the end of the request, the requests that are timing out are invisible. If we log once every 10 seconds, we can get a realistic snapshot of what the cluster is doing.

Sep 24 2018, 3:22 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Sep 22 2018

Krinkle awarded T205059: Excimer: new profiler for PHP a Orange Medal token.
Sep 22 2018, 11:50 PM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Sep 21 2018

tstarling added a subtask for T176916: Set up sampling profiler for PHP 7 (alternative to HHVM Xenon): T205059: Excimer: new profiler for PHP.
Sep 21 2018, 6:53 AM · Core Platform Team Kanban (Doing), PHP 7.1 support, Core Platform Team (PHP7 (TEC4)), Performance-Team
tstarling added a parent task for T205059: Excimer: new profiler for PHP: T176916: Set up sampling profiler for PHP 7 (alternative to HHVM Xenon).
Sep 21 2018, 6:53 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support
tstarling created T205059: Excimer: new profiler for PHP.
Sep 21 2018, 6:44 AM · serviceops, Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Performance-Team (Radar), PHP 7.1 support

Sep 19 2018

tstarling committed rMSPC9f85eb972148: Add man page (authored by Legoktm).
Add man page
Sep 19 2018, 6:29 AM

Sep 12 2018

tstarling added a comment to T151291: "User::loadFromSession called before the end of Setup.php" warning due to AbuseFilter.

For createaccount/autocreateaccount filtering, shouldn't the log performer always be anonymous? It doesn't make sense to use a non-existent user, half created, as the performer. That logic shouldn't depend on User::isSafeToLoad(), which is implemented in a hackish way, it should just depend on $action.

Sep 12 2018, 11:23 PM · Core Platform Team (Security, stability, performance and scalability (TEC1)), Core Platform Team Backlog (Later), User-Daimona, AbuseFilter, Wikimedia-production-error
tstarling moved T151291: "User::loadFromSession called before the end of Setup.php" warning due to AbuseFilter from Inbox to Backlog on the Core-Platform-Team-Old board.
Sep 12 2018, 1:38 AM · Core Platform Team (Security, stability, performance and scalability (TEC1)), Core Platform Team Backlog (Later), User-Daimona, AbuseFilter, Wikimedia-production-error
tstarling moved T78802: Localization Cache Redo from Inbox to Backlog on the Core-Platform-Team-Old board.
Sep 12 2018, 1:35 AM · Core Platform Team ( Code Health (TEC13)), Core Platform Team Backlog (Epic), Release-Engineering-Team, Deployments, MediaWiki-extensions-LocalisationUpdate, I18n, Epic
tstarling moved T158360: RFC: Reevaluate LocalisationUpdate extension for WMF from Inbox to Backlog on the Core-Platform-Team-Old board.
Sep 12 2018, 1:35 AM · Core Platform Team ( Code Health (TEC13)), Core Platform Team Backlog (Later), Release-Engineering-Team, Deployments, TechCom-RFC, I18n
tstarling moved T203356: Sort out semantics of causeAgent and triggeringUser/triggeringRevisionId from Inbox to Watching on the Core-Platform-Team-Old board.
Sep 12 2018, 1:20 AM · Core Platform Team Backlog (Watching / External), Technical-Debt, MediaWiki-Documentation
tstarling removed a project from T203929: cpjobqueue should log a warning when there is an HTTP error: Core-Platform-Team-Old.
Sep 12 2018, 1:16 AM · Services (doing), ChangeProp
tstarling moved T203935: Support Save-Data header from Inbox to Watching on the Core-Platform-Team-Old board.
Sep 12 2018, 1:15 AM · Core Platform Team Backlog (Watching / External), TimedMediaHandler, MediaWiki-Parser, Reading-Infrastructure-Team-Backlog, Readers-Web-Backlog (Tracking), MobileFrontend
tstarling moved T204072: parser tests should reset service locator from Inbox to Backlog on the Core-Platform-Team-Old board.
Sep 12 2018, 1:13 AM · Multi-Content-Revisions (MCR-SDC File Caption Support - phase 2), MW-1.32-notes (WMF-deploy-2018-09-18 (1.32.0-wmf.22)), Core-Platform-Team-Old, MediaWiki-Core-Tests

Sep 11 2018

tstarling added a comment to T203929: cpjobqueue should log a warning when there is an HTTP error.

It's very mysterious. My best guess is that "PHP fatal error: unlink(1): No such file or directory" was actually a suppressed warning, and was later misinterpreted as a fatal. There's definitely no entries in fatal.log with "unlink" in the message.

Sep 11 2018, 6:25 AM · Services (doing), ChangeProp
tstarling added a comment to T203929: cpjobqueue should log a warning when there is an HTTP error.

It was webVideoTranscodePrioritized. This is the JobExecutor log line for one of the affected jobs:

Sep 11 2018, 5:46 AM · Services (doing), ChangeProp
tstarling updated the task description for T204010: Timeouts in wikidiff2.
Sep 11 2018, 3:08 AM · Wikimedia-production-error, wikidiff2