Page MenuHomePhabricator

tstarling (Tim Starling)
UserAdministrator

Projects (28)

Today

  • No visible events.

Tomorrow

  • No visible events.

Saturday

  • No visible events.

User Details

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

Recent Activity

Tue, Jan 13

tstarling closed T413860: wikimedia/request-timeout's listed homepage in composer.json doesn't exist as Resolved.

I created the page.

Tue, Jan 13, 5:42 AM · Composer, MediaWiki-libs-RequestTimeout
tstarling added a comment to T411834: Scribunto external dependencies - roadmap and requirements.

Maybe, a solution could be to extend Special:TemplateSandbox to allow reading in local code using the File System API.

Tue, Jan 13, 12:07 AM · Scribunto

Mon, Jan 12

tstarling added a comment to T412225: 504 Gateway Timeout: httpReason\":\"upstreamrequesttimeout in action api.

The time felt, off so I timed it, and it is off (15 vs 60 seconds)...

time curl -as 'https://zh.wikipedia.org/w/rest.php/v1/revision/90601530/html'
{"httpCode":504,"httpReason":"upstream request timeout"}

real    0m15.305s
user    0m0.086s
sys     0m0.024s
Mon, Jan 12, 5:11 AM · MW-Interfaces-Team, Wikimedia Enterprise, MediaWiki-Action-API

Wed, Dec 17

tstarling updated the task description for T412337: Produnto schema.
Wed, Dec 17, 6:08 AM · Scribunto
tstarling added a comment to T412337: Produnto schema.

I updated the schema to make all tables be shared, and also for the new purging algorithm at T412473.

Wed, Dec 17, 6:01 AM · Scribunto
tstarling updated the task description for T412337: Produnto schema.
Wed, Dec 17, 5:59 AM · Scribunto
tstarling updated the task description for T412473: Produnto purging.
Wed, Dec 17, 5:53 AM · Scribunto
tstarling added a comment to T412337: Produnto schema.

It should simplify purging (T412473) if all tables are shared, since there is a need for global locking. You can check to make sure a package hasn't been touched recently before purging it, but ultimately you need a locked view of that condition.

Wed, Dec 17, 2:21 AM · Scribunto

Dec 15 2025

tstarling closed T400022: 2025 Commons SEO review, a subtask of T54647: MediaWiki images and image pages are not being indexed properly by external search engines, as Resolved.
Dec 15 2025, 11:23 PM · Community-Tech (Sea Lion Squad), Commons, SEO, MediaWiki-File-management, MediaWiki-General
tstarling closed T400022: 2025 Commons SEO review as Resolved.

This is done.

Dec 15 2025, 11:23 PM · Commons, Community-Tech (Sea Lion Squad), SEO

Dec 14 2025

tstarling added a comment to T362937: Expose page view info to lua.

So that the data can be used alongside other parser capabilities, like Scribunto's SVG support to generate graphs. It could also be used with Charts, which I now see has a ticket for this use-case: T393500, which would be solved by this patch

Dec 14 2025, 10:59 PM · Patch-For-Review, Scribunto, PageViewInfo
tstarling added a comment to T412337: Produnto schema.

We could put the deployments in a shared table, with wiki ID columns.

Dec 14 2025, 10:43 PM · Scribunto
tstarling added a comment to T412337: Produnto schema.

I haven't had time to review the proposed schema in depth (I'm in an offsite until next week) but to get the discussion starting, the number of tables per-wiki is still too many[1]. I wonder if the table with one row only can be merged into something else. I don't think these tables will grow much so I'd lean towards de-normalizing as much as possible.

[1] in s3, MariaDB process needs to open many many files because of combination of many wikis and many tables and each table creating two files. Adding three tables to every wiki adds around 6000 more files to be opened by the process which impacts the performance the database.

Dec 14 2025, 10:33 PM · Scribunto

Dec 12 2025

