tstarling (Tim Starling)Administrator
User

Projects (18)

Today

  • Clear sailing ahead.

Tomorrow

  • Clear sailing ahead.

Thursday

  • Clear sailing ahead.

User Details

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

Recent Activity

Thu, Dec 6

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.

Thu, Dec 6, 11:50 PM · Patch-For-Review, Performance-Team, MediaWiki-Debug-Logger, Operations

Tue, Dec 4

Michael awarded T176370: Migrate to PHP 7 in WMF production a Love token.
Tue, Dec 4, 12:17 PM · Patch-For-Review, Core Platform Team Backlog (Watching / External), TechCom-RFC (TechCom-Approved), User-ArielGlenn, HHVM, Operations
RandomDSdevel awarded T71237: Use of SVG nominal size in MMV a Haypence token.
Tue, Dec 4, 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, goodfirstbug, 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.
Tue, Dec 4, 2:29 AM · Core Platform Team Kanban (Doing), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), PHP 7.2 support

Mon, Dec 3

MichaelSchoenitzer_WMDE awarded T71237: Use of SVG nominal size in MMV a Love token.
Mon, Dec 3, 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, goodfirstbug, MediaWiki-extensions-MultimediaViewer
CKoerner_WMF awarded T71237: Use of SVG nominal size in MMV a Love token.
Mon, Dec 3, 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, goodfirstbug, MediaWiki-extensions-MultimediaViewer

Sun, Dec 2

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?

Sun, Dec 2, 7:56 AM · Core Platform Team Kanban (Doing), Patch-For-Review, Core Platform Team (PHP7 (TEC4)), PHP 7.2 support

Fri, Nov 30

jcrespo awarded T176370: Migrate to PHP 7 in WMF production a Love token.
Fri, Nov 30, 3:21 PM · Patch-For-Review, Core Platform Team Backlog (Watching / External), 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.

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

Wed, Nov 28

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.

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

Mon, Nov 26

tstarling added a comment to T150826: Remove unblockself right on wikimedia wikis.

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.

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

Wed, Nov 21

tstarling updated the task description for T54921: Database tables to be dropped on Wikimedia wikis and other WMF databases (tracking).
Wed, Nov 21, 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.

Wed, Nov 21, 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.

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

Tue, Nov 20

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.

Tue, Nov 20, 11:52 AM · Core Platform Team Kanban, 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.

Tue, Nov 20, 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?)

Tue, Nov 20, 4:33 AM · Wikimedia-General-or-Unknown, MediaWiki-History-or-Diffs
tstarling created P7827 T147146 revision and text tables.
Tue, Nov 20, 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.

Tue, Nov 20, 2:58 AM · Core Platform Team Kanban, RemexHtml
tstarling claimed T209565: Dry run for normalizeThrottleParameters.php.
Tue, Nov 20, 1:32 AM · 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

Mon, Nov 19

tstarling updated subscribers of T209892: SecurePoll is not compatible with GPG 2.1+.
Mon, Nov 19, 10:51 PM · MediaWiki-extensions-SecurePoll
tstarling created T209892: SecurePoll is not compatible with GPG 2.1+.
Mon, Nov 19, 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

Mon, Nov 19, 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

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

Thu, Nov 15

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

Wed, Nov 14

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:

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

Sun, Nov 11

Liuxinyu970226 awarded T46667: Review and merge chinese-collation branch into master, configure Chinese wikis to use it a Manufacturing Defect? token.
Sun, Nov 11, 8:17 AM · Chinese-Sites, MediaWiki-Internationalization, Wikimedia-Site-requests
Liuxinyu970226 awarded T185607: Provide an inline discussion feature, "DiscussThis" a Like token.
Sun, Nov 11, 8:14 AM · Growth-Team, VisualEditor-MediaWiki-Plugins, Collaboration-Team-Triage, StructuredDiscussions, VisualEditor, TechCom-RFC
Liuxinyu970226 awarded T108664: Provide an interactive edit conflict resolution tool a Like token.
Sun, Nov 11, 7:06 AM · Epic, Contributors-Team, MediaWiki-Page-editing
Liuxinyu970226 awarded T161671: Compacting the revision table a Like token.
Sun, Nov 11, 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, 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, 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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 · Patch-For-Review, Core Platform Team Kanban (Doing), 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-notes, MW-1.33-notes (1.33.0-wmf.2; 2018-10-30), MW-1.32-release, Patch-For-Review, 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-notes, MW-1.33-notes (1.33.0-wmf.2; 2018-10-30), MW-1.32-release, Patch-For-Review, 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-notes, MW-1.33-notes (1.33.0-wmf.2; 2018-10-30), MW-1.32-release, Patch-For-Review, 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 · MW-1.32-notes, MW-1.32-release, 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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 · Patch-For-Review, Core Platform Team Backlog (Watching / External), 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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 · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, Performance-Team (Radar), PHP 7.1 support
tstarling created T205059: Excimer: new profiler for PHP.
Sep 21 2018, 6:44 AM · Core Platform Team (PHP7 (TEC4)), Excimer, Core Platform Team Kanban (Doing), Patch-For-Review, 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
tstarling added a comment to T181454: Port wikidiff2 to a memory-safe language.