tstarling updated the task description for T412337: Produnto schema.
Dec 12 2025, 1:50 AM · Scribunto
tstarling updated the task description for T412473: Produnto purging.
Dec 12 2025, 1:47 AM · Scribunto
tstarling renamed T412323: Produnto deployment state updater from Package deployment state updater to Produnto deployment state updater.
Dec 12 2025, 1:47 AM · MediaWiki-General, Scribunto
tstarling updated the task description for T412337: Produnto schema.
Dec 12 2025, 1:15 AM · Scribunto
tstarling renamed T412337: Produnto schema from Packages schema to Produnto schema.
Dec 12 2025, 1:15 AM · Scribunto
tstarling created T412473: Produnto purging.
Dec 12 2025, 1:11 AM · Scribunto
tstarling updated the task description for T411834: Scribunto external dependencies - roadmap and requirements.
Dec 12 2025, 12:10 AM · Scribunto

Dec 11 2025

tstarling updated the task description for T412320: Package fetcher.
Dec 11 2025, 11:37 PM · MediaWiki-General, Scribunto
tstarling updated the task description for T412337: Produnto schema.
Dec 11 2025, 6:50 AM · Scribunto
tstarling updated the task description for T412320: Package fetcher.
Dec 11 2025, 6:46 AM · MediaWiki-General, Scribunto
tstarling created T412337: Produnto schema.
Dec 11 2025, 6:33 AM · Scribunto
tstarling renamed T412323: Produnto deployment state updater from Package deployment state update to Package deployment state updater.
Dec 11 2025, 2:51 AM · MediaWiki-General, Scribunto
tstarling updated the task description for T412181: Scribunto external package loader.
Dec 11 2025, 1:19 AM · Scribunto
tstarling created T412323: Produnto deployment state updater.
Dec 11 2025, 1:07 AM · MediaWiki-General, Scribunto
tstarling created T412320: Package fetcher.
Dec 11 2025, 12:25 AM · MediaWiki-General, Scribunto

Dec 10 2025

tstarling created T412317: Package deployment dashboard.
Dec 10 2025, 11:54 PM · MediaWiki-General, Scribunto
tstarling added a comment to T362937: Expose page view info to lua.

Why get the parser involved? Why not load from the pageviews API on the client side?

Dec 10 2025, 11:18 PM · Patch-For-Review, Scribunto, PageViewInfo
tstarling created T412181: Scribunto external package loader.
Dec 10 2025, 6:39 AM · Scribunto

Dec 8 2025

tstarling added a comment to T412033: StandaloneInterpreterTest failure fwrite(): Write of 80 bytes failed with errno=32 Broken pipe.

It's reproducible by just putting sleep(1) after the proc_terminate().

Dec 8 2025, 11:09 PM · ci-test-error, Scribunto
tstarling added a comment to T410527: "mw.title.newBatch(...)" is unreasonably memory-hoggy.

Reportedly LUA can use 50 MiO RAM, quite generous. But if 7'000 pages hog 50 MiO, then every single page consumes ca 7 KiO. Does it really need so much? I could try to call "mw.title.newBatch(...)" in batches of 25 pages, and copy the relevant info from bloated title objects into a LUA table of booleans.

Dec 8 2025, 2:21 AM · Performance Issue, Scribunto

Dec 5 2025

tstarling updated the task description for T411834: Scribunto external dependencies - roadmap and requirements.
Dec 5 2025, 1:32 AM · Scribunto
tstarling created T411834: Scribunto external dependencies - roadmap and requirements.
Dec 5 2025, 1:12 AM · Scribunto

Dec 3 2025

tstarling closed T279736: "Preview page with this template" should only accept/suggest pages that transclude the template as Resolved.
Dec 3 2025, 11:29 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox
tstarling updated the task description for T279736: "Preview page with this template" should only accept/suggest pages that transclude the template.
Dec 3 2025, 11:28 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox
tstarling added a comment to T279736: "Preview page with this template" should only accept/suggest pages that transclude the template.

The "accept" part is resolved, but the "suggest" part is not.

Dec 3 2025, 11:24 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox
tstarling closed T355763: mw.text.jsonDecode() incorrectly interprets number strings as integers as Declined.

I can't read PHP. ChatGPT says: In this part of the code, if $isEncoding is true and the key $k is a string containing only digits (checked using ctype_digit), it converts the string to an integer using (int)$k. This is done to handle cases where JSON decoding may result in numeric keys represented as strings. The function then checks if the converted integer key forms a sequential sequence.

Is this intended? Is this a bug? If this is intended, can you add an option to allow no conversion like mw.loadJsonData("file.json", digit_conversion=False).

Dec 3 2025, 3:27 AM · Scribunto

Dec 2 2025

tstarling removed a project from T395368: PHP Warning: Attempt to read property "fields" on null: LuaSandbox.
Dec 2 2025, 4:32 AM · MW-1.45-notes (1.45.0-wmf.3; 2025-05-27), Patch-For-Review, JsonConfig, Scribunto, Cite, Wikimedia-production-error
tstarling closed T395368: PHP Warning: Attempt to read property "fields" on null as Resolved.

This appears to be fixed.

Dec 2 2025, 4:31 AM · MW-1.45-notes (1.45.0-wmf.3; 2025-05-27), Patch-For-Review, JsonConfig, Scribunto, Cite, Wikimedia-production-error
tstarling closed T344001: Scribunto: increase C stack size above 200 as Declined.

It's a last resort measure due to the major problems we've been having at the English Wiktionary with memory limits.

Dec 2 2025, 4:25 AM · Scribunto

Nov 28 2025

tstarling added a comment to T260838: Error 1213: Deadlock found when trying to get lock; try restarting transaction Function: MediaWiki\Block\DatabaseBlockStore::acquireTarget.

15 of these in the last week. I think we can solve this using locks.

Nov 28 2025, 4:43 AM · Patch-For-Review, Product Safety and Integrity (Essential Work Sprint (Dec 15th - Jan 9th)), Essential-Work, CheckUser, MediaWiki-Blocks, Wikimedia-production-error
tstarling closed T409843: DivisionByZeroError: Division by zero (in ChangesListQuery.php) as Resolved.
Nov 28 2025, 4:27 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Moderator-Tools-Team (Kanban), MediaWiki-Recent-changes, Wikimedia-production-error
tstarling added a comment to T396168: Commons videos not indexed by Google.

Shall we make a new subtickets for the JSON-LD part of this, so that this ticket is fully wrapped up ?
This part is now split off into T411108: Add VideoObject JSON-LD to video File pages

Nov 28 2025, 3:25 AM · User-notice-archive, Structured-Data-Backlog, WikibaseMediaInfo, TimedMediaHandler, MediaWiki-File-management, Commons, SEO
tstarling added a comment to T408894: Watchlist label RC filtering backend.

Error 1055: 'mediawiki_wiki1_46.recentchanges_actor.actor_user' isn't in GROUP BY

Nov 28 2025, 3:17 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T400023: Deploy sitemaps API for Commons.

The sitemap has only been submitted direct to Google, it's not in robots.txt and it hasn't been submitted to Bing. SRE are afraid that adding it to robots.txt will cause too much crawler traffic.

Nov 28 2025, 3:02 AM · MW-1.45-notes (1.45.0-wmf.12; 2025-07-29), Commons, Community-Tech (Sea Lion Squad), SEO
tstarling closed T279736: "Preview page with this template" should only accept/suggest pages that transclude the template as Resolved.
Nov 28 2025, 1:28 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox
tstarling added a comment to T279736: "Preview page with this template" should only accept/suggest pages that transclude the template.

This task looks like it might have adjusted the vertical spacing unintentionally; the preview line was more attached to the form below it than the form above it before today's deploy.

Nov 28 2025, 12:39 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox

Nov 26 2025

tstarling updated subscribers of T411063: MW (on k8s) should not have write access to source or configuration files.