I would be interested in those logs, can you point me to them?

Sep 11 2018, 1:16 AM · MediaWiki-History-or-Diffs, wikidiff2
tstarling added a comment to T204010: Timeouts in wikidiff2.

You can find the logs by going to https://logstash.wikimedia.org, selecting "Dev Tools" and entering the query

Sep 11 2018, 1:16 AM · Wikimedia-production-error, wikidiff2
tstarling created T204010: Timeouts in wikidiff2.
Sep 11 2018, 1:10 AM · Wikimedia-production-error, wikidiff2

Sep 10 2018

tstarling added a comment to T181454: Port wikidiff2 to a memory-safe language.

I'm not especially concerned about wikidiff2 since it's written in a defensive way and has mostly been reviewed for security. We are passing user input to much more horrifying C code, like exif which has the worst pointer arithmetic tricks I have ever seen and has been the subject of multiple security vulnerabilities.

Sep 10 2018, 8:31 AM · MediaWiki-History-or-Diffs, wikidiff2
tstarling updated subscribers of T203930: EchoDiscussionParser is slow, causes timeouts.

The diff in question has a large number of diff ops, but only one section. So for every diff op, getSectionStartIndex() and getSectionEndIndex() have to run a regex match on almost every line in the page, looking for headings. I think a better algorithm would be to have a cache giving the section start index for each line. If a line is not in the cache, then do the preg_match() on the current line, and if it is not a section header, repeat for the previous line with a new cache fetch. And do the same for getSectionEndIndex() looking forwards.

Sep 10 2018, 5:29 AM · MW-1.33-notes (1.33.0-wmf.4; 2018-11-13), Patch-For-Review, Performance-Team (Radar), Growth-Team, Notifications
tstarling created T203930: EchoDiscussionParser is slow, causes timeouts.
Sep 10 2018, 4:57 AM · MW-1.33-notes (1.33.0-wmf.4; 2018-11-13), Patch-For-Review, Performance-Team (Radar), Growth-Team, Notifications
tstarling added projects to T203929: cpjobqueue should log a warning when there is an HTTP error: Core-Platform-Team-Old, Services.
Sep 10 2018, 2:58 AM · Services (doing), ChangeProp
tstarling created T203929: cpjobqueue should log a warning when there is an HTTP error.
Sep 10 2018, 2:57 AM · Services (doing), ChangeProp

Sep 7 2018

tstarling committed rMSPC07a9f0fef273: Improve test comments (authored by tstarling).
Improve test comments
Sep 7 2018, 7:04 AM
tstarling committed rMSPC05de76ad0043: Improve test comments (authored by tstarling).
Improve test comments
Sep 7 2018, 7:04 AM

Sep 6 2018

tstarling reopened T97192: HHVM request timeouts not working; support lowering the API request timeout per request as "Open".

It's not fixed, or has regressed. I noticed this today due to T203628 and confirmed it by placing a simple infinite loop script in mwdebug1002's /w directory.

Sep 6 2018, 7:17 AM · User-notice, Performance-Team (Radar), Patch-For-Review, User-Joe, Operations, Services (watching), Wikimedia-Incident, HHVM, Availability, MediaWiki-API
tstarling reopened T97192: HHVM request timeouts not working; support lowering the API request timeout per request, a subtask of T97204: RFC: Request timeouts and retries, as Open.
Sep 6 2018, 7:17 AM · Services (watching), Wikimedia-Incident, TechCom-RFC (TechCom-Approved), Proposal, Operations, RESTBase, Availability, Performance, Incident-20150423-Commons, Service-Architecture
tstarling awarded T190111: VirtualHost for mod_status breaks debugging Apache/MediaWiki from localhost a Cookie token.
Sep 6 2018, 5:26 AM · Performance-Team (Radar), Wikimedia-Apache-configuration, Operations