There are also two world-writable directories: /etc/wmerrors and /etc/php/8.3/fpm/env. They have the potential for escalation and need to be fixed. I haven't fully isolated this but it seems to be related to helmfile. The deployment chart declares files in these directories, and the directories are created with incorrect permissions.

Nov 26 2025, 12:31 AM · Release-Engineering-Team, MW-on-K8s

Nov 25 2025

tstarling created T411063: MW (on k8s) should not have write access to source or configuration files.
Nov 25 2025, 11:38 PM · Release-Engineering-Team, MW-on-K8s

Nov 24 2025

tstarling closed T407087: Refactor WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo and ApiQueryRecentChanges as Resolved.
Nov 24 2025, 4:34 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), Watchlist-Labels
tstarling added a comment to T410694: CDB replacement for localization cache.

Awesome

Nov 24 2025, 4:11 AM · MediaWiki-Internationalization

Nov 18 2025

tstarling added a comment to T279736: "Preview page with this template" should only accept/suggest pages that transclude the template.

Wishathon project plan

Nov 18 2025, 1:19 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox
tstarling added a comment to T279736: "Preview page with this template" should only accept/suggest pages that transclude the template.

There are two implementations of this feature: one for core EditPage and one for VE. Both use TitleInputWidget, which I think will need to be subclassed. Compare MWTemplateTitleInputWidget in VE. We could override getApiParams to add prop=templates, tltemplates=....

Nov 18 2025, 12:43 AM · MW-1.46-notes (1.46.0-wmf.4; 2025-11-25), Wikimedia Wishathon, MediaWiki-extensions-TemplateSandbox

Nov 11 2025

tstarling moved T408897: Watchlist label member store backend from Ready for Dev to In Development on the Community-Tech (Fox Squad) board.
Nov 11 2025, 5:07 AM · Community-Tech (Fox Squad), Watchlist-Labels
tstarling claimed T408897: Watchlist label member store backend.
Nov 11 2025, 1:36 AM · Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T407552: Expose the revert risk language agnostic prediction boolean via the RecentChanges API.

You can already use rcprop=oresscores to serve the linked use case. Example API response:

Nov 11 2025, 12:19 AM · PersonalDashboard, MediaWiki-Recent-changes, Moderator-Tools-Team

Nov 9 2025

tstarling updated subscribers of T407127: [WE5.2.5 Milestone] Limit returned namespaces in default sitemap response.

@Joe do you have any comments on the above? I think you were involved in requirements development for this task. I would like to get a more nuanced view of what kinds of namespaces should be excluded and why.

Nov 9 2025, 11:20 PM · MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), OKR-Work, MW-Interfaces-Team (MWI-Roadmap)

Nov 7 2025

tstarling added a comment to T407127: [WE5.2.5 Milestone] Limit returned namespaces in default sitemap response.

$wgExtraNamespaces has 1705 namespaces, total for all wikis. Of those, 246 are in $wgNamespaceRobotPolicies and are presumably for internal community use.

Nov 7 2025, 5:33 AM · MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), OKR-Work, MW-Interfaces-Team (MWI-Roadmap)
tstarling added a comment to T99740: Use static php array files for l10n cache at WMF (instead of CDB).

From the point of view of image size and memory usage, it might be better to merge all the languages into a single file, and combine identical values by having a numerically indexed global value array. Maybe also abbreviate the message keys by mapping them to integers. We can tolerate a little bit of indirection at runtime.

Nov 7 2025, 3:50 AM · Patch-For-Review, Wikimedia-Performance-recommendation, Release-Engineering-Team (Radar), Scap, MediaWiki-Internationalization

Nov 5 2025

tstarling updated subscribers of T408052: PHP Warning: Trying to access array offset on null (via GrowthExperiments listTaskCounts).

The point of the script is to report mediawiki.GrowthExperiments.tasktype_count.* metrics. I see this code was updated as recently as December 2024 by @Sgs and @Michael as part of T374050, although I can't find a dashboard in Grafana where these metrics are shown.

Nov 5 2025, 3:18 AM · Growth-Team (FY2025-26 Q2 Sprint 5), Growth Team Maintenance, Essential-Work, GrowthExperiments, Wikimedia-production-error

Nov 3 2025

tstarling reopened T407087: Refactor WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo and ApiQueryRecentChanges as "Open".

Still some cleanup to do

Nov 3 2025, 5:58 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), Watchlist-Labels
tstarling closed T403798: Slow watchlist queries due to large and expensive temporary table construction, a subtask of T400696: FY25-26 WE1.4.1 RecentChanges database performance improvements, as Resolved.
Nov 3 2025, 5:30 AM · OKR-Work, Moderator-Tools-Team, Data-Persistence, Epic, MediaWiki-Recent-changes
tstarling closed T403798: Slow watchlist queries due to large and expensive temporary table construction as Resolved.

An average over the past 3 days, compared to a week earlier, suggests this intervention reduced slow queries (in terms of total duration per day) by 59% for Watchlist and 77% for RecentChangesLinked.

Nov 3 2025, 5:30 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes

Nov 2 2025

tstarling claimed T409020: ChangesListSpecialPage incorrect highlight for mw-changeslist-last.
Nov 2 2025, 11:04 PM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), MW-1.46-notes (1.46.0-wmf.1; 2025-11-05), MediaWiki-Recent-changes, Moderator-Tools-Team
tstarling created T409020: ChangesListSpecialPage incorrect highlight for mw-changeslist-last.
Nov 2 2025, 10:55 PM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), MW-1.46-notes (1.46.0-wmf.1; 2025-11-05), MediaWiki-Recent-changes, Moderator-Tools-Team

Oct 31 2025

tstarling added a comment to T403798: Slow watchlist queries due to large and expensive temporary table construction.

Watchlist slow query count -- deployment was at 23:35

Oct 31 2025, 10:15 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes
tstarling created T408897: Watchlist label member store backend.
Oct 31 2025, 7:18 AM · Community-Tech (Fox Squad), Watchlist-Labels
tstarling created T408895: Watchlist label store class.
Oct 31 2025, 6:59 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), Watchlist-Labels
tstarling created T408894: Watchlist label RC filtering backend.
Oct 31 2025, 6:40 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T403798: Slow watchlist queries due to large and expensive temporary table construction.

I made a Grafana dashboard for the relevant metrics: https://grafana.wikimedia.org/goto/jL2bYqRDg?orgId=1

Oct 31 2025, 1:28 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes

Oct 30 2025

tstarling added a comment to T307738: Actor name can not be empty for 0 and 3215898.

InvalidArgumentException is the wrong exception class for validating data from the database, that is for programmer errors. It should have a special subclass of RuntimeException so that it can be safely caught by all callers. I see RevisionStore is catching this exception at lines 1622 and 1699, but not at lines 1752 or 3236. An exception should either be caught or not, there's no rationale for conditionally catching it.

Oct 30 2025, 10:01 PM · MediaWiki-Platform-Team (Radar), MediaWiki-Engineering, Wikimedia-database-issue (Bad data), User-brennen, MW-1.39-notes (1.39.0-wmf.12; 2022-05-16), Wikimedia-production-error, MediaWiki-User-management
tstarling updated subscribers of T408052: PHP Warning: Trying to access array offset on null (via GrowthExperiments listTaskCounts).

There is a cron job running listTaskCounts.php --topictype ores which makes a TopicDecorator with $useOresTopics=true, so TopicDecorator::loadTopics() returns the list of topics from ArticleTopicFeature::TERMS_TO_LABELS. The array access on lines 146, 147, 149 and 152 could be properly guarded, but I wonder if the script is still doing a useful thing after refactoring in this area e.g. T393872.

Oct 30 2025, 9:53 PM · Growth-Team (FY2025-26 Q2 Sprint 5), Growth Team Maintenance, Essential-Work, GrowthExperiments, Wikimedia-production-error
tstarling added a comment to T407127: [WE5.2.5 Milestone] Limit returned namespaces in default sitemap response.

Could you clarify what you mean about the meta robots tag?

Oct 30 2025, 6:07 AM · MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), OKR-Work, MW-Interfaces-Team (MWI-Roadmap)
tstarling added a comment to T310267: Allow large image previews by adding max image preview tag.

Did this actually do anything? The linked documentation seems to imply that max-image-preview: standard is the default, so just sending that tag on every page should have no effect.

Oct 30 2025, 3:22 AM · Web-Team FY2022-23 Q3 Sprint 1, MW-1.40-notes (1.40.0-wmf.5; 2022-10-10), MediaWiki-extensions-WikimediaEvents, SEO

Oct 29 2025

tstarling added a comment to T404416: ChangesListQuery class and related ChangesListSpecialPage refactoring.

Translate filter:

Oct 29 2025, 12:17 AM · MW-1.45-notes, MW-1.46-notes (1.46.0-wmf.1; 2025-11-05), Moderator-Tools-Team (Kanban), Data-Persistence, MediaWiki-Recent-changes

Oct 28 2025

tstarling closed T407087: Refactor WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo and ApiQueryRecentChanges as Resolved.
Oct 28 2025, 10:54 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), Watchlist-Labels
tstarling created T408525: PHP Deprecated: Deprecated cross-wiki access to MediaWiki\Revision\RevisionRecord. Expected: 'testwikidatawiki', Actual: the local wiki. Pass expected $wikiId. [Called from MediaWiki\Revision\RevisionRecord::getId].
Oct 28 2025, 9:02 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Wikidata-Omega, MW-1.46-notes (1.46.0-wmf.1; 2025-11-05), Wikidata, Wikimedia-production-error

Oct 27 2025

tstarling added a comment to T407087: Refactor WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo and ApiQueryRecentChanges.

The first is when you have negative namespace values, I'm not seeing the results being filtered by that namespace and I'm seeing a warning returned:

Screenshot 2025-10-27 at 11.15.18 AM.png (908×2 px, 235 KB)

This happens for both Special and Media namespaces.

Oct 27 2025, 10:17 PM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), Watchlist-Labels
tstarling added a comment to T406843: Create watchlist labels database tables.

On db2202 I created the cross-join table watchlist_label_member_T406843 using the definition from the task description. Then I populated it with some rows as follows:

Oct 27 2025, 12:59 AM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels

Oct 24 2025

tstarling updated the task description for T406843: Create watchlist labels database tables.
Oct 24 2025, 5:42 AM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels
tstarling updated the task description for T406843: Create watchlist labels database tables.
Oct 24 2025, 5:40 AM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T407087: Refactor WatchedItemQueryService::getWatchedItemsWithRecentChangeInfo and ApiQueryRecentChanges.

I was testing the API endpoint locally and I did find one minor issue where bot edits were coming back from the API even with the !bot flag set:

Oct 24 2025, 4:09 AM · MW-1.46-notes (1.46.0-wmf.3; 2025-11-19), Community-Tech (Fox Squad), MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), Watchlist-Labels
tstarling added a comment to T406843: Create watchlist labels database tables.

Oh, that makes sense. So basically it's adding a wlm_list column to watchlist?

Oct 24 2025, 1:40 AM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T406843: Create watchlist labels database tables.

Has there been any discussion of being able to expire labels? That seems like a new feature that no one's asking for.

Oct 24 2025, 1:17 AM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels
tstarling added a comment to T403798: Slow watchlist queries due to large and expensive temporary table construction.

For the other special pages, we can only expect a performance advantage when a table other than recentchanges is first in the join order. Most Special:RecentChanges slow queries are due to ORES, which is not suitable for placing first in the join order and thus there is no advantage. I checked the EXPLAIN for a few other RC queries, but they were all putting recentchanges first.

Oct 24 2025, 1:04 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes

Oct 23 2025

tstarling added a comment to T403798: Slow watchlist queries due to large and expensive temporary table construction.

I tested the watchlist in the task description by calling SpecialWatchlist::getRows() from eval.php. The first time with no partitioning, the main query took 17.5 seconds. The second time, after warmup, it took 3.4 seconds. With partitioning, there were two queries for a total query time of 0.19 seconds.

Oct 23 2025, 11:34 PM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes
tstarling added a comment to T406843: Create watchlist labels database tables.

@tstarling just want to make sure I understand - the main argument for "copy" instead of "cross-join" is to build the label into the indices to make filtering faster, is that correct?

Oct 23 2025, 8:02 PM · Data-Persistence (work done), MW-1.46-notes (1.46.0-wmf.2; 2025-11-12), Community-Tech (Fox Squad), Watchlist-Labels
tstarling closed T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous as Resolved.
Oct 23 2025, 10:08 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team, MediaWiki-Recent-changes, Wikimedia-production-error
tstarling closed T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous, a subtask of T405680: 1.45.0-wmf.24 deployment blockers, as Resolved.
Oct 23 2025, 10:08 AM · Release-Engineering-Team (Priority Backlog 📥), Essential-Work, Release, Train Deployments
tstarling triaged T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous as Unbreak Now! priority.
Oct 23 2025, 8:46 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team, MediaWiki-Recent-changes, Wikimedia-production-error
tstarling added a parent task for T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous: T405680: 1.45.0-wmf.24 deployment blockers.
Oct 23 2025, 8:46 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team, MediaWiki-Recent-changes, Wikimedia-production-error
tstarling added a subtask for T405680: 1.45.0-wmf.24 deployment blockers: T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous.
Oct 23 2025, 8:46 AM · Release-Engineering-Team (Priority Backlog 📥), Essential-Work, Release, Train Deployments
tstarling added a comment to T408057: Wikimedia\Rdbms\DBQueryError when filtering edits by tags.

cc @tstarling FYI, potentially related to (or is) T408040?

Oct 23 2025, 8:12 AM · Moderator-Tools-Team, MediaWiki-Change-tagging, MediaWiki-Recent-changes
tstarling closed T403142: recentchanges.rc_source registry of known values as Resolved.

This is done. However, I could not reproduce any performance improvement. The database does actually optimise a not-equals condition, so the index usage doesn't change.

Oct 23 2025, 6:33 AM · Moderator-Tools-Team (Kanban), Patch-For-Review, MW-1.45-notes (1.45.0-wmf.19; 2025-09-16), Data-Persistence, MediaWiki-Recent-changes
tstarling closed T403142: recentchanges.rc_source registry of known values, a subtask of T400696: FY25-26 WE1.4.1 RecentChanges database performance improvements, as Resolved.
Oct 23 2025, 6:33 AM · OKR-Work, Moderator-Tools-Team, Data-Persistence, Epic, MediaWiki-Recent-changes
tstarling added a comment to T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous.

Now seeing

Error 1054 from MediaWiki\RecentChanges\ChangesListQuery\ChangeTagsCondition::isDenseTagFilter, Unknown column 'changetagdisplay.ct_rc_id' in 'WHERE' EXPLAIN SELECT  *  FROM `change_tag`    WHERE (changetagdisplay.ct_rc_id >= 7363925) AND changetagdisplay.ct_tag_id = 31   db1159
Oct 23 2025, 6:14 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team, MediaWiki-Recent-changes, Wikimedia-production-error
tstarling added a comment to T403798: Slow watchlist queries due to large and expensive temporary table construction.

testwiki with days=30, limit=20:

Oct 23 2025, 2:56 AM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team (Kanban), MediaWiki-Watchlist, Data-Persistence, MediaWiki-Recent-changes

Oct 22 2025

tstarling updated the task description for T408040: Wikimedia\Rdbms\DBQueryError: Error 1052: Column 'ct_tag_id' in WHERE is ambiguous.
Oct 22 2025, 11:12 PM · MW-1.45-notes (1.45.0-wmf.25; 2025-10-28), Moderator-Tools-Team, MediaWiki-Recent-changes, Wikimedia-production-error