Page MenuHomePhabricator
Search Advanced Search
Use the application-specific Advanced Search for better results and additional search criteria: Tasks, Commits. (More information)
    • Task
    The previous tasks T397420 and T397422 entailed building a "proposal" file of proposed bulk changes to the wiki: - Repair historic redirects to Flow boards for threads where there is an appropriate flow board - Re-enable LQT on pages which have associated threads so that they are no longer "lost" Build a tool to execute these changes. - [x] Ensure user credentials are in the environment, not the codebase - [x] Be idempotent: do not modify a page whose contents are already as expected - [x] Be safe: do not modify a page whose latest revision is not the expected one - [x] Log pages whose latest revision was not as expected - [x] Ensure `flood` right is active to avoid spamming [Special:RecentChanges](https://pt.wikibooks.org/wiki/Especial:Mudan%C3%A7as_recentes) - [x] Ask @Trizek-WMF to inform community - [ ] Wait until community has been informed - Execute: - [ ] Fix redirects - [ ] Enable LQT on boards where it was auto-disabled
    • Task
    During various migration efforts in 2015/2016, a number of talk pages have the string `{{#useliquidthreads:0}}` added in order to disable LQT, but still have LQT threads associated. This has the effect of making those talk pages invisible. - [x] Create a file that lists the changes necessary to re-enable LQT - List the page title/ID, the contents to replace with, and the expected current revision ID - [x] Create a file (or paste here, if short) of LQT threads which do not have a valid parent talk page {F62391591} {F62391594}
    • Task
    Due to a partially-completed migration in 2015 and subsequent remediation, a number of LQT Threads have historic redirects to existing Flow topics which have since been patched out. There may be several historic redirects, and not all of them point to valid Flow topics. - [X] Create a file that lists the changes necessary to restore these historic links - List the page title/ID, the contents to replace with, and the expected current revision ID - [x] Create a list of Threads which have historic redirects to more than one existing Flow topic - [x] Validate that the current revision and the target revision were created by `Flow talk page manager` {F62401174}
    • Task
    The `historical_thread` table is not references by any code since {97fb40c70e2e53d8e0be5a1e0b3c6ecf62452d27}. It should be dropped from the schema.
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.45.0-wmf.1 * trace.id: `9c0dc76c-c38e-41e1-8e9e-ffb2dedf16ee` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-05-12T11:19:16.150Z',to:'2025-05-13T12:41:07.164Z'))&_a=(query:(query_string:(query:'reqId:%229c0dc76c-c38e-41e1-8e9e-ffb2dedf16ee%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Deprecated: Use of MediaWiki\Xml\Xml::input was deprecated in MediaWiki 1.42. [Called from MediaWiki\Xml\Xml::inputLabelSep] ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/xml/Xml.php#459 | /srv/mediawiki/php-1.45.0-wmf.1/includes/xml/Xml.php(459) ]] | | #0 | [internal function] | MediaWiki\Exception\MWExceptionHandler::handleError(int, string, string, string) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/debug/MWDebug.php#386 | /srv/mediawiki/php-1.45.0-wmf.1/includes/debug/MWDebug.php(386) ]] | trigger_error(string, int) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/debug/MWDebug.php#357 | /srv/mediawiki/php-1.45.0-wmf.1/includes/debug/MWDebug.php(357) ]] | MediaWiki\Debug\MWDebug::sendRawDeprecated(string, bool, string) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/debug/MWDebug.php#238 | /srv/mediawiki/php-1.45.0-wmf.1/includes/debug/MWDebug.php(238) ]] | MediaWiki\Debug\MWDebug::deprecatedMsg(string, string, string, int) | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/GlobalFunctions.php#782 | /srv/mediawiki/php-1.45.0-wmf.1/includes/GlobalFunctions.php(782) ]] | MediaWiki\Debug\MWDebug::deprecated(string, string, string, int) | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/xml/Xml.php#310 | /srv/mediawiki/php-1.45.0-wmf.1/includes/xml/Xml.php(310) ]] | wfDeprecated(string, string) | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/xml/Xml.php#459 | /srv/mediawiki/php-1.45.0-wmf.1/includes/xml/Xml.php(459) ]] | MediaWiki\Xml\Xml::input(string, int, string, array) | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/xml/Xml.php#437 | /srv/mediawiki/php-1.45.0-wmf.1/includes/xml/Xml.php(437) ]] | MediaWiki\Xml\Xml::inputLabelSep(string, string, string, int, string, array) | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtView.php#960 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtView.php(960) ]] | MediaWiki\Xml\Xml::inputLabel(string, string, string, int, string, array) | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtView.php#797 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtView.php(797) ]] | LqtView->getSubjectEditor(string, string) | #10 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtView.php#1581 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtView.php(1581) ]] | LqtView->showPostEditingForm(Thread) | #11 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtView.php#1853 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtView.php(1853) ]] | LqtView->showThreadBody(Thread) | #12 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtView.php#2201 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtView.php(2201) ]] | LqtView->showSingleThread(Thread) | #13 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/Pages/ThreadPermalinkView.php#221 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/Pages/ThreadPermalinkView.php(221) ]] | LqtView->showThread(Thread, int, int, array) | #14 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtDispatch.php#114 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtDispatch.php(114) ]] | ThreadPermalinkView->show() | #15 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/LqtDispatch.php#234 | /srv/mediawiki/php-1.45.0-wmf.1/extensions/LiquidThreads/includes/LqtDispatch.php(234) ]] | LqtDispatch::threadPermalinkMain(MediaWiki\Output\OutputPage, MediaWiki\Page\Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest) | #16 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/HookContainer/HookContainer.php#155 | /srv/mediawiki/php-1.45.0-wmf.1/includes/HookContainer/HookContainer.php(155) ]] | LqtDispatch::tryPage(MediaWiki\Output\OutputPage, MediaWiki\Page\Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) | #17 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/HookContainer/HookRunner.php#2600 | /srv/mediawiki/php-1.45.0-wmf.1/includes/HookContainer/HookRunner.php(2600) ]] | MediaWiki\HookContainer\HookContainer->run(string, array) | #18 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/actions/ActionEntryPoint.php#692 | /srv/mediawiki/php-1.45.0-wmf.1/includes/actions/ActionEntryPoint.php(692) ]] | MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(MediaWiki\Output\OutputPage, MediaWiki\Page\Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) | #19 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/actions/ActionEntryPoint.php#505 | /srv/mediawiki/php-1.45.0-wmf.1/includes/actions/ActionEntryPoint.php(505) ]] | MediaWiki\Actions\ActionEntryPoint->performAction(MediaWiki\Page\Article, MediaWiki\Title\Title) | #20 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/actions/ActionEntryPoint.php#143 | /srv/mediawiki/php-1.45.0-wmf.1/includes/actions/ActionEntryPoint.php(143) ]] | MediaWiki\Actions\ActionEntryPoint->performRequest() | #21 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/includes/MediaWikiEntryPoint.php#198 | /srv/mediawiki/php-1.45.0-wmf.1/includes/MediaWikiEntryPoint.php(198) ]] | MediaWiki\Actions\ActionEntryPoint->execute() | #22 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.45.0-wmf.1/index.php#58 | /srv/mediawiki/php-1.45.0-wmf.1/index.php(58) ]] | MediaWiki\MediaWikiEntryPoint->run() | #23 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/index.php#3 | /srv/mediawiki/w/index.php(3) ]] | require(string) | #24 | {main} | ==== Notes ==== Started after deploying 1.45.0-wmf.1 to group0. Volume is tiny as of this writing. Surfaced by https://gerrit.wikimedia.org/r/c/mediawiki/core/+/1141084, which was merged as part of T341775. The offending code is https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/4ed03d640801a2a2e13d7993829d49c1b4823237/includes/xml/Xml.php#459
    • Task
    • ·Closed
    There's a maintenance script for migrating from LiquidThreads to Flow. We'd like to use it to migrate all our existing LiquidThreads pages so that we can completely disable it, and only have Flow left for the remaining migrations. So: let's make sure that this script actually still works and hasn't bitrotted away since it was written.
    • Task
    ==== Error ==== * mwversion: 1.44.0-wmf.24 * reqId: `7a2f0c56-6a09-4dcf-8d2a-4cb52dd2ad10` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-04-15T10:38:12.498Z',to:'2025-04-16T10:40:42.519Z'))&_a=(query:(query_string:(query:'reqId:%227a2f0c56-6a09-4dcf-8d2a-4cb52dd2ad10%22'))) | Find reqId in Logstash ]] ```name=normalized_message,lines=10 [{reqId}] {exception_url} LogicException: Invalid thread method 123123123 ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/LqtView.php#427 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/LqtView.php(427) ]] | | #0 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/LqtView.php#493 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/LqtView.php(493) ]] | LqtView->doInlineEditForm() | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/Api/ApiThreadAction.php#903 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(903) ]] | LqtView::getInlineEditForm(MediaWiki\Page\Article, string, null, MediaWiki\User\User) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/Api/ApiThreadAction.php#76 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(76) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->actionInlineEditForm(array, array) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#2005 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(2005) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->execute() | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#947 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(947) ]] | MediaWiki\Api\ApiMain->executeAction() | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#918 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(918) ]] | MediaWiki\Api\ApiMain->executeActionWithErrorHandling() | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiEntryPoint.php#152 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiEntryPoint.php(152) ]] | MediaWiki\Api\ApiMain->execute() | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.24/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Api\ApiEntryPoint->execute() | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/api.php#44 | /srv/mediawiki/php-1.44.0-wmf.24/api.php(44) ]] | MediaWiki\MediaWikiEntryPoint->run() | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/api.php#3 | /srv/mediawiki/w/api.php(3) ]] | require(string) | #10 | {main} | ==== Impact ==== ==== Notes ====
    • Task
    ==== Error ==== * mwversion: 1.44.0-wmf.24 * reqId: `b329dbc7-9e51-448e-a5d7-c12566b1a1f6` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-04-15T10:35:19.629Z',to:'2025-04-16T10:37:31.174Z'))&_a=(query:(query_string:(query:'reqId:%22b329dbc7-9e51-448e-a5d7-c12566b1a1f6%22'))) | Find reqId in Logstash ]] ```name=normalized_message,lines=10 [{reqId}] {exception_url} TypeError: MediaWiki\Output\OutputPage::setTitle(): Argument #1 ($t) must be of type MediaWiki\Page\PageReference, null given, called in /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/LqtView.php on line 487 ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/Output/OutputPage.php#1291 | /srv/mediawiki/php-1.44.0-wmf.24/includes/Output/OutputPage.php(1291) ]] | | #0 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/LqtView.php#487 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/LqtView.php(487) ]] | MediaWiki\Output\OutputPage->setTitle(null) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/Api/ApiThreadAction.php#903 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(903) ]] | LqtView::getInlineEditForm(null, string, null, MediaWiki\User\User) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/Api/ApiThreadAction.php#76 | /srv/mediawiki/php-1.44.0-wmf.24/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(76) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->actionInlineEditForm(array, array) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#2005 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(2005) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->execute() | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#947 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(947) ]] | MediaWiki\Api\ApiMain->executeAction() | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiMain.php#918 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiMain.php(918) ]] | MediaWiki\Api\ApiMain->executeActionWithErrorHandling() | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/api/ApiEntryPoint.php#152 | /srv/mediawiki/php-1.44.0-wmf.24/includes/api/ApiEntryPoint.php(152) ]] | MediaWiki\Api\ApiMain->execute() | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.24/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Api\ApiEntryPoint->execute() | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.24/api.php#44 | /srv/mediawiki/php-1.44.0-wmf.24/api.php(44) ]] | MediaWiki\MediaWikiEntryPoint->run() | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/api.php#3 | /srv/mediawiki/w/api.php(3) ]] | require(string) | #10 | {main} | ==== Impact ==== ==== Notes ====
    • Task
    ==== Error ==== * service.version: 1.44.0-wmf.22 * trace.id: `6ffbf408-cf51-49c8-bc3c-c1c37d05a9b1` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-03-25T05:01:55.008Z',to:'2025-03-26T07:00:33.696Z'))&_a=(query:(query_string:(query:'reqId:%226ffbf408-cf51-49c8-bc3c-c1c37d05a9b1%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Deprecated: Use of MediaWiki\Output\OutputPage::setPageTitle with Message argument was deprecated in MediaWiki 1.41. [Called from ThreadActionPage::execute] ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/Pages/ThreadActionPage.php#48 | /srv/mediawiki/php-1.44.0-wmf.22/extensions/LiquidThreads/includes/Pages/ThreadActionPage.php(48) ]] | | #0 | [internal function] | MWExceptionHandler::handleError(int, string, string, string) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/debug/MWDebug.php#386 | /srv/mediawiki/php-1.44.0-wmf.22/includes/debug/MWDebug.php(386) ]] | trigger_error(string, int) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/debug/MWDebug.php#357 | /srv/mediawiki/php-1.44.0-wmf.22/includes/debug/MWDebug.php(357) ]] | MediaWiki\Debug\MWDebug::sendRawDeprecated(string, bool, string) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/debug/MWDebug.php#238 | /srv/mediawiki/php-1.44.0-wmf.22/includes/debug/MWDebug.php(238) ]] | MediaWiki\Debug\MWDebug::deprecatedMsg(string, string, string, int) | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/GlobalFunctions.php#781 | /srv/mediawiki/php-1.44.0-wmf.22/includes/GlobalFunctions.php(781) ]] | MediaWiki\Debug\MWDebug::deprecated(string, string, string, int) | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/Output/OutputPage.php#1176 | /srv/mediawiki/php-1.44.0-wmf.22/includes/Output/OutputPage.php(1176) ]] | wfDeprecated(string, string) | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/Pages/ThreadActionPage.php#48 | /srv/mediawiki/php-1.44.0-wmf.22/extensions/LiquidThreads/includes/Pages/ThreadActionPage.php(48) ]] | MediaWiki\Output\OutputPage->setPageTitle(MediaWiki\Message\Message) | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/specialpage/SpecialPage.php#729 | /srv/mediawiki/php-1.44.0-wmf.22/includes/specialpage/SpecialPage.php(729) ]] | ThreadActionPage->execute(null) | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/specialpage/SpecialPageFactory.php#1737 | /srv/mediawiki/php-1.44.0-wmf.22/includes/specialpage/SpecialPageFactory.php(1737) ]] | MediaWiki\SpecialPage\SpecialPage->run(null) | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/actions/ActionEntryPoint.php#499 | /srv/mediawiki/php-1.44.0-wmf.22/includes/actions/ActionEntryPoint.php(499) ]] | MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext) | #10 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/actions/ActionEntryPoint.php#143 | /srv/mediawiki/php-1.44.0-wmf.22/includes/actions/ActionEntryPoint.php(143) ]] | MediaWiki\Actions\ActionEntryPoint->performRequest() | #11 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.22/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Actions\ActionEntryPoint->execute() | #12 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.22/index.php#58 | /srv/mediawiki/php-1.44.0-wmf.22/index.php(58) ]] | MediaWiki\MediaWikiEntryPoint->run() | #13 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/index.php#3 | /srv/mediawiki/w/index.php(3) ]] | require(string) | #14 | {main} | ==== Impact ==== Low. Plus it's LQT. ==== Notes ====
    • Task
    Portuguese Wikibooks has Flow and LiquidThreads installed. We will deprecate LQT by porting the pages to Flow, followed by archiving those Flow pages and switching to Structured Discussions. ====Steps : [X] Review the history of {T114278} to understand past attempts at migration [x] [Identify LQT threads with historic redirects to existing flow boards on ptwikibooks](https://phabricator.wikimedia.org/T397420) [x] [Identify talk pages with LQT threads where LQT has been disabled on ptwikibooks](https://phabricator.wikimedia.org/T397422) [] Implement bulk fixes on ptwikibooks (T397426) - @zoe [] Define dates for: [] LQT pages are converted to Flow [] LQT set to frozen mode [] Remove default LQT template in {{Template:bv}}? [] Flow boards are moved to archival subpages [] All Flow pages are set in read-only mode [] Inform the community about this plan. - @Trizek-WMF [] Create tickets for executing the LQT/Flow migrations. An outline of how we might approach this is [in this comment](https://phabricator.wikimedia.org/T388099#10914958).
    • Task
    ==== Error ==== * mwversion: 1.44.0-wmf.18 * reqId: `1ccc4813-8a29-475a-839f-ccbf105680af` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-03-03T02:52:43.008Z',to:'2025-03-04T03:32:45.370Z'))&_a=(query:(query_string:(query:'reqId:%221ccc4813-8a29-475a-839f-ccbf105680af%22'))) | Find reqId in Logstash ]] ```name=normalized_message,lines=10 [{reqId}] {exception_url} Error: __clone method called on non-object ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/Hooks.php#318 | /srv/mediawiki/php-1.44.0-wmf.18/extensions/LiquidThreads/includes/Hooks.php(318) ]] | | #0 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/HookContainer/HookContainer.php#155 | /srv/mediawiki/php-1.44.0-wmf.18/includes/HookContainer/HookContainer.php(155) ]] | MediaWiki\Extension\LiquidThreads\Hooks::customiseSearchResultTitle(MediaWiki\Title\Title, string, CirrusSearch\Search\ArrayCirrusSearchResult, array, MediaWiki\Specials\SpecialSearch, array, array) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/HookContainer/HookRunner.php#3546 | /srv/mediawiki/php-1.44.0-wmf.18/includes/HookContainer/HookRunner.php(3546) ]] | MediaWiki\HookContainer\HookContainer->run(string, array) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/search/searchwidgets/FullSearchResultWidget.php#182 | /srv/mediawiki/php-1.44.0-wmf.18/includes/search/searchwidgets/FullSearchResultWidget.php(182) ]] | MediaWiki\HookContainer\HookRunner->onShowSearchHitTitle(MediaWiki\Title\Title, string, CirrusSearch\Search\ArrayCirrusSearchResult, array, MediaWiki\Specials\SpecialSearch, array, array) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/search/searchwidgets/FullSearchResultWidget.php#73 | /srv/mediawiki/php-1.44.0-wmf.18/includes/search/searchwidgets/FullSearchResultWidget.php(73) ]] | MediaWiki\Search\SearchWidgets\FullSearchResultWidget->generateMainLinkHtml(CirrusSearch\Search\ArrayCirrusSearchResult, int) | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/search/searchwidgets/BasicSearchResultSetWidget.php#128 | /srv/mediawiki/php-1.44.0-wmf.18/includes/search/searchwidgets/BasicSearchResultSetWidget.php(128) ]] | MediaWiki\Search\SearchWidgets\FullSearchResultWidget->render(CirrusSearch\Search\ArrayCirrusSearchResult, int) | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/search/searchwidgets/BasicSearchResultSetWidget.php#70 | /srv/mediawiki/php-1.44.0-wmf.18/includes/search/searchwidgets/BasicSearchResultSetWidget.php(70) ]] | MediaWiki\Search\SearchWidgets\BasicSearchResultSetWidget->renderResultSet(CirrusSearch\Search\BaseCirrusSearchResultSet@anonymous, int) | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/specials/SpecialSearch.php#556 | /srv/mediawiki/php-1.44.0-wmf.18/includes/specials/SpecialSearch.php(556) ]] | MediaWiki\Search\SearchWidgets\BasicSearchResultSetWidget->render(string, int, null, CirrusSearch\Search\BaseCirrusSearchResultSet@anonymous) | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/specials/SpecialSearch.php#237 | /srv/mediawiki/php-1.44.0-wmf.18/includes/specials/SpecialSearch.php(237) ]] | MediaWiki\Specials\SpecialSearch->showResults(string) | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/specialpage/SpecialPage.php#729 | /srv/mediawiki/php-1.44.0-wmf.18/includes/specialpage/SpecialPage.php(729) ]] | MediaWiki\Specials\SpecialSearch->execute(null) | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/specialpage/SpecialPageFactory.php#1737 | /srv/mediawiki/php-1.44.0-wmf.18/includes/specialpage/SpecialPageFactory.php(1737) ]] | MediaWiki\SpecialPage\SpecialPage->run(null) | #10 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/actions/ActionEntryPoint.php#503 | /srv/mediawiki/php-1.44.0-wmf.18/includes/actions/ActionEntryPoint.php(503) ]] | MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, MediaWiki\Context\RequestContext) | #11 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/actions/ActionEntryPoint.php#145 | /srv/mediawiki/php-1.44.0-wmf.18/includes/actions/ActionEntryPoint.php(145) ]] | MediaWiki\Actions\ActionEntryPoint->performRequest() | #12 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.18/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Actions\ActionEntryPoint->execute() | #13 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.18/index.php#58 | /srv/mediawiki/php-1.44.0-wmf.18/index.php(58) ]] | MediaWiki\MediaWikiEntryPoint->run() | #14 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/index.php#3 | /srv/mediawiki/w/index.php(3) ]] | require(string) | #15 | {main} | ==== Impact ==== ==== Notes ==== Repeat of/related to {T50809}?
    • Task
    • ·Closed
    Just putting this here so it's on record, because {T385290} anyway. ==== Error ==== * service.version: 1.44.0-wmf.16 * trace.id: `17bcc930-8900-47e9-9bb1-cdb927712548` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-02-12T03:27:45.352Z',to:'2025-02-13T09:22:20.395Z'))&_a=(query:(query_string:(query:'reqId:%2217bcc930-8900-47e9-9bb1-cdb927712548%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Notice: Exception doing lazy updates: LogicException: Thread::splitIncrementFromSubject: thread subject has no increment: Comments:ROV detects leaks in Deepwater Horizon well cap/ in /srv/mediawiki/php-1.44.0-wmf.16/extensi ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Thread.php#728 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Thread.php(728) ]] | | #0 | [internal function] | MWExceptionHandler::handleError(int, string, string, int, array) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Thread.php#728 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Thread.php(728) ]] | trigger_error(string) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Thread.php#654 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Thread.php(654) ]] | Thread->__construct(stdClass) | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Thread.php#886 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Thread.php(886) ]] | Thread::newFromRow(stdClass) | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Pages/TalkpageView.php#417 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Pages/TalkpageView.php(417) ]] | Thread::bulkLoad(array) | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/Pages/TalkpageView.php#355 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/Pages/TalkpageView.php(355) ]] | TalkpageView->getPageThreads(LqtDiscussionPager) | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/LqtDispatch.php#75 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/LqtDispatch.php(75) ]] | TalkpageView->show() | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/LqtDispatch.php#230 | /srv/mediawiki/php-1.44.0-wmf.16/extensions/LiquidThreads/includes/LqtDispatch.php(230) ]] | LqtDispatch::talkpageMain(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest) | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/HookContainer/HookContainer.php#155 | /srv/mediawiki/php-1.44.0-wmf.16/includes/HookContainer/HookContainer.php(155) ]] | LqtDispatch::tryPage(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/HookContainer/HookRunner.php#2600 | /srv/mediawiki/php-1.44.0-wmf.16/includes/HookContainer/HookRunner.php(2600) ]] | MediaWiki\HookContainer\HookContainer->run(string, array) | #10 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/actions/ActionEntryPoint.php#696 | /srv/mediawiki/php-1.44.0-wmf.16/includes/actions/ActionEntryPoint.php(696) ]] | MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) | #11 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/actions/ActionEntryPoint.php#509 | /srv/mediawiki/php-1.44.0-wmf.16/includes/actions/ActionEntryPoint.php(509) ]] | MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title) | #12 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/actions/ActionEntryPoint.php#145 | /srv/mediawiki/php-1.44.0-wmf.16/includes/actions/ActionEntryPoint.php(145) ]] | MediaWiki\Actions\ActionEntryPoint->performRequest() | #13 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.16/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Actions\ActionEntryPoint->execute() | #14 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.16/index.php#58 | /srv/mediawiki/php-1.44.0-wmf.16/index.php(58) ]] | MediaWiki\MediaWikiEntryPoint->run() | #15 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/index.php#3 | /srv/mediawiki/w/index.php(3) ]] | require(string) | #16 | {main} | ==== Impact ==== Low, 3 occurrences on enwikinews on a specific page. ==== Notes ====
    • Task
    This task involves the work of converging on a sequence and timeline in which the Editing Team, in collaboration with volunteers and projects, will undeploy [[ https://www.mediawiki.org/wiki/Extension:LiquidThreads | LiquidThreads ]]. We will use the term "LQT", unless noted. In {T381906} it was decided to convert LQT contents into Flow contents. Then, all Flow contents would be converted at the same time. === Undeployment sequence |Step|Description|Timing | Completion |---|---|---|---| |**#1**| {T382435} | | | |**#2**| Inform volunteers/communities of deprecation plan (w/ dates) | | | |**#3**| Volunteers manually move active LQT boards to sub-pages, as archives | | | |**#4**| Convert LQT contents into Flow contents | | | |**#5**| Check the conversion of LQT contents into Flow contents, fix conversion issues | | | |**#6**| Fix any migration issues | | | |**#7**| Set all newly created Flow boards to read-only | | | When all of the above is completed, follow up in {T332022}. Note: ptwikibooks has both Flow and LQT installed: T388099
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.44.0-wmf.13 * trace.id: `18d02733-e1ab-44ec-ab1f-e4467e7cc003` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2025-01-21T16:52:50.996Z',to:'2025-01-23T16:28:38.503Z'))&_a=(query:(query_string:(query:'reqId:%2218d02733-e1ab-44ec-ab1f-e4467e7cc003%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Notice: Undefined index: root ``` | Frame | Location | Call | -- | -- | -- | from | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/Api/ApiQueryLQTThreads.php#343 | /srv/mediawiki/php-1.44.0-wmf.13/extensions/LiquidThreads/includes/Api/ApiQueryLQTThreads.php(343) ]] | | #0 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/Api/ApiQueryLQTThreads.php#343 | /srv/mediawiki/php-1.44.0-wmf.13/extensions/LiquidThreads/includes/Api/ApiQueryLQTThreads.php(343) ]] | MWExceptionHandler::handleError(int, string, string, int, array) | #1 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/Api/ApiQueryLQTThreads.php#89 | /srv/mediawiki/php-1.44.0-wmf.13/extensions/LiquidThreads/includes/Api/ApiQueryLQTThreads.php(89) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiQueryLQTThreads->handleCondition(string, array) | #2 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/api/ApiQuery.php#727 | /srv/mediawiki/php-1.44.0-wmf.13/includes/api/ApiQuery.php(727) ]] | MediaWiki\Extension\LiquidThreads\Api\ApiQueryLQTThreads->execute() | #3 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/api/ApiMain.php#1973 | /srv/mediawiki/php-1.44.0-wmf.13/includes/api/ApiMain.php(1973) ]] | MediaWiki\Api\ApiQuery->execute() | #4 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/api/ApiMain.php#941 | /srv/mediawiki/php-1.44.0-wmf.13/includes/api/ApiMain.php(941) ]] | MediaWiki\Api\ApiMain->executeAction() | #5 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/api/ApiMain.php#912 | /srv/mediawiki/php-1.44.0-wmf.13/includes/api/ApiMain.php(912) ]] | MediaWiki\Api\ApiMain->executeActionWithErrorHandling() | #6 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/api/ApiEntryPoint.php#152 | /srv/mediawiki/php-1.44.0-wmf.13/includes/api/ApiEntryPoint.php(152) ]] | MediaWiki\Api\ApiMain->execute() | #7 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/includes/MediaWikiEntryPoint.php#202 | /srv/mediawiki/php-1.44.0-wmf.13/includes/MediaWikiEntryPoint.php(202) ]] | MediaWiki\Api\ApiEntryPoint->execute() | #8 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+blame/refs/heads/wmf/1.44.0-wmf.13/api.php#44 | /srv/mediawiki/php-1.44.0-wmf.13/api.php(44) ]] | MediaWiki\MediaWikiEntryPoint->run() | #9 | [[ https://gerrit.wikimedia.org/r/plugins/gitiles/operations/mediawiki-config/+blame/refs/heads/master/w/api.php#3 | /srv/mediawiki/w/api.php(3) ]] | require(string) | #10 | {main} | ==== Notes ==== Filing during train log triage for purposes of adding a filter to the MediaWiki New Errors ECS dashboard.
    • Task
    • ·Closed
    **Steps to replicate the issue** (include links if applicable): * Go to https://translatewiki.net/wiki/Special:NewMessages **What happens?**: ``` [4b79933c57aef7f0bce4ec7f] 2024-12-19 03:44:50: Fatal exception of type "Wikimedia\Rdbms\DBQueryError" ``` **What should have happened instead?**: Page should not be available as we don't want to have lqtthreads functional on translatewiki.net **Software version** (on `Special:Version` page; skip for WMF-hosted wikis like Wikipedia): Happens on translatewiki.net **Other information** (browser name/version, screenshots, etc.): ``` [2024-12-19T03:54:10.688039+00:00] exception.ERROR: [6dc91e99d4305464594195e8] /wiki/Special:NewMessages Wikimedia\Rdbms\DBQueryError: Error 1051: Unknown table 'bw_thread' Function: MediaWiki\Pager\IndexPager::buildQueryInfo (LqtNewMessagesPager) Query: SELECT `bw_thread`.*,ums_conversation FROM `bw_user_message_state` `user_message_state` JOIN `bw_thread` `thread` ON ((ums_conversation=thread_id)) WHERE ums_user = 0 AND (thread_type != 2) ORDER BY ums_conversation DESC LIMIT 26 {"exception":"[object] (Wikimedia\\Rdbms\\DBQueryError(code: 0): Error 1051: Unknown table 'bw_thread' Function: MediaWiki\\Pager\\IndexPager::buildQueryInfo (LqtNewMessagesPager) Query: SELECT `bw_thread`.*,ums_conversation FROM `bw_user_message_state` `user_message_state` JOIN `bw_thread` `thread` ON ((ums_conversation=thread_id)) WHERE ums_user = 0 AND (thread_type != 2) ORDER BY ums_conversation DESC LIMIT 26 at /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/Database.php:1193) [stacktrace] #0 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/Database.php(1177): Wikimedia\\Rdbms\\Database->getQueryException() #1 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/Database.php(1151): Wikimedia\\Rdbms\\Database->getQueryExceptionAndLog() #2 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/Database.php(645): Wikimedia\\Rdbms\\Database->reportQueryError() #3 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/Database.php(1340): Wikimedia\\Rdbms\\Database->query() #4 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\\Rdbms\\Database->select() #5 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\\Rdbms\\DBConnRef->__call() #6 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(744): Wikimedia\\Rdbms\\DBConnRef->select() #7 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/pager/IndexPager.php(474): Wikimedia\\Rdbms\\SelectQueryBuilder->fetchResultSet() #8 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/pager/IndexPager.php(288): MediaWiki\\Pager\\IndexPager->reallyDoQuery() #9 /srv/mediawiki/tags/2024-12-18_20:21:33/extensions/LiquidThreads/includes/Pages/LqtDiscussionPager.php(58): MediaWiki\\Pager\\IndexPager->doQuery() #10 /srv/mediawiki/tags/2024-12-18_20:21:33/extensions/LiquidThreads/includes/Pages/LqtNewMessagesPager.php(23): LqtDiscussionPager->getRows() #11 /srv/mediawiki/tags/2024-12-18_20:21:33/extensions/LiquidThreads/includes/Pages/NewUserMessagesView.php(128): LqtNewMessagesPager->getThreads() #12 /srv/mediawiki/tags/2024-12-18_20:21:33/extensions/LiquidThreads/includes/Pages/SpecialNewMessages.php(51): NewUserMessagesView->show() #13 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/specialpage/SpecialPage.php(729): SpecialNewMessages->execute() #14 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/specialpage/SpecialPageFactory.php(1737): MediaWiki\\SpecialPage\\SpecialPage->run() #15 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/actions/ActionEntryPoint.php(504): MediaWiki\\SpecialPage\\SpecialPageFactory->executePath() #16 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/actions/ActionEntryPoint.php(146): MediaWiki\\Actions\\ActionEntryPoint->performRequest() #17 /srv/mediawiki/tags/2024-12-18_20:21:33/includes/MediaWikiEntryPoint.php(201): MediaWiki\\Actions\\ActionEntryPoint->execute() #18 /srv/mediawiki/tags/2024-12-18_20:21:33/index.php(58): MediaWiki\\MediaWikiEntryPoint->run() #19 {main} ","exception_url":"/wiki/Special:NewMessages","reqId":"6dc91e99d4305464594195e8","caught_by":"entrypoint"} [] ```
    • Task
    In {T381906} the Editing team decided to convert LQT contents into Flow contents. To achieve this, we need to check if the script to convert the contents is working properly. ##Goals [] check if the script works properly, and if not, offer the necessarily fixes [] test the script at a wikis where LQT contents are frozen (list in the parent task)
    • Task
    • ·Closed
    As seen when testing https://gerrit.wikimedia.org/r/c/mediawiki/extensions/MassMessage/+/1056259: https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php74-noselenium/62758/console ``` 00:05:37.366 Mon Dec 16 15:28:11 UTC 2024 3f893062f895 wikidb-unittest_ Error 1051 from MediaWiki\Pager\IndexPager::buildQueryInfo (LqtNewMessagesPager), Unknown table 'wikidb.unittest_thread' SELECT `unittest_thread`.*,ums_conversation FROM `unittest_user_message_state` `user_message_state` JOIN `unittest_thread` `thread` ON ((ums_conversation=thread_id)) WHERE ums_user = 42 AND (thread_type != 2) ORDER BY ums_conversation DESC LIMIT 26 localhost:/workspace/db/quibble-mysql-tohzyb4k/socket 00:05:37.367 #0 /workspace/src/includes/libs/rdbms/database/Database.php(1151): Wikimedia\Rdbms\Database->getQueryExceptionAndLog() 00:05:37.368 #1 /workspace/src/includes/libs/rdbms/database/Database.php(645): Wikimedia\Rdbms\Database->reportQueryError() 00:05:37.369 #2 /workspace/src/includes/libs/rdbms/database/Database.php(1340): Wikimedia\Rdbms\Database->query() 00:05:37.370 #3 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(127): Wikimedia\Rdbms\Database->select() 00:05:37.370 #4 /workspace/src/includes/libs/rdbms/database/DBConnRef.php(351): Wikimedia\Rdbms\DBConnRef->__call() 00:05:37.371 #5 /workspace/src/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php(745): Wikimedia\Rdbms\DBConnRef->select() 00:05:37.372 #6 /workspace/src/includes/pager/IndexPager.php(474): Wikimedia\Rdbms\SelectQueryBuilder->fetchResultSet() 00:05:37.372 #7 /workspace/src/includes/pager/IndexPager.php(289): MediaWiki\Pager\IndexPager->reallyDoQuery() 00:05:37.373 #8 /workspace/src/extensions/LiquidThreads/includes/Pages/LqtDiscussionPager.php(58): MediaWiki\Pager\IndexPager->doQuery() 00:05:37.374 #9 /workspace/src/extensions/LiquidThreads/includes/Pages/LqtNewMessagesPager.php(23): LqtDiscussionPager->getRows() 00:05:37.375 #10 /workspace/src/extensions/LiquidThreads/includes/Pages/NewUserMessagesView.php(128): LqtNewMessagesPager->getThreads() 00:05:37.376 #11 /workspace/src/extensions/LiquidThreads/includes/Pages/SpecialNewMessages.php(51): NewUserMessagesView->show() 00:05:37.377 #12 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php(121): SpecialNewMessages->execute() 00:05:37.378 #13 /workspace/src/tests/phpunit/includes/specials/SpecialPageExecutor.php(51): SpecialPageExecutor->getHTMLFromSpecialPage() 00:05:37.378 #14 /workspace/src/tests/phpunit/structure/SpecialPageFatalTest.php(50): SpecialPageExecutor->executeSpecialPage() 00:05:37.379 #15 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(1617): SpecialPageFatalTest->testSpecialPageDoesNotFatal() 00:05:37.380 #16 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(1223): PHPUnit\Framework\TestCase->runTest() 00:05:37.381 #17 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestResult.php(729): PHPUnit\Framework\TestCase->runBare() 00:05:37.382 #18 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestCase.php(973): PHPUnit\Framework\TestResult->run() 00:05:37.382 #19 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestCase->run() 00:05:37.383 #20 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() 00:05:37.384 #21 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() 00:05:37.385 #22 /workspace/src/vendor/phpunit/phpunit/src/Framework/TestSuite.php(685): PHPUnit\Framework\TestSuite->run() 00:05:37.386 #23 /workspace/src/vendor/phpunit/phpunit/src/TextUI/TestRunner.php(651): PHPUnit\Framework\TestSuite->run() 00:05:37.386 #24 /workspace/src/vendor/phpunit/phpunit/src/TextUI/Command.php(146): PHPUnit\TextUI\TestRunner->run() 00:05:37.387 #25 /workspace/src/vendor/phpunit/phpunit/src/TextUI/Command.php(99): PHPUnit\TextUI\Command->run() 00:05:37.388 #26 phpvfscomposer:///workspace/src/vendor/phpunit/phpunit/phpunit(106): PHPUnit\TextUI\Command::main() 00:05:37.388 #27 /workspace/src/vendor/bin/phpunit(118): include(string) 00:05:37.388 #28 {main} ```
    • Task
    • ·Closed
    This task involves deciding the approach we'll take to setting Liquid Threads into a `read only` state. === Approaches Based on the Editing Engineering Team's investigation, there seem to be two approaches: - ~~**Approach #1:** Add code to Liquid Threads to create a `read only` mode; this functionality does NOT fully exist ~~ - **Approach #2:** Convert Liquid Threads to Flow using [the existing script](https://github.com/wikimedia/mediawiki-extensions-Flow/blob/master/maintenance/convertAllLqtPages.php) and in doing so leverage Flow's `read only` state === Decision(s) to be made - [x] Which approach – of those listed above – will the Editing Team pursue to set Liquid Threads into a `read only` state?
    • Task
    • ·Closed
    While accessing https://translatewiki.net/wiki/Thread:User_talk:GerardM/Mail an error is thrown failing to load PEAR.php. ``` [2024-10-23T07:40:29.604354+00:00] exception.ERROR: [9079130288724cad24e28653] /wiki/Thread:User_talk:GerardM/Mail?action=edit Error: Failed opening required 'PEAR.php' ( include_path='/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/console_getopt :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/mail :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/mail_mime :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_smtp :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_socket :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_url2 :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/pear-core-minimal/src :/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/pear_exception:.:/usr/share/php' ) { "exception":"[object] (Error(code: 0): Failed opening required 'PEAR.php' (include_path='/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/console_getopt:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/mail:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/mail_mime:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_smtp:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_socket:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/net_url2:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/pear-core-minimal/src:/srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/pear_exception:.:/usr/share/php') at /srv/mediawiki/tags/2024-10-22_21:45:53/vendor/pear/mail/Mail.php:48) [stacktrace] #0 /srv/mediawiki/tags/2024-10-22_21:45:53/vendor/composer/ClassLoader.php(582): include() #1 /srv/mediawiki/tags/2024-10-22_21:45:53/vendor/composer/ClassLoader.php(433): Composer\\Autoload\\{closure}() #2 [internal function]: Composer\\Autoload\\ClassLoader->loadClass() #3 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/libs/Message/ScalarParam.php(45): is_callable() #4 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/Message/Message.php(1344): Wikimedia\\Message\\ScalarParam->__construct() #5 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/Message/Message.php(857): MediaWiki\\Message\\Message::plaintextParam() #6 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/Output/OutputPage.php(1226): MediaWiki\\Message\\Message->plaintextParams() #7 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/Output/OutputPage.php(1194): MediaWiki\\Output\\OutputPage->setPageTitleInternal() #8 /srv/mediawiki/tags/2024-10-22_21:45:53/extensions/LiquidThreads/includes/Pages/ThreadPermalinkView.php(226): MediaWiki\\Output\\OutputPage->setPageTitle() #9 /srv/mediawiki/tags/2024-10-22_21:45:53/extensions/LiquidThreads/includes/LqtDispatch.php(112): ThreadPermalinkView->show() #10 /srv/mediawiki/tags/2024-10-22_21:45:53/extensions/LiquidThreads/includes/LqtDispatch.php(232): LqtDispatch::threadPermalinkMain() #11 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/HookContainer/HookContainer.php(159): LqtDispatch::tryPage() #12 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/HookContainer/HookRunner.php(2567): MediaWiki\\HookContainer\\HookContainer->run() #13 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/actions/ActionEntryPoint.php(696): MediaWiki\\HookContainer\\HookRunner->onMediaWikiPerformAction() #14 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/actions/ActionEntryPoint.php(510): MediaWiki\\Actions\\ActionEntryPoint->performAction() #15 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/actions/ActionEntryPoint.php(146): MediaWiki\\Actions\\ActionEntryPoint->performRequest() #16 /srv/mediawiki/tags/2024-10-22_21:45:53/includes/MediaWikiEntryPoint.php(200): MediaWiki\\Actions\\ActionEntryPoint->execute() #17 /srv/mediawiki/tags/2024-10-22_21:45:53/index.php(58): MediaWiki\\MediaWikiEntryPoint->run() #18 {main} ","exception_url":"/wiki/Thread:User_talk:GerardM/Mail?action=edit","reqId":"9079130288724cad24e28653","caught_by":"entrypoint"} [] ``` Might be related to {9d56257d8c154cf3020ae7d0a1dd2f45d5211453} Please note that translatewiki.net is not hosted in WMF's production
    • Task
    Special:NamespaceInfo (added in T263513) will describe namespaces added by extensions as just "Custom namespace <name>", unless a localisation message like `"namespaceinfo-description-ns<id>"` is defined for each namespace. Extensions that add namespaces (with constant IDs – this won't work for configurable IDs) should define these messages. The message should describe the purpose of the namespace (it may contain links to documentation). List based on <https://codesearch.wmcloud.org/deployed/?q="namespaces"&files=extension.json>: [ ] CampaignEvents: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/CampaignEvents/+/e2df1f41c3aa3ea77842fcf868f9d76d03070335/extension.json#125 | namespaces ]] [x] CentralNotice: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/CentralNotice/+/b0a196822c54b931f08b6a8ff403345ad418badb/extension.json#24 | namespaces ]] [ ] EntitySchema: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/EntitySchema/+/d0872b4c4c7c7bd3462a91b5777eca38fdb7a4f3/extension.json#211 | namespaces ]] [ ] EventLogging: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/EventLogging/+/434ae976a488b37bbd5327471529d899c4316e48/extension.json#16 | namespaces ]] (patch for review: <https://gerrit.wikimedia.org/r/1162233>) [ ] Flow: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/Flow/+/779ea7f951b1b20d36e9ffcb4478aae2d2c19607/extension.json#735 | namespaces ]] [ ] JsonConfig: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/JsonConfig/+/dddaf7eb4a350a2ea745d9efad488b9ca8fd5bcc/extension.json#15 | namespaces ]] [ ] LiquidThreads: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/LiquidThreads/+/00ab161066b7f1c7503a2d1ecaec5338c82723d7/extension.json#15 | namespaces ]] [x] Newsletter: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/Newsletter/+/c753af0ba09839ad972fb4223ace9ba60a395f7c/extension.json#148 | namespaces ]] [ ] ProofreadPage (configurable, but with a commonly used default) [x] Scribunto: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/Scribunto/+/9c4fc5a95c530afcc585c22fb900e80514cb545b/extension.json#123 | namespaces ]] [ ] SecurePoll: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/SecurePoll/+/7bac0a938df81045797be930c82287b5b7e07d2d/extension.json#171 | namespaces ]] [ ] TimedMediaHandler (configurable, but with a commonly used default) [x] Translate: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/Translate/+/d89dcec4951566f21f1ea41463e62ac8302aa3f5/extension.json#28 | namespaces ]] [x] UploadWizard: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/UploadWizard/+/ec4f6747fd5e55b0d606ddd5b7779595ae32eb05/extension.json#685 | namespaces ]] [x] Wikistories: [[ https://gerrit.wikimedia.org/g/mediawiki/extensions/Wikistories/+/68c89affcfb667d07f1d79882849a9dd85000000/extension.json#166 | namespaces ]]
    • Task
    Dynamic properties are deprecated with php8.2, the usage in LiquidThreads needs to be refactored/replaced.
    • Task
    • ·Closed
    ``` STATUS: ====== This software is beta. There are bugs and missing features. But it is basically usable, and you are encouraged to try it (with caution). Also, please hack Liquid Threads and make it more awesome. ``` This should be updated to correctly reflect the unmaintained status.
    • Task
    ==== Error ==== * service.version: 1.43.0-wmf.8 * trace.id: d367ed1a-6303-49df-8734-198ccad3b2c0 * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-06-10T16:23:02.760Z',to:'2024-06-11T17:24:45.964Z'))&_a=(query:(query_string:(query:'reqId:%22d367ed1a-6303-49df-8734-198ccad3b2c0%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PermissionsError: The title "[title redacted]" has been banned from creation. It matches the following disallowed titles list entry: <code>.*&#91;!?&#93;&#123;3,&#125;.* &#60;autoconfirmed&#62;</code> ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.43.0-wmf.8/includes/editpage/EditPage.php(960) #0 /srv/mediawiki/php-1.43.0-wmf.8/includes/editpage/EditPage.php(665): MediaWiki\EditPage\EditPage->displayPermissionsError(array) #1 /srv/mediawiki/php-1.43.0-wmf.8/extensions/LiquidThreads/includes/LqtView.php(698): MediaWiki\EditPage\EditPage->edit() #2 /srv/mediawiki/php-1.43.0-wmf.8/extensions/LiquidThreads/includes/LqtView.php(417): LqtView->showReplyForm(Thread) #3 /srv/mediawiki/php-1.43.0-wmf.8/extensions/LiquidThreads/includes/LqtView.php(489): LqtView->doInlineEditForm() #4 /srv/mediawiki/php-1.43.0-wmf.8/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(902): LqtView::getInlineEditForm(Article, string, string, MediaWiki\User\User) #5 [internal function]: MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->actionInlineEditForm(array, array) #6 /srv/mediawiki/php-1.43.0-wmf.8/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(75): call_user_func_array(array, array) #7 /srv/mediawiki/php-1.43.0-wmf.8/includes/api/ApiMain.php(1952): MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->execute() #8 /srv/mediawiki/php-1.43.0-wmf.8/includes/api/ApiMain.php(928): ApiMain->executeAction() #9 /srv/mediawiki/php-1.43.0-wmf.8/includes/api/ApiMain.php(899): ApiMain->executeActionWithErrorHandling() #10 /srv/mediawiki/php-1.43.0-wmf.8/includes/api/ApiEntryPoint.php(158): ApiMain->execute() #11 /srv/mediawiki/php-1.43.0-wmf.8/includes/MediaWikiEntryPoint.php(200): MediaWiki\Api\ApiEntryPoint->execute() #12 /srv/mediawiki/php-1.43.0-wmf.8/api.php(44): MediaWiki\MediaWikiEntryPoint->run() #13 /srv/mediawiki/w/api.php(3): require(string) #14 {main} ``` ==== Impact ==== Probably minimal. ==== Notes ==== Recognizing that LiquidThreads is unmaintained, this should probably be a user-facing message rather than an exception hitting logs.
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.43.0-wmf.6 * trace.id: 83b55934-1877-4041-b09f-ded8931ae30d * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-05-20T15:08:30.724Z',to:'2024-05-21T15:11:01.849Z'))&_a=(query:(query_string:(query:'reqId:%2283b55934-1877-4041-b09f-ded8931ae30d%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} TypeError: Argument 1 passed to MediaWiki\Output\OutputPage::parseInternal() must be of the type string, null given, called in /srv/mediawiki/php-1.43.0-wmf.6/includes/Output/OutputPage.php on line 2446 ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.43.0-wmf.6/includes/Output/OutputPage.php(2511) #0 /srv/mediawiki/php-1.43.0-wmf.6/includes/Output/OutputPage.php(2446): MediaWiki\Output\OutputPage->parseInternal(NULL, MediaWiki\Title\Title, boolean, boolean) #1 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtView.php(2426): MediaWiki\Output\OutputPage->parseAsContent(NULL) #2 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtView.php(1616): LqtView::parseSignature(NULL) #3 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtView.php(1602): LqtView->threadSignature(Thread) #4 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtView.php(1858): LqtView->showThreadBody(Thread) #5 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtView.php(2206): LqtView->showSingleThread(Thread) #6 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/Pages/ThreadHistoricalRevisionView.php(135): LqtView->showThread(Thread, integer, integer, array) #7 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtDispatch.php(111): ThreadHistoricalRevisionView->show() #8 /srv/mediawiki/php-1.43.0-wmf.6/extensions/LiquidThreads/includes/LqtDispatch.php(231): LqtDispatch::threadPermalinkMain(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest) #9 /srv/mediawiki/php-1.43.0-wmf.6/includes/HookContainer/HookContainer.php(159): LqtDispatch::tryPage(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #10 /srv/mediawiki/php-1.43.0-wmf.6/includes/HookContainer/HookRunner.php(2530): MediaWiki\HookContainer\HookContainer->run(string, array) #11 /srv/mediawiki/php-1.43.0-wmf.6/includes/actions/ActionEntryPoint.php(695): MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #12 /srv/mediawiki/php-1.43.0-wmf.6/includes/actions/ActionEntryPoint.php(508): MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title) #13 /srv/mediawiki/php-1.43.0-wmf.6/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest() #14 /srv/mediawiki/php-1.43.0-wmf.6/includes/MediaWikiEntryPoint.php(200): MediaWiki\Actions\ActionEntryPoint->execute() #15 /srv/mediawiki/php-1.43.0-wmf.6/index.php(58): MediaWiki\MediaWikiEntryPoint->run() #16 /srv/mediawiki/w/index.php(3): require(string) #17 {main} ``` ==== Impact ==== * See `wmgUseLiquidThreads`-`wmgLiquidThreadsFrozen` in https://noc.wikimedia.org/conf/InitialiseSettings.php.txt for potential impact if proceeding with train. ==== Notes ==== * See very similar T365451 / https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Translate/+/1034461 in Translate fixed earlier today
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.42.0-wmf.22 * trace.id: 5a8e000f-743f-422e-8d2c-af297374bc8e * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-03-13T10:08:32.819Z',to:'2024-03-14T13:08:31.695Z'))&_a=(query:(query_string:(query:'reqId:%225a8e000f-743f-422e-8d2c-af297374bc8e%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Notice: unserialize(): Error at offset 65520 of 65535 bytes ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/ThreadRevision.php(72) #0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/ThreadRevision.php(72): unserialize(string) #2 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/ThreadRevision.php(223): ThreadRevision::loadFromRow(stdClass) #3 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/ThreadHistoryPager.php(105): ThreadRevision->prev() #4 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/ThreadHistoryPager.php(92): ThreadHistoryPager->getActionDescription(string) #5 /srv/mediawiki/php-1.42.0-wmf.22/includes/pager/TablePager.php(209): ThreadHistoryPager->formatValue(string, string) #6 /srv/mediawiki/php-1.42.0-wmf.22/includes/pager/IndexPager.php(557): MediaWiki\Pager\TablePager->formatRow(stdClass) #7 /srv/mediawiki/php-1.42.0-wmf.22/includes/pager/IndexPager.php(594): MediaWiki\Pager\IndexPager->getRow(stdClass) #8 /srv/mediawiki/php-1.42.0-wmf.22/includes/pager/TablePager.php(120): MediaWiki\Pager\IndexPager->getBody() #9 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/Pages/ThreadHistoryListingView.php(21): MediaWiki\Pager\TablePager->getFullOutput() #10 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/LqtDispatch.php(111): ThreadHistoryListingView->show() #11 /srv/mediawiki/php-1.42.0-wmf.22/extensions/LiquidThreads/includes/LqtDispatch.php(231): LqtDispatch::threadPermalinkMain(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest) #12 /srv/mediawiki/php-1.42.0-wmf.22/includes/HookContainer/HookContainer.php(159): LqtDispatch::tryPage(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #13 /srv/mediawiki/php-1.42.0-wmf.22/includes/HookContainer/HookRunner.php(2530): MediaWiki\HookContainer\HookContainer->run(string, array) #14 /srv/mediawiki/php-1.42.0-wmf.22/includes/actions/ActionEntryPoint.php(697): MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #15 /srv/mediawiki/php-1.42.0-wmf.22/includes/actions/ActionEntryPoint.php(510): MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title) #16 /srv/mediawiki/php-1.42.0-wmf.22/includes/actions/ActionEntryPoint.php(145): MediaWiki\Actions\ActionEntryPoint->performRequest() #17 /srv/mediawiki/php-1.42.0-wmf.22/includes/MediaWikiEntryPoint.php(199): MediaWiki\Actions\ActionEntryPoint->execute() #18 /srv/mediawiki/php-1.42.0-wmf.22/index.php(58): MediaWiki\MediaWikiEntryPoint->run() #19 /srv/mediawiki/w/index.php(3): require(string) #20 {main} ``` ==== Impact ==== ==== Notes ==== Looks like that is solely on https://strategy.wikimedia.org/w/index.php?lqt_method=thread_history&title=Thread%3AUser_talk%3AFasten%2FDeletion_nominations and that does not prevent the page from loading :)
    • Task
    • ·Closed
    Two LiquidThreads messages, `lqt-enotif-newthread` and `lqt-enotif-reply` and their translations include angle brackets. The angle brackets were probably added to make sure that the URL doesn't get mixed with other characters. However, the CI suspects that the angle brackets are HTML and requires a manual review of every translation update that includes a translation of this message, for example in https://gerrit.wikimedia.org/r/c/mediawiki/extensions/LiquidThreads/+/958320 . (This still happens even though LiquidThreads is barely used...) The URL should be moved to a separate line, which is enough for isolation. This will be more readable, too (because URL are often very long).
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.42.0-wmf.15 * trace.id: b918b114-a829-4ff6-a305-47fa4bc4a91b * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-01-23T17:17:45.742Z',to:'2024-01-24T17:19:38.259Z'))&_a=(query:(query_string:(query:'reqId:%22b918b114-a829-4ff6-a305-47fa4bc4a91b%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} TypeError: Argument 1 passed to MediaWiki\Parser\Sanitizer::encodeAttribute() must be of the type string, null given, called in /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php on line 81 ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.42.0-wmf.15/includes/parser/Sanitizer.php(845) #0 /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php(81): MediaWiki\Parser\Sanitizer::encodeAttribute(NULL) #1 /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php(55): Xml::expandAttributes(array) #2 /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php(299): Xml::element(string, array) #3 /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php(417): Xml::input(string, integer, NULL, array) #4 /srv/mediawiki/php-1.42.0-wmf.15/includes/xml/Xml.php(396): Xml::inputLabelSep(string, string, string, integer, NULL, array) #5 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/LqtView.php(977): Xml::inputLabel(string, string, string, integer, NULL, array) #6 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/LqtView.php(586): LqtView->getSubjectEditor(string, NULL) #7 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/LqtView.php(419): LqtView->showNewThreadForm(Article) #8 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/LqtView.php(489): LqtView->doInlineEditForm() #9 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(902): LqtView::getInlineEditForm(Article, string, NULL, MediaWiki\User\User) #10 [internal function]: MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->actionInlineEditForm(array, array) #11 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(75): call_user_func_array(array, array) #12 /srv/mediawiki/php-1.42.0-wmf.15/includes/api/ApiMain.php(1942): MediaWiki\Extension\LiquidThreads\Api\ApiThreadAction->execute() #13 /srv/mediawiki/php-1.42.0-wmf.15/includes/api/ApiMain.php(917): ApiMain->executeAction() #14 /srv/mediawiki/php-1.42.0-wmf.15/includes/api/ApiMain.php(888): ApiMain->executeActionWithErrorHandling() #15 /srv/mediawiki/php-1.42.0-wmf.15/api.php(95): ApiMain->execute() #16 /srv/mediawiki/php-1.42.0-wmf.15/api.php(48): wfApiMain() #17 /srv/mediawiki/w/api.php(3): require(string) #18 {main} ``` ==== Impact ==== ==== Notes ==== That is similar to T355751 and the root cause is `MediaWiki\Parser\Sanitizer::escapeHtmlAllowEntities()` had types added by e263306d40bf968fd95bd3856c71a7c33ca2d44b: ``` lang=diff - public static function escapeHtmlAllowEntities( $html ) { + public static function escapeHtmlAllowEntities( string $html ): string { ``` The change is https://gerrit.wikimedia.org/r/c/mediawiki/core/+/984165 which got merged on January 19th and is first deployed as part of 1.42.0-wmf.15. #mediawiki-extensions-liquidthreads needs to be adjusted to not pass a null, my guess that is from ``` #6 /srv/mediawiki/php-1.42.0-wmf.15/extensions/LiquidThreads/includes/LqtView.php(586): LqtView->getSubjectEditor(string, NULL) ```
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.42.0-wmf.15 * trace.id: c640a99a-64c2-4cd4-986d-3ee81d782747 * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-01-22T14:03:47.016Z',to:'2024-01-23T14:42:48.143Z'))&_a=(query:(query_string:(query:'reqId:%22c640a99a-64c2-4cd4-986d-3ee81d782747%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} InvalidArgumentException: Passing a raw callable is not allowed here. Use [ 'factory' => $callable ] instead. ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/object-factory/src/ObjectFactory.php(279) #0 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/object-factory/src/ObjectFactory.php(174): Wikimedia\ObjectFactory\ObjectFactory::validateSpec(string, array) #1 /srv/mediawiki/php-1.42.0-wmf.15/vendor/wikimedia/object-factory/src/ObjectFactory.php(149): Wikimedia\ObjectFactory\ObjectFactory::getObjectFromSpec(string, array) #2 /srv/mediawiki/php-1.42.0-wmf.15/includes/logging/LogFormatter.php(72): Wikimedia\ObjectFactory\ObjectFactory->createObject(string, array) #3 /srv/mediawiki/php-1.42.0-wmf.15/includes/logging/LogFormatter.php(89): LogFormatter::newFromEntry(DatabaseLogEntry) #4 /srv/mediawiki/php-1.42.0-wmf.15/includes/logging/LogPager.php(443): LogFormatter::newFromRow(stdClass) #5 /srv/mediawiki/php-1.42.0-wmf.15/includes/pager/IndexPager.php(576): MediaWiki\Pager\LogPager->doBatchLookups() #6 /srv/mediawiki/php-1.42.0-wmf.15/includes/specials/SpecialLog.php(313): MediaWiki\Pager\IndexPager->getBody() #7 /srv/mediawiki/php-1.42.0-wmf.15/includes/specials/SpecialLog.php(192): MediaWiki\Specials\SpecialLog->show(MediaWiki\Html\FormOptions, array) #8 /srv/mediawiki/php-1.42.0-wmf.15/includes/specialpage/SpecialPage.php(727): MediaWiki\Specials\SpecialLog->execute(string) #9 /srv/mediawiki/php-1.42.0-wmf.15/includes/specialpage/SpecialPageFactory.php(1652): MediaWiki\SpecialPage\SpecialPage->run(string) #10 /srv/mediawiki/php-1.42.0-wmf.15/includes/actions/ActionEntryPoint.php(504): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext) #11 /srv/mediawiki/php-1.42.0-wmf.15/includes/actions/ActionEntryPoint.php(151): MediaWiki\Actions\ActionEntryPoint->performRequest() #12 /srv/mediawiki/php-1.42.0-wmf.15/includes/MediaWikiEntryPoint.php(169): MediaWiki\Actions\ActionEntryPoint->execute() #13 /srv/mediawiki/php-1.42.0-wmf.15/index.php(50): MediaWiki\MediaWikiEntryPoint->run() #14 /srv/mediawiki/w/index.php(3): require(string) #15 {main} ``` ==== Impact ==== ==== Notes ====
    • Task
    • ·Closed
    ==== Error ==== * service.version: 1.42.0-wmf.14 * trace.id: 71dfdecb-3635-423a-b19f-61dbfc24b48d * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2024-01-17T16:49:31.531Z',to:'2024-01-18T16:51:35.051Z'))&_a=(query:(query_string:(query:'reqId:%2271dfdecb-3635-423a-b19f-61dbfc24b48d%22'))) | Find trace.id in Logstash ]] ```name=labels.normalized_message,lines=10 [{reqId}] {exception_url} PHP Notice: unserialize(): Error at offset 65527 of 65535 bytes ``` ```name=error.stack_trace,lines=10 from /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/ThreadRevision.php(72) #0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/ThreadRevision.php(72): unserialize(string) #2 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/ThreadRevision.php(224): ThreadRevision::loadFromRow(stdClass) #3 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/ThreadHistoryPager.php(106): ThreadRevision->prev() #4 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/ThreadHistoryPager.php(92): ThreadHistoryPager->getActionDescription(string) #5 /srv/mediawiki/php-1.42.0-wmf.14/includes/pager/TablePager.php(209): ThreadHistoryPager->formatValue(string, string) #6 /srv/mediawiki/php-1.42.0-wmf.14/includes/pager/IndexPager.php(557): MediaWiki\Pager\TablePager->formatRow(stdClass) #7 /srv/mediawiki/php-1.42.0-wmf.14/includes/pager/IndexPager.php(588): MediaWiki\Pager\IndexPager->getRow(stdClass) #8 /srv/mediawiki/php-1.42.0-wmf.14/includes/pager/TablePager.php(120): MediaWiki\Pager\IndexPager->getBody() #9 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/Pages/ThreadHistoryListingView.php(21): MediaWiki\Pager\TablePager->getFullOutput() #10 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/LqtDispatch.php(111): ThreadHistoryListingView->show() #11 /srv/mediawiki/php-1.42.0-wmf.14/extensions/LiquidThreads/includes/LqtDispatch.php(231): LqtDispatch::threadPermalinkMain(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest) #12 /srv/mediawiki/php-1.42.0-wmf.14/includes/HookContainer/HookContainer.php(161): LqtDispatch::tryPage(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #13 /srv/mediawiki/php-1.42.0-wmf.14/includes/HookContainer/HookRunner.php(2527): MediaWiki\HookContainer\HookContainer->run(string, array) #14 /srv/mediawiki/php-1.42.0-wmf.14/includes/actions/ActionEntryPoint.php(697): MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(MediaWiki\Output\OutputPage, Article, MediaWiki\Title\Title, MediaWiki\User\User, MediaWiki\Request\WebRequest, MediaWiki\Actions\ActionEntryPoint) #15 /srv/mediawiki/php-1.42.0-wmf.14/includes/actions/ActionEntryPoint.php(510): MediaWiki\Actions\ActionEntryPoint->performAction(Article, MediaWiki\Title\Title) #16 /srv/mediawiki/php-1.42.0-wmf.14/includes/actions/ActionEntryPoint.php(151): MediaWiki\Actions\ActionEntryPoint->performRequest() #17 /srv/mediawiki/php-1.42.0-wmf.14/includes/MediaWikiEntryPoint.php(169): MediaWiki\Actions\ActionEntryPoint->execute() #18 /srv/mediawiki/php-1.42.0-wmf.14/index.php(50): MediaWiki\MediaWikiEntryPoint->run() #19 /srv/mediawiki/w/index.php(3): require(string) #20 {main} ``` ==== Impact ==== * Triggers about 100 unserialize notice messages in PHP every time you visit a particularly long thread * Still renders ... something * Initial investigation: later we check if the [[https://gerrit.wikimedia.org/g/mediawiki/extensions/LiquidThreads/+/74112a2a890919a075cc1a90e9f450121e45b8ae/includes/ThreadRevision.php#208 | thread is not an instance of Thread ]] we ignore it and so it seems we're not rendering a portion of the thread
    • Task
    While working on T354329, I noticed that LiquidThreads only works correctly when `$wgDefaultUserOptions['lqtnotifytalk']` is set to false (or if `lqtnotifytalk` is hidden via `$wgHiddenPrefs`). Having extensions depend on specific site configuration is generally not a good idea. Implementing conditional defaults for user options (T321527) adds another assumption to the already existing ones: namely, the code would not work as expected if `lqtnotifytalk` gets listed in `wgConditionalUserOptions`. Fixing code to take conditional defaults into account was the scope of T354329; however, considering that LiquidThreads depends on site configuration in other ways and considering it is a extension with little use, I eventually decided against fixing it. See T354329#9441740 and T354329#9444475 for details. Filling this task so this gets tracked; however, it is possible LiquidThreads might be undeployed soon-ish (T350164).
    • Task
    • ·Closed
    Now that {T210206} is done, this extension should migrate away from building and passing around raw SQL to expression builders. It improves readability and security of the code and is more aligned with industry practices easing onboarding. For more information check T210206 and T350075. Calls to Database::addQuotes(), ::buildLike(), ::makeList() indicate that raw SQL is being built and passed around.
    • Task
    [[ https://www.mediawiki.org/wiki/Extension:LiquidThreads | LiquidThreads]] (LQT) is a discussion system for wiki’s talk pages. The project started in 2006 and was improved in 2009 by volunteers, the WMF made some efforts on a v3 in 2011. Nothing more has been done since then. It is still used on 5 wikis: - enwikinews - enwiktionary - huwiki - ptwikibooks - svwikisource And once enabled but now frozen in: - fiwikimedia - mediawikiwiki - officewiki // replaced with Flow 2014-11-25 - sewikimedia - strategywiki - testwiki - test2wiki - wikimania2010wiki In [[ https://docs.google.com/spreadsheets/d/1UhgSLvjqQxQlpL6GW3ghBkI88lo7LMurGynwnHKYBLI/edit#gid=0 | August 2023, on average: ]] - DiscussionTools is used about 18,780 times per day. - Flow is used about 250 times per day. - LiquidThreads is used less than once per day. ---- The work on IP masking requires significant changes for LQT, leading the Growth team to consider sunsetting LQT extensions in favor of Discussion tools -DT). Of the various solutions we'd like to discuss with the concerned communities, one is to archive or convert LQT pages to DT. The goal is to explain the possible solutions to the communities. Note: the solution adopted by translatewiki.net was to move the existing pages using LQT as an archive, and start over with DT on the main page: https://translatewiki.net/wiki/Support/LiquidThreads. LQT is not uninstalled. Possible related tasks: * {T89426} * {T107068} ---- ####Process # {T381906} # Investigate - List the number of pages that use LQT - {T382435} - Figure out of those wikis still have flow installed (in read only mode) - [[https://phabricator.wikimedia.org/T350164#10413648|list here]] - If so reinstall Flow at these wikis to make the conversion.
    • Task
    • ·Closed
    NOTE: Please feel free to create a subtask and detag this ticket depending on your team's preferred workflow. The [[ https://www.mediawiki.org/w/index.php?title=Stable_interface_policy/Frontend | stable interface policy ]] was introduced in September 2023 during the 1.41 MediaWiki release. As a result of the introduction of this policy I am asking teams to take the opportunity to review their existing stable APIs and take appropriate action to limit unsupported APIs where necessary and possible. # TODO [] Please read the guidelines around what constitutes [[ https://www.mediawiki.org/w/index.php?title=Stable_interface_policy/Frontend#JavaScript_code | stable code ]] [] Please remove any functions on the `mw` object that you do not wish to consider stable. Note "Code that was never part of a public MediaWiki release, and never consumed according to Codesearch and Global Search MAY be changed (including marked explicitly as @private) or removed without deprecation, since the code has never become part of the stable interface or used." [] Please add `@private` or `@internal` documentation tags to hook events that you wish to limit usage of.
    • Task
    Shows as `(no description)` Shown on https://www.mediawiki.org/w/api.php?modules=threadaction
    • Task
    ``` [2023-06-19T02:31:52.287508+00:00] exception.ERROR: [d258015cf423114d64ac7d0d] [no req] PermissionsError: <strong>Your username or IP address has been blocked.</strong> [REDACTED] at /srv/mediawiki/tags/2023-06-14_13:35:46/includes/editpage/EditPage.php:998) [stacktrace] #0 /srv/mediawiki/tags/2023-06-14_13:35:46/includes/editpage/EditPage.php(676): MediaWiki\\EditPage\\EditPage->displayPermissionsError() #1 /srv/mediawiki/tags/2023-06-14_13:35:46/extensions/LiquidThreads/includes/LqtView.php(691): MediaWiki\\EditPage\\EditPage->edit() #2 /srv/mediawiki/tags/2023-06-14_13:35:46/extensions/LiquidThreads/includes/LqtView.php(409): LqtView->showReplyForm() #3 /srv/mediawiki/tags/2023-06-14_13:35:46/extensions/LiquidThreads/includes/LqtView.php(481): LqtView->doInlineEditForm() #4 /srv/mediawiki/tags/2023-06-14_13:35:46/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(904): LqtView::getInlineEditForm() #5 [internal function]: MediaWiki\\Extension\\LiquidThreads\\Api\\ApiThreadAction->actionInlineEditForm() #6 /srv/mediawiki/tags/2023-06-14_13:35:46/extensions/LiquidThreads/includes/Api/ApiThreadAction.php(75): call_user_func_array() #7 /srv/mediawiki/tags/2023-06-14_13:35:46/includes/api/ApiMain.php(1913): MediaWiki\\Extension\\LiquidThreads\\Api\\ApiThreadAction->execute() #8 /srv/mediawiki/tags/2023-06-14_13:35:46/includes/api/ApiMain.php(890): ApiMain->executeAction() #9 /srv/mediawiki/tags/2023-06-14_13:35:46/includes/api/ApiMain.php(861): ApiMain->executeActionWithErrorHandling() #10 /srv/mediawiki/tags/2023-06-14_13:35:46/api.php(95): ApiMain->execute() #11 /srv/mediawiki/tags/2023-06-14_13:35:46/api.php(48): wfApiMain() #12 {main} ","exception_url":"[no req]","reqId":"d258015cf423114d64ac7d0d","caught_by":"entrypoint"} []
    • Task
    Implement the Hook system added in MediaWiki 1.35 in the extensions, see [[ https://phabricator.wikimedia.org/source/mediawiki/browse/master/docs/Hooks.md | Hooks.md ]] for documentation. [ ] Create HookRunner class and the hook handler interfaces [ ] Use hook handlers [ ] core [ ] UserMerge
    • Task
    • ·Closed
    How many wikis use these? How many pages? How many comments? Are they still used actively? (How many comments in the last 30 days?) Maybe also get statistics for log actions (how much does hiding / deletion / etc get used?).
    • Task
    • ·Closed
    Flow has code for converting LiquidThreads pages to Flow, and for converting Flow pages to wikitext. These can be combined to convert LQT pages to wikitext. This can be done without installing Flow, through the API. Does it provide decent wikitext (given that LQT -> wikitext conversion wasn't a use case it was designed for)? We should find some test pages (e.g. the [[https://translatewiki.net/wiki/Support/LiquidThreads|support page]] on translatewiki.net) and test. (See also {T332103} which should probably be done first.)
    • Task
    • ·Closed
    == Scenario 1 === Steps to reproduce 1. Open https://hu.wikipedia.org/wiki/Szerkeszt%C5%91vita:Teszt_Elem%C3%A9r. //Please note that this is a test user, so you may play with the page as you wish.// === Actual result 2. The talk page empty state experience (T270323) appears. === Expected result 2. The talk page empty state experience doesn’t appear. LiquidThreads should handle starting discussions. == Scenario 2 === Steps to reproduce 2. On the above page, click the new topic tab (the one added by the skin, not the ones added by LQT and DiscussionTools). === Actual result 3. Both the LQT and the DiscussionTools new topic experience appears. The DiscussionTools one appears within the last LQT thread; its topic field appears two more times. {F36821347} === Expected result 3. DiscussionTools doesn’t do anything. It’s a LQT talk page, none of DiscussionTools’ business. == Other information The page I used in this bug report is on huwiki, but it’s more visible on translatewiki.net, which recently enabled DiscussionTools, but still extensively uses LQT (which was the default experience before).
    • Task
    ==== Motivation A preliminary investigation (T326759) has found that the LiquidThreads extension may be affected by IP Masking. This means that LiquidThreads will likely need to be modified to support temporary accounts such that it does not expose IP addresses after the launch of Temporary Accounts for Unregistered Editors. ===== Usage stats In [August 2023](https://docs.google.com/spreadsheets/d/1UhgSLvjqQxQlpL6GW3ghBkI88lo7LMurGynwnHKYBLI/edit#gid=0), on average: LiquidThreads was used less than once per day. ===== Where is it enabled? It is presently enabled on only on 5 Wikimedia wikis: * enwikinews * enwiktionary * huwiki * ptwikibooks * svwikisource ===== Proposed approach: The easiest approach would likely be to follow the approach for Flow (T346108). Logged out traffic can't post to LQT pages until they have either logged into an account or created a Temporary account (by editing through a different mechanism that gives them a temporary account). Provide an informative message for logged out traffic that attempts to edit LQT pages. !!Technical investigation pending!! If this approach is to be followed then the logical next steps here may look like this: [] Initiate a community conversation with the communities using LQT and let them know of our proposed approach. Provide sufficient time for assessing community feedback. [] Based on feedback, progress with disallowing unregistered editors from editing LQT without a prior temporary account. Provide an informative message for unregistered editors on LQT pages.
    • Task
    • ·Closed
    Now that {T243051} is done, this extension should migrate away from IDatabase::select() to [[https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/refs/heads/master/includes/libs/rdbms/querybuilder/SelectQueryBuilder.php|SelectQueryBuilder]]. It would improve readability of the code, avoids mistakes by passing the wrong order of arguments, etc. For more information check T243051 and [[https://www.mediawiki.org/wiki/Manual:Database_access#SelectQueryBuilder|its documentation]]. Note that query builder is a different paradigm and changes should not be one-to-one. For example, avoid using joinConds().
    • Task
    • ·Closed
    According to T42626 the timestamp should be adjust from varbinary(14) to binary(14) because there is no need to hold infinite. Affected columns: thread.ums_read_timestamp thread.th_timestamp On the following columns the default of empty string needs to be removed: thread.thread_modified thread.thread_created
    • Task
    • ·Closed
    The DDL for table `thread` contains a `UNIQUE` constraint on the column definition and a `UNIQUE (thread_root)`, that results in a duplicate index called `thread_root_2` (at least in my version 10.1.34-MariaDB) One definition should be removed. ```lang=sql CREATE TABLE /*$wgDBprefix*/thread ( thread_id int(8) unsigned NOT NULL PRIMARY KEY auto_increment, thread_root int(8) unsigned UNIQUE NOT NULL, thread_ancestor int(8) unsigned NOT NULL, thread_parent int(8) unsigned NULL, thread_summary_page int(8) unsigned NULL, thread_subject varchar(255) NULL, thread_author_id int unsigned NULL, thread_author_name varchar(255) NULL, thread_modified char(14) binary NOT NULL default '', thread_created char(14) binary NOT NULL default '', thread_editedness int(1) NOT NULL default 0, thread_article_namespace int NOT NULL, thread_article_title varchar(255) binary NOT NULL, thread_article_id int(8) unsigned NOT NULL, -- Special thread types (deleted/move trace/normal) thread_type int(4) unsigned NOT NULL default 0, -- Sort key thread_sortkey varchar(255) NOT NULL default '', -- Reply count, -1 means uninitialised. thread_replies int(8) DEFAULT -1, -- Signature thread_signature TINYBLOB NULL, UNIQUE (thread_root) ) /*$wgDBTableOptions*/; ```
    • Task
    • ·Closed
    We are targeting having a single hook for modifying menus: SkinTemplateNavigation::Universal Since 1.36 we've been encouraging use of SkinTemplateNavigation::Universal instead of [[ https://www.mediawiki.org/wiki/Manual:Hooks/PersonalUrls | PersonalUrls hook ]]. It's a good time now to move over all remaining usages and deprecate this method. # TODO [x] Update [[ https://codesearch.wmcloud.org/deployed/?q=%22PersonalUrls%22%3A&i=nope&files=&excludeFiles=&repos= | remaining usages ]] in Wikimedia deployed extensions [x] Using the PersonalUrls hook should send deprecation warnings. # sign off steps [x] Open tasks/pull requests for all remaining usages https://codesearch.wmcloud.org/search/?q=%22PersonalUrls%22&i=nope&files=&excludeFiles=&repos=
    • Task
    • ·Closed
    ==== Error ==== * mwversion: `1.39.0-wmf.13` * reqId: `5338c7c1-4516-4aea-bc66-ca4a26a1ecb4` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2022-05-28T11:58:59.000Z',to:'2022-05-29T12:00:27.200Z'))&_a=(query:(query_string:(query:'reqId:%225338c7c1-4516-4aea-bc66-ca4a26a1ecb4%22'))) | Find reqId in Logstash ]] ```name=normalized_message [{reqId}] {exception_url} PHP Notice: Undefined property: stdClass::$page_restrictions ``` ```name=exception.trace,lines=10 from /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(835) #0 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(835): MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(84): Thread::bulkLoad(array) #2 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(97): Threads::loadFromResult(Wikimedia\Rdbms\MysqliResultWrapper, Wikimedia\Rdbms\DBConnRef, boolean) #3 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(169): Threads::where(array, array, boolean) #4 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(1255): Threads::withId(string) #5 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(980): Thread->topmostThread() #6 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(710): Thread->doLazyUpdates() #7 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(638): Thread->__construct(stdClass) #8 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Thread.php(854): Thread::newFromRow(stdClass) #9 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(84): Thread::bulkLoad(array) #10 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(97): Threads::loadFromResult(Wikimedia\Rdbms\MysqliResultWrapper, Wikimedia\Rdbms\DBConnRef, boolean) #11 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/Threads.php(154): Threads::where(array, array, boolean) #12 /srv/mediawiki/php-1.39.0-wmf.13/extensions/LiquidThreads/classes/LqtHooks.php(913): Threads::withRoot(WikiPage) #13 /srv/mediawiki/php-1.39.0-wmf.13/includes/HookContainer/HookContainer.php(338): LqtHooks::onGetUserPermissionsErrors(Title, User, string, string) #14 /srv/mediawiki/php-1.39.0-wmf.13/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #15 /srv/mediawiki/php-1.39.0-wmf.13/includes/HookContainer/HookRunner.php(1949): MediaWiki\HookContainer\HookContainer->run(string, array) #16 /srv/mediawiki/php-1.39.0-wmf.13/includes/Permissions/PermissionManager.php(550): MediaWiki\HookContainer\HookRunner->onGetUserPermissionsErrors(Title, User, string, string) #17 /srv/mediawiki/php-1.39.0-wmf.13/includes/Permissions/PermissionManager.php(508): MediaWiki\Permissions\PermissionManager->checkPermissionHooks(string, User, array, string, boolean, Title) #18 /srv/mediawiki/php-1.39.0-wmf.13/includes/Permissions/PermissionManager.php(298): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal(string, User, Title, string, boolean) #19 /srv/mediawiki/php-1.39.0-wmf.13/includes/Permissions/UserAuthority.php(290): MediaWiki\Permissions\PermissionManager->userCan(string, User, Title, string) #20 /srv/mediawiki/php-1.39.0-wmf.13/includes/Permissions/UserAuthority.php(208): MediaWiki\Permissions\UserAuthority->internalCan(string, string, Title, NULL) #21 /srv/mediawiki/php-1.39.0-wmf.13/includes/user/User.php(3729): MediaWiki\Permissions\UserAuthority->authorizeRead(string, Title, NULL) #22 /srv/mediawiki/php-1.39.0-wmf.13/includes/api/ApiFeedContributions.php(236): User->authorizeRead(string, Title) #23 /srv/mediawiki/php-1.39.0-wmf.13/includes/api/ApiFeedContributions.php(208): ApiFeedContributions->feedItem(stdClass) #24 /srv/mediawiki/php-1.39.0-wmf.13/includes/api/ApiMain.php(1900): ApiFeedContributions->execute() #25 /srv/mediawiki/php-1.39.0-wmf.13/includes/api/ApiMain.php(874): ApiMain->executeAction() #26 /srv/mediawiki/php-1.39.0-wmf.13/includes/api/ApiMain.php(845): ApiMain->executeActionWithErrorHandling() #27 /srv/mediawiki/php-1.39.0-wmf.13/api.php(90): ApiMain->execute() #28 /srv/mediawiki/php-1.39.0-wmf.13/api.php(45): wfApiMain() #29 /srv/mediawiki/w/api.php(3): require(string) #30 {main} ``` ==== Impact ==== ==== Notes ==== Seems to be caused by the drop for page.page_restrictions.
    • Task
    • ·Closed
    hi, the problem next is very strange, i installed mediawiki 1.37.2 in a shared host with litespeed web server but the problem when use flow extension or similar extension which liquidtherads or discussiontools. the problem is tested in flow, to the add topic the publicatin show timestamps **"2 minutes"** that is, 2 minutes in advance from the date and time of the server. since I set the time zone and for example my hour is 3:17, if you add the topic right now, the publication shows it was added at 3:19, I tried to see if it's a problem with the php configuration but nothing turned out I don't know if it's a mediawiki problem either but the same thing happens with the //DiscussionTools// and //LiquidThreads// extensions. {F35111237}
    • Task
    • ·Closed
    ``` [stacktrace] #0 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/GlobalFunctions.php(194): MWExceptionHandler::handleError() #1 /srv/mediawiki/tags/2022-01-13_09:04:15/extensions/LiquidThreads/classes/LqtHooks.php(598): wfArrayInsertAfter() #2 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/HookContainer/HookContainer.php(338): LqtHooks::onPersonalUrls() #3 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/HookContainer/HookContainer.php(137): MediaWiki\\HookContainer\\HookContainer->callLegacyHook() #4 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/HookContainer/HookRunner.php(3005): MediaWiki\\HookContainer\\HookContainer->run() #5 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/skins/SkinTemplate.php(565): MediaWiki\\HookContainer\\HookRunner->onPersonalUrls() #6 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/skins/SkinTemplate.php(1242): SkinTemplate->buildPersonalUrls() #7 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/skins/SkinTemplate.php(774): SkinTemplate->buildContentNavigationUrls() #8 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/skins/SkinTemplate.php(746): SkinTemplate->getPortletsTemplateData() #9 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/skins/Skin.php(677): SkinTemplate->getCategoryLinks() #10 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/api/ApiParse.php(540): Skin->getCategories() #11 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/api/ApiMain.php(1889): ApiParse->execute() #12 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/api/ApiMain.php(868): ApiMain->executeAction() #13 /srv/mediawiki/tags/2022-01-13_09:04:15/includes/api/ApiMain.php(839): ApiMain->executeActionWithErrorHandling() #14 /srv/mediawiki/tags/2022-01-13_09:04:15/api.php(90): ApiMain->execute() #15 /srv/mediawiki/tags/2022-01-13_09:04:15/api.php(45): wfApiMain() #16 {main} ```
    • Task
    • ·Closed
    In Chinese language wikis like zh.wikipedia.org , the LiquidThread content (including topic, content) cannot be converted even when selected the display variant. **Steps to Reproduce:** - Create a LiquidThread thread with one of the language variant - Select another language variant as the display variant **Actual Results:** Unconverted content. **Expected Results:** Converted content.
    • Task
    • ·Closed
    ==== Error ==== * mwversion: `1.38.0-wmf.5` * reqId: `83ab27b8-9bb1-479a-8e2c-4a78bdba2514` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2021-10-19T13:30:39.000Z',to:'2021-10-20T13:33:57.942Z'))&_a=(query:(query_string:(query:'reqId:%2283ab27b8-9bb1-479a-8e2c-4a78bdba2514%22'))) | Find reqId in Logstash ]] * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:now-30d,to:now))&_a=(query:(query_string:(query:'normalized_message:%22%5B%7BreqId%7D%5D%20%7Bexception_url%7D%20%20%20PHP%20Deprecated:%20Use%20of%20ParserOutput::getProperty%20was%20deprecated%20in%20MediaWiki%201.38.%20%5BCalled%20from%20LqtDiscussionPager::getPageLimit%5D%22'))) | Find normalized_message in Logstash ]] ```name=normalized_message [{reqId}] {exception_url} PHP Deprecated: Use of ParserOutput::getProperty was deprecated in MediaWiki 1.38. [Called from LqtDiscussionPager::getPageLimit] ``` ```name=exception.trace,lines=10 from /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/pages/LqtDiscussionPager.php(30) #0 [internal function]: MWExceptionHandler::handleError(integer, string, string, string, array) #1 /srv/mediawiki/php-1.38.0-wmf.5/includes/debug/MWDebug.php(375): trigger_error(string, integer) #2 /srv/mediawiki/php-1.38.0-wmf.5/includes/debug/MWDebug.php(351): MWDebug::sendRawDeprecated(string, boolean, string) #3 /srv/mediawiki/php-1.38.0-wmf.5/includes/debug/MWDebug.php(230): MWDebug::deprecatedMsg(string, string, string, integer) #4 /srv/mediawiki/php-1.38.0-wmf.5/includes/GlobalFunctions.php(1005): MWDebug::deprecated(string, string, string, integer) #5 /srv/mediawiki/php-1.38.0-wmf.5/includes/parser/ParserOutput.php(1185): wfDeprecated(string, string) #6 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/pages/LqtDiscussionPager.php(30): ParserOutput->getProperty(string) #7 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/pages/LqtDiscussionPager.php(17): LqtDiscussionPager->getPageLimit() #8 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/pages/TalkpageView.php(402): LqtDiscussionPager->__construct(Article, string) #9 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/pages/TalkpageView.php(346): TalkpageView->getPager() #10 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/classes/LqtDispatch.php(67): TalkpageView->show() #11 /srv/mediawiki/php-1.38.0-wmf.5/extensions/LiquidThreads/classes/LqtDispatch.php(223): LqtDispatch::talkpageMain(OutputPage, Article, Title, User, WebRequest) #12 /srv/mediawiki/php-1.38.0-wmf.5/includes/HookContainer/HookContainer.php(338): LqtDispatch::tryPage(OutputPage, Article, Title, User, WebRequest, MediaWiki) #13 /srv/mediawiki/php-1.38.0-wmf.5/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #14 /srv/mediawiki/php-1.38.0-wmf.5/includes/HookContainer/HookRunner.php(2491): MediaWiki\HookContainer\HookContainer->run(string, array) #15 /srv/mediawiki/php-1.38.0-wmf.5/includes/MediaWiki.php(507): MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(OutputPage, Article, Title, User, WebRequest, MediaWiki) #16 /srv/mediawiki/php-1.38.0-wmf.5/includes/MediaWiki.php(320): MediaWiki->performAction(Article, Title) #17 /srv/mediawiki/php-1.38.0-wmf.5/includes/MediaWiki.php(925): MediaWiki->performRequest() #18 /srv/mediawiki/php-1.38.0-wmf.5/includes/MediaWiki.php(559): MediaWiki->main() #19 /srv/mediawiki/php-1.38.0-wmf.5/index.php(53): MediaWiki->run() #20 /srv/mediawiki/php-1.38.0-wmf.5/index.php(46): wfIndexMain() #21 /srv/mediawiki/w/index.php(3): require(string) #22 {main} ``` ==== Impact ==== ==== Notes ====
    • Task
    • ·Closed
    ==== Error ==== * mwversion: `1.37.0-wmf.21` * reqId: `9325db1e-1f5d-4d48-829d-81bc3c71d299` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2021-08-31T03:47:20.000Z',to:'2021-09-01T18:33:14.501Z'))&_a=(query:(query_string:(query:'reqId:%229325db1e-1f5d-4d48-829d-81bc3c71d299%22'))) | Find reqId in Logstash ]] * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:now-30d,to:now))&_a=(query:(query_string:(query:'normalized_message:%22%5B%7BreqId%7D%5D%20%7Bexception_url%7D%20%20%20Error:%20Call%20to%20a%20member%20function%20getPage()%20on%20null%22'))) | Find normalized_message in Logstash ]] ```name=normalized_message [{reqId}] {exception_url} Error: Call to a member function getPage() on null ``` ```name=exception.trace,lines=10 from /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Thread.php(1093) #0 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Thread.php(710): Thread->doLazyUpdates() #1 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Thread.php(638): Thread->__construct(stdClass) #2 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Thread.php(853): Thread::newFromRow(stdClass) #3 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Threads.php(84): Thread::bulkLoad(array) #4 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Threads.php(97): Threads::loadFromResult(Wikimedia\Rdbms\MysqliResultWrapper, Wikimedia\Rdbms\MaintainableDBConnRef, boolean) #5 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/Threads.php(150): Threads::where(array, array, boolean) #6 /srv/mediawiki/php-1.37.0-wmf.21/extensions/LiquidThreads/classes/LqtHooks.php(911): Threads::withRoot(WikiPage) #7 /srv/mediawiki/php-1.37.0-wmf.21/includes/HookContainer/HookContainer.php(338): LqtHooks::onGetUserPermissionsErrors(Title, User, string, string) #8 /srv/mediawiki/php-1.37.0-wmf.21/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #9 /srv/mediawiki/php-1.37.0-wmf.21/includes/HookContainer/HookRunner.php(1957): MediaWiki\HookContainer\HookContainer->run(string, array) #10 /srv/mediawiki/php-1.37.0-wmf.21/includes/Permissions/PermissionManager.php(508): MediaWiki\HookContainer\HookRunner->onGetUserPermissionsErrors(Title, User, string, string) #11 /srv/mediawiki/php-1.37.0-wmf.21/includes/Permissions/PermissionManager.php(464): MediaWiki\Permissions\PermissionManager->checkPermissionHooks(string, User, array, string, boolean, Title) #12 /srv/mediawiki/php-1.37.0-wmf.21/includes/Permissions/PermissionManager.php(311): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal(string, User, Title, string) #13 /srv/mediawiki/php-1.37.0-wmf.21/includes/Permissions/UserAuthority.php(262): MediaWiki\Permissions\PermissionManager->getPermissionErrors(string, User, Title, string) #14 /srv/mediawiki/php-1.37.0-wmf.21/includes/Permissions/UserAuthority.php(208): MediaWiki\Permissions\UserAuthority->internalCan(string, string, Title, MediaWiki\Permissions\PermissionStatus) #15 /srv/mediawiki/php-1.37.0-wmf.21/includes/user/User.php(4313): MediaWiki\Permissions\UserAuthority->authorizeRead(string, Title, MediaWiki\Permissions\PermissionStatus) #16 /srv/mediawiki/php-1.37.0-wmf.21/includes/MediaWiki.php(225): User->authorizeRead(string, Title, MediaWiki\Permissions\PermissionStatus) #17 /srv/mediawiki/php-1.37.0-wmf.21/includes/MediaWiki.php(925): MediaWiki->performRequest() #18 /srv/mediawiki/php-1.37.0-wmf.21/includes/MediaWiki.php(559): MediaWiki->main() #19 /srv/mediawiki/php-1.37.0-wmf.21/index.php(53): MediaWiki->run() #20 /srv/mediawiki/php-1.37.0-wmf.21/index.php(46): wfIndexMain() #21 /srv/mediawiki/w/index.php(3): require(string) #22 {main} ``` ==== Impact ==== ==== Notes ==== * 1 in the past 24 hours (but we're only on group0)
    • Task
    ==== Error ==== * mwversion: `1.37.0-wmf.17` * reqId: `bd61226b-d796-4f6c-bc5a-ea319e04d45c` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2021-08-10T15:15:56.000Z',to:'2021-08-11T18:45:39.521Z'))&_a=(query:(query_string:(query:'reqId:%22bd61226b-d796-4f6c-bc5a-ea319e04d45c%22'))) | Find reqId in Logstash ]] ```name=normalized_message [{reqId}] {exception_url} PHP Notice: Exception doing lazy updates: Exception: Thread::splitIncrementFromSubject: thread subject has no increment: ``` ```name=exception.trace,lines=10 from /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Thread.php(712) #0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Thread.php(712): trigger_error(string) #2 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Thread.php(638): Thread->__construct(stdClass) #3 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Thread.php(853): Thread::newFromRow(stdClass) #4 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Threads.php(84): Thread::bulkLoad(array) #5 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Threads.php(97): Threads::loadFromResult(Wikimedia\Rdbms\MysqliResultWrapper, Wikimedia\Rdbms\MaintainableDBConnRef, boolean) #6 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/Threads.php(150): Threads::where(array, array, boolean) #7 /srv/mediawiki/php-1.37.0-wmf.17/extensions/LiquidThreads/classes/LqtHooks.php(911): Threads::withRoot(WikiPage) #8 /srv/mediawiki/php-1.37.0-wmf.17/includes/HookContainer/HookContainer.php(338): LqtHooks::onGetUserPermissionsErrors(Title, User, string, string) #9 /srv/mediawiki/php-1.37.0-wmf.17/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #10 /srv/mediawiki/php-1.37.0-wmf.17/includes/HookContainer/HookRunner.php(4032): MediaWiki\HookContainer\HookContainer->run(string, array) #11 /srv/mediawiki/php-1.37.0-wmf.17/includes/Permissions/PermissionManager.php(504): MediaWiki\HookContainer\HookRunner->onUserCan(Title, User, string, string) #12 /srv/mediawiki/php-1.37.0-wmf.17/includes/Permissions/PermissionManager.php(464): MediaWiki\Permissions\PermissionManager->checkPermissionHooks(string, User, array, string, boolean, Title) #13 /srv/mediawiki/php-1.37.0-wmf.17/includes/Permissions/PermissionManager.php(311): MediaWiki\Permissions\PermissionManager->getPermissionErrorsInternal(string, User, Title, string) #14 /srv/mediawiki/php-1.37.0-wmf.17/includes/Permissions/UserAuthority.php(262): MediaWiki\Permissions\PermissionManager->getPermissionErrors(string, User, Title, string) #15 /srv/mediawiki/php-1.37.0-wmf.17/includes/Permissions/UserAuthority.php(208): MediaWiki\Permissions\UserAuthority->internalCan(string, string, Title, MediaWiki\Permissions\PermissionStatus) #16 /srv/mediawiki/php-1.37.0-wmf.17/includes/user/User.php(4309): MediaWiki\Permissions\UserAuthority->authorizeRead(string, Title, MediaWiki\Permissions\PermissionStatus) #17 /srv/mediawiki/php-1.37.0-wmf.17/includes/MediaWiki.php(225): User->authorizeRead(string, Title, MediaWiki\Permissions\PermissionStatus) #18 /srv/mediawiki/php-1.37.0-wmf.17/includes/MediaWiki.php(925): MediaWiki->performRequest() #19 /srv/mediawiki/php-1.37.0-wmf.17/includes/MediaWiki.php(559): MediaWiki->main() #20 /srv/mediawiki/php-1.37.0-wmf.17/index.php(53): MediaWiki->run() #21 /srv/mediawiki/php-1.37.0-wmf.17/index.php(46): wfIndexMain() #22 /srv/mediawiki/w/index.php(3): require(string) #23 {main} ``` ==== Impact ==== ==== Notes ==== * Seems to be happening to replies to just a single thread on enwikinews
    • Task
    • ·Closed
    ==== Error ==== * mwversion: `1.37.0-wmf.16` * reqId: `a9b9d2e3-d620-4aa9-823a-9ab91b9fbf76` * [[ https://logstash.wikimedia.org/app/dashboards#/view/AXFV7JE83bOlOASGccsT?_g=(time:(from:'2021-07-27T15:07:16.000Z',to:'2021-07-28T18:16:06.338Z'))&_a=(query:(query_string:(query:'reqId:%22a9b9d2e3-d620-4aa9-823a-9ab91b9fbf76%22'))) | Find reqId in Logstash ]] ```name=normalized_message [{reqId}] {exception_url} Wikimedia\Assert\ParameterTypeException: Bad value for parameter $target: must be a MediaWiki\Linker\LinkTarget|MediaWiki\Page\PageReference ``` ```name=exception.trace,lines=10 from /srv/mediawiki/php-1.37.0-wmf.16/vendor/wikimedia/assert/src/Assert.php(105) #0 /srv/mediawiki/php-1.37.0-wmf.16/includes/linker/LinkRenderer.php(165): Wikimedia\Assert\Assert::parameterType(array, string, string) #1 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/classes/LqtView.php(1773): MediaWiki\Linker\LinkRenderer->makeLink(string) #2 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/classes/LqtView.php(1808): LqtView->showMovedThread(Thread) #3 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/classes/LqtView.php(2174): LqtView->showSingleThread(Thread) #4 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/pages/ThreadPermalinkView.php(218): LqtView->showThread(Thread, integer, integer, array) #5 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/classes/LqtDispatch.php(105): ThreadPermalinkView->show() #6 /srv/mediawiki/php-1.37.0-wmf.16/extensions/LiquidThreads/classes/LqtDispatch.php(226): LqtDispatch::threadPermalinkMain(OutputPage, Article, Title, User, WebRequest) #7 /srv/mediawiki/php-1.37.0-wmf.16/includes/HookContainer/HookContainer.php(338): LqtDispatch::tryPage(OutputPage, Article, Title, User, WebRequest, MediaWiki) #8 /srv/mediawiki/php-1.37.0-wmf.16/includes/HookContainer/HookContainer.php(137): MediaWiki\HookContainer\HookContainer->callLegacyHook(string, array, array, array) #9 /srv/mediawiki/php-1.37.0-wmf.16/includes/HookContainer/HookRunner.php(2505): MediaWiki\HookContainer\HookContainer->run(string, array) #10 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(507): MediaWiki\HookContainer\HookRunner->onMediaWikiPerformAction(OutputPage, Article, Title, User, WebRequest, MediaWiki) #11 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(320): MediaWiki->performAction(Article, Title) #12 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(925): MediaWiki->performRequest() #13 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(559): MediaWiki->main() #14 /srv/mediawiki/php-1.37.0-wmf.16/index.php(53): MediaWiki->run() #15 /srv/mediawiki/php-1.37.0-wmf.16/index.php(46): wfIndexMain() #16 /srv/mediawiki/w/index.php(3): require(string) #17 {main} ``` ==== Impact ==== * Happened once in the past 4 hours * Easy to recreate this issue via GET request * Looks like user-input error, but showing up as a fatal * Adding #platform_engineering since I think this is mostly not maintained by anyone and I'm hopeful they may have some insight. ==== Notes ====
    • Task
    • ·Closed
    This method is intended to convert the result of `PermissionManager::getPermissionErrors` to a Status object. With Authority, this method should no longer be needed - we can just pass `PermissionStatus` to `ApiBase::dieStatus` directly. The method doesn't have wide usage, only a few extensions, but in core the result to `RecentChange::doMarkPatrolled` is passed to it. This method should be refactored as a part of {T283220} to return status as well, then this task will get unblocked. Per https://codesearch.wmcloud.org/search/?q=errorArrayToStatus : [ ] MediaWiki Core [ ] #mediawiki-extensions-flaggedrevs [ ] #mediawiki-extensions-liquidthreads [ ] #regexblock
    • Task
    • ·Closed
    2 identical hooks exist since 1.35: GetUserPermissionsErrors and GetUserPermissionsErrorsExpensive There's 2 deployed extensions that still use `userCan` hook - they should be moved to either of the new hooks, depending on how expensive the checks are, and the `userCan` hook should be deprecated [x] extensions/JsonConfig [x] extensions/LiquidThreads
    • Task
    • ·Closed
    Since WatchAction::getWatchToken will be hard deprecated, uses of this method must be replaced with CsrfTokenSet::getToken.
    • Task
    • ·Closed
    Note: It looks like a possible SQL injection attempt. === Error === `MediaWiki version:` **`1.37.0-wmf.6`** ```name=message Argument 1 passed to WikiPage::factory() must implement interface MediaWiki\Page\PageIdentity, null given, called in /srv/mediawiki/php-1.37.0-wmf.6/extensions/LiquidThreads/api/ApiFeedLQTThreads.php on line 187 ``` === Impact === === Notes ===
    • Task
    Some extension still using `EditPageBeforeEditToolbar` hook which trigger a deprecation notice and selenium are failing, which makes the whole extension broken. - `@deprecated 1.36 Use one of the many other EditPage hooks instead` - T278563 Search: https://codesearch.wmcloud.org/search/?q=%5CbEditPageBeforeEditToolbar%5Cb&i=nope&files=&excludeFiles=&repos= [x] TinyMCE (now fixed in Version 1.1 released May 26, 2021) [ ] JsonData [ ] LiquidThreads (running the hook, not using it)
    • Task
    • ·Closed
    ```counterexample #0 /srv/mediawiki/tags/2021-04-21_08:48:57/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(187): WikiPage::factory(NULL) #1 /srv/mediawiki/tags/2021-04-21_08:48:57/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(58): ApiFeedLQTThreads->getConditions(Array, Object(Wikimedia\\Rdbms\\MaintainableDBConnRef)) #2 /srv/mediawiki/tags/2021-04-21_08:48:57/includes/api/ApiMain.php(1647): ApiFeedLQTThreads->execute() #3 /srv/mediawiki/tags/2021-04-21_08:48:57/includes/api/ApiMain.php(617): ApiMain->executeAction() #4 /srv/mediawiki/tags/2021-04-21_08:48:57/includes/api/ApiMain.php(588): ApiMain->executeActionWithErrorHandling() #5 /srv/mediawiki/tags/2021-04-21_08:48:57/api.php(90): ApiMain->execute() #6 /srv/mediawiki/tags/2021-04-21_08:48:57/api.php(45): wfApiMain() #7 {main} ```
    • Task
    • ·Closed
    The `legacy` feature of ResourceLoaderSkinModule will be deprecated in the 1.36 release (see T89981) In the 1.37 release Vector will drop use of the `legacy` set of styles This will reduce the amount of bytes on the critical path of Vector. This will also remove styling support for the elements `.mw-ajax-loader`, `.mw-small-spinner` https://codesearch.wmcloud.org/deployed/?q=(mw-ajax-loader%7Cmw-small-spinner)&i=nope&files=&excludeFiles=&repos= [x] VIsualEditor https://gerrit.wikimedia.org/r/676129 [ ] LiquidThreads [x] QuickSurverys [x] Wikibase {T279880} Repos that wish to continue to use these styles should either 1) copy across the style to their own repository. It would be preferable if such repos used their own class as well to avoid false positives in the above search result. e.g. ``` .mw-ajax-loader { background-image: url( images/ajax-loader.gif ); background-position: center center; background-repeat: no-repeat; padding: 16px; position: relative; top: -16px; } .mw-small-spinner { padding: 10px !important; /* stylelint-disable-line declaration-no-important */ margin-right: 0.6em; background-image: url( images/spinner.gif ); background-position: center center; background-repeat: no-repeat; } ``` 2) Use `$.createSpinner()` from the 'jquery.spinner' library.
    • Task
    • ·Closed
    === Error === `MediaWiki version:` **`1.36.0-wmf.35`** ```name=message Use of Article::getId was deprecated in MediaWiki 1.35. [Called from Thread::setRoot] ```
    • Task
    • ·Closed
    User::getDefaultOptions, User::getDefaultOption were soft deprecated and now need to be hard deprecated. So we need to remove using from the extensions: [x] MultimediaViewer [x] LiquidThreads [x] PdfHandler [x] Scribunto [x] WikimediaEvents [x] CentralAuth [x] TEI
    • Task
    ``` [2021-02-15T09:12:00.537254+00:00] exception.ERROR: [5a1c5f81aa5b5681908b2cf7] /w/i.php?action=history&title=Thread%3AProject%3ATranslator%2F_as_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%E2%80%93_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%282%29%2Freply_%284%29 MWException: No root in LqtView::permalinkData {"exception":"[object] (MWException(code: 0): No root in LqtView::permalinkData at /srv/mediawiki/tags/2021-02-10_14:54:04/extensions/LiquidThreads/classes/View.php:121) [stacktrace] #0 /srv/mediawiki/tags/2021-02-10_14:54:04/extensions/LiquidThreads/classes/View.php(142): LqtView::permalinkData(Object(Thread), 'thread_history', NULL) #1 /srv/mediawiki/tags/2021-02-10_14:54:04/extensions/LiquidThreads/pages/IndividualThreadHistoryView.php(22): LqtView::permalink(Object(Thread), 'View history fo...', 'thread_history') #2 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/HookContainer/HookContainer.php(333): IndividualThreadHistoryView->customizeSubtitle(Object(Article), Object(RequestContext)) #3 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/HookContainer/HookContainer.php(140): MediaWiki\\HookContainer\\HookContainer->callLegacyHook('PageHistoryBefo...', Array, Array, Array) #4 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/HookContainer/HookRunner.php(2829): MediaWiki\\HookContainer\\HookContainer->run('PageHistoryBefo...', Array) #5 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/actions/HistoryAction.php(294): MediaWiki\\HookContainer\\HookRunner->onPageHistoryBeforeList(Object(Article), Object(RequestContext)) #6 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/actions/FormlessAction.php(48): HistoryAction->onView() #7 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/MediaWiki.php(532): FormlessAction->show() #8 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/MediaWiki.php(316): MediaWiki->performAction(Object(Article), Object(Title)) #9 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/MediaWiki.php(944): MediaWiki->performRequest() #10 /srv/mediawiki/tags/2021-02-10_14:54:04/includes/MediaWiki.php(548): MediaWiki->main() #11 /srv/mediawiki/tags/2021-02-10_14:54:04/index.php(53): MediaWiki->run() #12 /srv/mediawiki/tags/2021-02-10_14:54:04/index.php(46): wfIndexMain() #13 {main} ","exception_url":"/w/i.php?action=history&title=Thread%3AProject%3ATranslator%2F_as_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%E2%80%93_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%282%29%2Freply_%284%29","reqId":"5a1c5f81aa5b5681908b2cf7","caught_by":"entrypoint"} [] ``` Reproducable by visiting https://translatewiki.net/w/i.php?action=history&title=Thread%3AProject%3ATranslator%2F_as_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%E2%80%93_%E0%A6%85%E0%A6%B8%E0%A6%AE%E0%A7%80%E0%A6%AF%E0%A6%BC%E0%A6%BE_%282%29%2Freply_%284%29
    • Task
    • ·Closed
    After {T272770} I decided to write some scripts to find hook handlers that actually don't have a runner. I found `AbortMove` hook which is actively being used in [[https://codesearch.wmcloud.org/search/?q=AbortMove&i=nope&files=&excludeFiles=&repos=|four different extensions]] actually [[https://gerrit.wikimedia.org/g/mediawiki/core/+/9a1fdffe3af13610c14d8f5da49cf1b9d0b14726/HISTORY#7247|was removed in 1.25 ]] (why this is in "Bug fixes" section?) Its usages need to move to another hook.
    • Task
    • ·Closed
    LiquidThreads [[ https://github.com/wikimedia/mediawiki-extensions-LiquidThreads/blob/master/pages/SpecialNewMessages.php#L30 | builds an Article ]] with a special page as a title, which was deprecated. Req: /wiki/Special:NewMessages Stack: ``` #4 /srv/mediawiki/php-1.36.0-wmf.29/includes/page/WikiPage.php(146): wfDeprecatedMsg(string, string) #5 /srv/mediawiki/php-1.36.0-wmf.29/includes/page/Article.php(138): WikiPage->__construct(Title) #6 /srv/mediawiki/php-1.36.0-wmf.29/includes/page/Article.php(125): Article->newPage(Title) #7 /srv/mediawiki/php-1.36.0-wmf.29/extensions/LiquidThreads/pages/SpecialNewMessages.php(30): Article->__construct(Title, integer) #8 /srv/mediawiki/php-1.36.0-wmf.29/includes/specialpage/SpecialPage.php(645): SpecialNewMessages->execute(NULL) #9 /srv/mediawiki/php-1.36.0-wmf.29/includes/specialpage/SpecialPageFactory.php(1405): SpecialPage->run(NULL) #10 /srv/mediawiki/php-1.36.0-wmf.29/includes/MediaWiki.php(310): MediaWiki\SpecialPage\SpecialPageFactory->executePath(Title, RequestContext) #11 /srv/mediawiki/php-1.36.0-wmf.29/includes/MediaWiki.php(944): MediaWiki->performRequest() #12 /srv/mediawiki/php-1.36.0-wmf.29/includes/MediaWiki.php(548): MediaWiki->main() #13 /srv/mediawiki/php-1.36.0-wmf.29/index.php(53): MediaWiki->run() ```
    • Task
    • ·Closed
    In support of {T191231}, LiquidThreads should be migrated to using Abstract Schema
    • Task
    The `ApiThreadAction` class in liquid threads extends the `ApiEditPage` class in core The `ApiEditPage` class is not stable to extend This led to {T264200} when switching the ApiEditPage class to dependency injection Recomendation: Rewrite ApiThreadAction to avoid using ApiEditPage
    • Task
    • ·Closed
    ``` 2020-09-30 14:50:35] exception.ERROR: [e162b7f22eae08ce9ad82973] /w/api.php?action=help&recursivesubmodules=1 ArgumentCountError from line 44 of /srv/mediawiki/workdir/includes/api/ApiEditPage.php: Too few arguments to function ApiEditPage::__construct(), 2 passed in /srv/mediawiki/workdir/vendor/wikimedia/object-factory/src/ObjectFactory.php on line 184 and at least 3 expected {"exception":"[object] (ArgumentCountError(code: 0): Too few arguments to function ApiEditPage::__construct(), 2 passed in /srv/mediawiki/workdir/vendor/wikimedia/object-factory/src/ObjectFactory.php on line 184 and at least 3 expected at /srv/mediawiki/workdir/includes/api/ApiEditPage.php:44) [stacktrace] #0 /srv/mediawiki/workdir/vendor/wikimedia/object-factory/src/ObjectFactory.php(184): ApiEditPage->__construct(Object(ApiMain), 'threadaction') #1 /srv/mediawiki/workdir/vendor/wikimedia/object-factory/src/ObjectFactory.php(102): Wikimedia\\ObjectFactory::getObjectFromSpec(Array, Array) #2 /srv/mediawiki/workdir/includes/api/ApiModuleManager.php(183): Wikimedia\\ObjectFactory->createObject(Array, Array) #3 /srv/mediawiki/workdir/includes/api/ApiModuleManager.php(155): ApiModuleManager->instantiateModule('threadaction', Array) #4 /srv/mediawiki/workdir/includes/api/ApiBase.php(546): ApiModuleManager->getModule('threadaction') #5 /srv/mediawiki/workdir/includes/api/ApiBase.php(1780): ApiBase->getModuleFromPath('threadaction') #6 /srv/mediawiki/workdir/includes/api/ApiHelp.php(452): ApiBase->getFinalParamDescription() #7 /srv/mediawiki/workdir/includes/api/ApiHelp.php(167): ApiHelp::getHelpInternal(Object(DerivativeContext), Array, Array, Array) #8 /srv/mediawiki/workdir/includes/api/ApiHelp.php(54): ApiHelp::getHelp(Object(DerivativeContext), Array, Array) #9 /srv/mediawiki/workdir/includes/api/ApiMain.php(1570): ApiHelp->execute() #10 /srv/mediawiki/workdir/includes/api/ApiMain.php(550): ApiMain->executeAction() #11 /srv/mediawiki/workdir/includes/api/ApiMain.php(521): ApiMain->executeActionWithErrorHandling() #12 /srv/mediawiki/workdir/api.php(90): ApiMain->execute() #13 /srv/mediawiki/workdir/api.php(45): wfApiMain() #14 {main} ","exception_id":"e162b7f22eae08ce9ad82973","exception_url":"/w/api.php?action=help&recursivesubmodules=1","caught_by":"entrypoint"} [] ```
    • Task
    • ·Closed
    Example trace: ``` [30-Sep-2020 14:36:01 UTC] PHP Warning: Invalid argument supplied for foreach() in /srv/mediawiki/tags/2020-09-25_13:55:54/includes/parser/ParserOptions.php on line 1411 [2020-09-30 14:36:01] error.ERROR: [6380379351ad2a807748480b] /wiki/Support ErrorException from line 1397 of /srv/mediawiki/tags/2020-09-25_13:55:54/includes/parser/ParserOptions.php: PHP Warning: array_intersec t(): Expected parameter 1 to be an array, null given {"exception":"[object] (ErrorException(code: 0): PHP Warning: array_intersect(): Expected parameter 1 to be an array, null given at /srv/mediawiki/tags/2020-09- 25_13:55:54/includes/parser/ParserOptions.php:1397) [stacktrace] #0 [internal function]: MWExceptionHandler::handleError(2, 'array_intersect...', '/srv/mediawiki/...', 1397, Array) #1 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/parser/ParserOptions.php(1397): array_intersect(NULL, Array, Array) #2 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/parser/ParserCache.php(251): ParserOptions->optionsHash(NULL, Object(Title)) #3 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/parser/ParserCache.php(283): ParserCache->getKey(Object(WikiPage), Object(ParserOptions), 0) #4 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/page/WikiPage.php(1208): ParserCache->get(Object(WikiPage), Object(ParserOptions)) #5 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/page/Article.php(2307): WikiPage->getParserOutput(Object(ParserOptions), NULL) #6 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/View.php(1413): Article->getParserOutput(NULL) #7 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/View.php(1570): LqtView->showPostBody(Object(Article), NULL) #8 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/View.php(1826): LqtView->showThreadBody(Object(Thread)) #9 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/View.php(2169): LqtView->showSingleThread(Object(Thread)) #10 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/pages/TalkpageView.php(362): LqtView->showThread(Object(Thread)) #11 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/Dispatch.php(66): TalkpageView->show() #12 /srv/mediawiki/tags/2020-09-25_13:55:54/extensions/LiquidThreads/classes/Dispatch.php(222): LqtDispatch::talkpageMain(Object(OutputPage), Object(Article), Object(Title), Object(User), Object(WebRequest)) #13 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/HookContainer/HookContainer.php(331): LqtDispatch::tryPage(Object(OutputPage), Object(Article), Object(Title), Object(User), Object(WebRequest), Object(MediaWik i)) #14 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/HookContainer/HookContainer.php(138): MediaWiki\\HookContainer\\HookContainer->callLegacyHook('MediaWikiPerfor...', Array, Array, Array) #15 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/HookContainer/HookRunner.php(2543): MediaWiki\\HookContainer\\HookContainer->run('MediaWikiPerfor...', Array) #16 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/MediaWiki.php(499): MediaWiki\\HookContainer\\HookRunner->onMediaWikiPerformAction(Object(OutputPage), Object(Article), Object(Title), Object(User), Object(WebR equest), Object(MediaWiki)) #17 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/MediaWiki.php(313): MediaWiki->performAction(Object(Article), Object(Title)) #18 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/MediaWiki.php(940): MediaWiki->performRequest() #19 /srv/mediawiki/tags/2020-09-25_13:55:54/includes/MediaWiki.php(543): MediaWiki->main() #20 /srv/mediawiki/tags/2020-09-25_13:55:54/index.php(53): MediaWiki->run() #21 /srv/mediawiki/tags/2020-09-25_13:55:54/index.php(46): wfIndexMain() #22 {main} ","exception_id":"6380379351ad2a807748480b","exception_url":"/wiki/Support","caught_by":"mwe_handler"} [] ``` Must have been introduced in last 7 days.
    • Task
    • ·Closed
    About LiquidThreads extension, "Show preview" does not work in a new discussion form. Steps to Reproduce: # Open LiquidThreads-enabled talk page e.g. https://translatewiki.net/wiki/Support # Click "Start a new discussion" link # Click "Show preview" button Actual Results: The following error occurs: > No such thread > The thread you specified does not exist. Expected Results: The preview should be shown.
    • Task
    === Error === `MediaWiki version:` **`1.36.0-wmf.2`** ```name=message PHP Notice: unserialize(): Error at offset 65519 of 65535 bytes ``` === Impact === Noticed a few of these today, while monitoring logs for breakage from this week's train. Not enough to be a train blocker at this volume, however, on the principle that every non-blocker error log message adds friction for the train, I'm reporting this in the hope someone will prevent this from happening again. === Notes ===
    • Task
    • ·Closed
    Parameter $5 for gender support in {{GENDER:$5|author}} takes gender value of current viewing user, not the author of an edit, as it is supposed to. Switching between female and male in settings with Ukrainian interface switches between {{GENDER:$5|автором|авторкою}} given in /uk. ---- **URL**: [[https://translatewiki.net/wiki/MediaWiki:Lqt-thread-edited-author/uk]]
    • Task
    • ·Closed
    Reproduction steps: # Go to https://en.wiktionary.org/wiki/User_talk:Rua # Go to "+" (next to "Read", notice the absence of [[ https://en.wiktionary.org/w/index.php?title=User_talk:Rua&action=edit | edit ]]) # Enter some text # Show preview # Browser warns me that the page is asking confirmation that I want to leave and data I entered may be lost # I'm stupid so I pick "leave" instead of "stay" # "No such thread The thread you specified does not exist." # Message lost
    • Task
    **Steps to Reproduce**: 1. Go to https://translatewiki.net/wiki/User_talk:Abijeet_Patro#Test_talk_page_57850 2. Try to Delete the thread **Actual Results**: Encountered a fatal exception. ``` Fatal exception of type "Exception" ``` **Expected Results**: The thread should be deleted **Exception details**: ``` [2020-06-29 06:27:11] exception.ERROR: [c9e9a8a3052338c6bfac7113] /w/i.php?title=Thread:User_talk:Abijeet_Patro/Test_talk_page&action=delete Exception from line 1125 of /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/Thread.php: Post 57851 has contaminated reply 57852. Expected 57851, got 57850 {"exception":"[object] (Exception(code: 0): Post 57851 has contaminated reply 57852. Expected 57851, got 57850 at /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/Thread.php:1125) [stacktrace] #0 /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/Thread.php(1142): Thread->checkReplies(Array) #1 /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/DeletionController.php(48): Thread->replies() #2 /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/DeletionController.php(51): LqtDeletionController::recursivelyDeleteReplies(Object(Thread), 'Parent thread d...', Object(User)) #3 /srv/mediawiki/tags/2020-06-24_21:07:10/extensions/LiquidThreads/classes/DeletionController.php(30): LqtDeletionController::recursivelyDeleteReplies(Object(Thread), 'Parent thread d...', Object(User)) #4 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/HookContainer/HookContainer.php(320): LqtDeletionController::onArticleDeleteComplete(Object(WikiPage), Object(User), 'Parent thread d...', 6552295, Object(WikitextContent), Object(ManualLogEntry), 1) #5 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/HookContainer/HookContainer.php(131): MediaWiki\\HookContainer\\HookContainer->callLegacyHook('ArticleDeleteCo...', Array, Array, Array) #6 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/HookContainer/HookRunner.php(732): MediaWiki\\HookContainer\\HookContainer->run('ArticleDeleteCo...', Array) #7 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/page/WikiPage.php(2938): MediaWiki\\HookContainer\\HookRunner->onArticleDeleteComplete(Object(WikiPage), Object(User), 'content was: \"T...', 6552295, Object(WikitextContent), Object(ManualLogEntry), 1) #8 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/page/WikiPage.php(2774): WikiPage->doDeleteArticleBatched('content was: \"T...', false, Object(User), Array, 'delete', false) #9 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/page/Article.php(2145): WikiPage->doDeleteArticleReal('content was: \"T...', NULL, false, NULL, '', Object(User), Array, 'delete', false) #10 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/page/Article.php(1899): Article->doDelete('content was: \"T...', false) #11 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/actions/DeleteAction.php(41): Article->delete() #12 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/MediaWiki.php(527): DeleteAction->show() #13 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/MediaWiki.php(313): MediaWiki->performAction(Object(Article), Object(Title)) #14 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/MediaWiki.php(986): MediaWiki->performRequest() #15 /srv/mediawiki/tags/2020-06-24_21:07:10/includes/MediaWiki.php(543): MediaWiki->main() #16 /srv/mediawiki/tags/2020-06-24_21:07:10/index.php(47): MediaWiki->run() #17 {main} ","exception_id":"c9e9a8a3052338c6bfac7113","exception_url":"/w/i.php?title=Thread:User_talk:Abijeet_Patro/Test_talk_page&action=delete","caught_by":"entrypoint"} [] ``` **Instance details:** - Mediawiki core @ 4f4a998832fe6f2620ab83138c631fb2763fbea8 - Liquid Threads @ c81e40140d079af20c2ec2ed7ff1f1a289f7b89c
    • Task
    • ·Closed
    === Error === `MediaWiki version:` **`1.35.0-wmf.37`** ```name=message PHP Warning: Use of undefined constant NS_LQT_THREAD - assumed 'NS_LQT_THREAD' (this will throw an Error in a future version of PHP) ``` ```name=cli_argv /srv/mediawiki-staging/multiversion/MWScript.php rebuildLocalisationCache.php --wiki=cawikibooks --outdir=/tmp/scap_l10n_array_95443012 --store-class=LCStoreStaticArray --threads=30 --quiet ``` === Impact === Other than logspam, unclear. 1160 of these while syncing testwikis for T254175. === Notes === I noticed T255175 for removing LiquidThreads from production. Relevant? cc: @Jdlrobson, @Reedy
    • Task
    • ·Closed
    Since it is no longer going to be removed in {T250638}, and that task appears to have concluded that it should be un-deprecated, the use of $wgUser if a user isn't passed needs to be remedied We decided to do this by replacing the method with a similar one that requires a user to be provided - we want to update callers to the new method and then hard deprecate and later remove the old one ``` lang=php, name=doEditContent (old method) public function doEditContent( Content $content, $summary, $flags = 0, $originalRevId = false, Authority $performer = null, $serialFormat = null, $tags = [], $undidRevId = 0 ) ``` ``` lang=php, name=doUserEditContent (new method) public function doUserEditContent( Content $content, Authority $performer, $summary, $flags = 0, $originalRevId = false, $tags = [], $undidRevId = 0 ) ``` This new method was added in 1.36, so extensions that are updated to call it need to either require 1.36+ or newer, or have logic to vary which method is called based on the version. To update callers: [x] Translate (MLEB*) (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Translate/+/701271/ and https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Translate/+/702007) [x] Wikibase (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Wikibase/+/701243) [x] Flow (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Flow/+/701237) [x] MassMessage (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/MassMessage/+/701245) [x] Echo (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Echo/+/701235) [x] CentralNotice (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CentralNotice/+/701234) [x] SecurePoll (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SecurePoll/+/701233) [x] FlaggedRevs (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/FlaggedRevs/+/701232) [x] LiquidThreads (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/LiquidThreads/+/701231) [x] Babel (MLEB*) (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Babel/+/701272/) [x] CheckUser (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/CheckUser/+/701230) [x] FileImporter (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/FileImporter/+/701229) [x] GWToolset (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/GWToolset/+/701228) [x] NewUserMessage (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/NewUserMessage/+/701266) [x] ORES (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/ORES/+/701227) [x] PageTriage (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/PageTriage/+/701226) [x] Scribunto (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/Scribunto/+/701267) [x] SpamBlacklist (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/SpamBlacklist/+/701205) [x] TemplateStyles (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/TemplateStyles/+/701268) [x] UploadWizard (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/UploadWizard/+/701269) [x] WikimediaMaintenance (https://gerrit.wikimedia.org/r/c/mediawiki/extensions/WikimediaMaintenance/+/701270) [x] Core callers (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/701277) Then [x] 1.37 - hard deprecate WikiPage::doEditContent (https://gerrit.wikimedia.org/r/c/mediawiki/core/+/701725) [x] Create a separate task for the removal in 1.38 (T286139) MLEB*: As a reminder: extensions in the "MediaWiki Language Extension Bundle" need to continue supporting 1.35, so we can't just bump the required version of mediawiki.
    • Task
    • ·Closed
    The web team would like to simplify the code for menu generation in MediaWiki core. To make this easier we would like to reduce the number of hooks that can modify menus to one single hook: SkinTemplateNavigation::Universal. # Background Every time the SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks are run we also run the SkinTemplateNavigation::Universal hook. The latter is always run based on the current page. We could just run the latter and get rid of 2 needless hooks. # Proposal: Having 3 hooks doing pretty much the same thing seems gratutious. I would suggest standardizing on **SkinTemplateNavigation::Universal ** and for the hooks themselves to do the required checks they need. I am however open to keeping all three after hearing from the current extensions using these hooks (tagged) and benefits they see in having three of them. The SkinTemplateNavigation hook is deprecated in favor of SkinTemplateNavigation::Universal . It's up to callers to check whether the title exists if they care. The SkinTemplateNavigation::SpecialPage is deprecated in favor of SkinTemplateNavigation::Universal. Callers must use $skin->getTitle() to check whether the page is a special page # TODO [x] Update Extension:CentralNotice to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage [x] Update Extension:VisualEditor to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [x] Update Extension:Translate to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage [x] Update Extension:GrowthExperiments to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [x] Update Extension:LiquidThreads to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [x] Update Extension:MassMessage to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [x] Update Extension:Wikilove to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [x] SkinTemplateNavigation::SpecialPage in core is marked as deprecated [x] SkinTemplateNavigation in core is marked as deprecated # QA [x] Confirm https://codesearch.wmcloud.org/deployed/?q=SkinTemplateNavigation%3A%3ASpecialPage&i=nope&files=&excludeFiles=&repos= returns no results other than MediaWiki core [x] Confirm https://codesearch.wmcloud.org/deployed/?q=SkinTemplateNavigation%22%3A&i=nope&files=&excludeFiles=&repos= returns no results other than MediaWiki core # Sign off steps [x] Removal of this code impacts 3rd parties, however for now we are only concerned with fixing deployed Wikimedia code. Removing code will be created in a separate ticket. https://codesearch.wmcloud.org/search/?q=SkinTemplateNavigation%3A%3ASpecialPage&i=nope&files=&excludeFiles=&repos= https://codesearch.wmcloud.org/search/?q=SkinTemplateNavigation%22%3A&i=nope&files=&excludeFiles=&repos= # Fixed Extensions/skins that are fixed are listed here and have been untagged. [x] Vector [x] FileExporter [x] QuizGame [x] PictureGame [x] BlueSpice [x] NSFileRepo [x] FlaggedRevs [x] AdvancedMeta [x] TimedMediaHandler [x] Newsletter [x] TinyMCE [x] ProofreadPage [x] Update Extension:EntitySchema to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation https://gerrit.wikimedia.org/r/803880
    • Task
    • ·Closed
    * Name of the software: ** LiquidThreads * Link to code repository of the software: ** https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/extensions/LiquidThreads/ * Link to homepage of the software (if existing): ** https://www.mediawiki.org/wiki/Extension:LiquidThreads * Succinct problem statement to give context for why the review was initiated: LiquidThreads is unmaintained software. It’s used by < 9 pages on en.wiktionary, 8 on wikinews , 7 on hu wikipedia, 5 on wikibooks, 0 on sv wikisource. If that low usage is not an indication of an extension that should be removed from production I’m not sure what is. I'm not sure if the pages that are using it need to be preserved and if so how that should be done (can these be imported to flow?) https://sv.wikisource.org/w/index.php?sort=relevance&search=%23useliquidthreads&title=Special:Search&profile=advanced&fulltext=1&searchengineselect=mediawiki&advancedSearch-current=%7B%7D&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns90=1&ns91=1&ns92=1&ns93=1&ns100=1&ns101=1&ns102=1&ns103=1&ns104=1&ns105=1&ns106=1&ns107=1&ns108=1&ns109=1&ns110=1&ns111=1&ns114=1&ns115=1&ns116=1&ns117=1&ns118=1&ns119=1&ns828=1&ns829=1&ns2300=1&ns2301=1&ns2302=1&ns2303=1 https://pt.wikibooks.org/w/index.php?sort=relevance&search=%23useliquidthreads&title=Special:Search&profile=advanced&fulltext=1&searchengineselect=mediawiki&advancedSearch-current=%7B%7D&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns90=1&ns91=1&ns92=1&ns93=1&ns100=1&ns101=1&ns102=1&ns103=1&ns104=1&ns105=1&ns106=1&ns107=1&ns108=1&ns109=1&ns110=1&ns111=1&ns114=1&ns115=1&ns116=1&ns117=1&ns118=1&ns119=1&ns828=1&ns829=1&ns2300=1&ns2301=1&ns2302=1&ns2303=1 https://hu.wikipedia.org/w/index.php?sort=relevance&search=%23useliquidthreads&title=Special:Search&profile=advanced&fulltext=1&searchengineselect=mediawiki&advancedSearch-current=%7B%7D&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns90=1&ns91=1&ns92=1&ns93=1&ns100=1&ns101=1&ns102=1&ns103=1&ns104=1&ns105=1&ns106=1&ns107=1&ns108=1&ns109=1&ns110=1&ns111=1&ns114=1&ns115=1&ns116=1&ns117=1&ns118=1&ns119=1&ns828=1&ns829=1&ns2300=1&ns2301=1&ns2302=1&ns2303=1 https://en.wikinews.org/w/index.php?sort=relevance&search=%23useliquidthreads&title=Special:Search&profile=advanced&fulltext=1&searchengineselect=mediawiki&advancedSearch-current=%7B%7D&ns0=1&ns1=1&ns2=1&ns3=1&ns4=1&ns5=1&ns6=1&ns7=1&ns8=1&ns9=1&ns10=1&ns11=1&ns12=1&ns13=1&ns14=1&ns15=1&ns90=1&ns91=1&ns92=1&ns93=1&ns100=1&ns101=1&ns102=1&ns103=1&ns104=1&ns105=1&ns106=1&ns107=1&ns108=1&ns109=1&ns110=1&ns111=1&ns114=1&ns115=1&ns116=1&ns117=1&ns118=1&ns119=1&ns828=1&ns829=1&ns2300=1&ns2301=1&ns2302=1&ns2303=1 * Current entry in [mw:Developers/Maintainers](https://www.mediawiki.org/wiki/Developers/Maintainers): ** Listed Code Steward: ** Listed Maintainer: ** Listed In-training: * Number, severity, and age of known and confirmed security issues: ** * Was it a cause of production outages or incidents? List them: ** * Does it have sufficient hardware resources for now and the near future (to take into account expected usage growth)? ** * Is it a frequent cause of monitoring alerts that need action, and are they addressed timely and appropriately? ** * When it was first deployed to Wikimedia production: ** * Usage statistics based on audience(s) served: ** * Code changes committed in last 1, 3, 6, and 12 months: ** * Reliance on outdated platforms (e.g. operating systems): ** * Number of developers who committed code in the last 1, 3, 6, and 12 months: ** * Number and age of open patches: ** * Number and age of open bugs: ** * Number of known dependencies: ** * Is there a replacement/alternative for the feature? Is there a plan for a replacement? ** * Submitter's recommendation (what do you propose be done?): **
    • Task
    **Steps to reproduce:** Create a thread using quotes in the title such as https://translatewiki.net/wiki/Thread:Portal_talk:Es/Evitar_%22lista_blanca%22_y_%22lista_negra%22 Now fetch `Special:RecentChanges` **Actual results:** ```counterexample Portal talk:Es 11:06 ‎MarcoAurelio discusión contribs. bloquear publicó un hilo nuevo, «Evitar &quot;lista blanca&quot; y &quot;lista negra&quot;»‎ (Buenos días. Conforme a https://phabricator.wikimedia.org/T254646 se están cambiando los nombres de los mensajes y los contenidos de los mismos que usan las palabras "lista blanca" o "lista negra" po…) ``` **Expected results:** Quotes are parsed correctly: ``` Portal talk:Es 11:06 ‎MarcoAurelio discusión contribs. bloquear publicó un hilo nuevo, «Evitar "lista blanca" y "lista negra"»‎ (Buenos días. Conforme a https://phabricator.wikimedia.org/T254646 se están cambiando los nombres de los mensajes y los contenidos de los mismos que usan las palabras "lista blanca" o "lista negra" po…) ``` **Software details et al.:** * Project: https://translatewiki.net/ * MediaWiki: 1.35.0-alpha * LiquidThreads: 2.3-alpha * UI Language: es - Spanish * Skin: MonoBook
    • Task
    • ·Closed
    LiquidThreads is apparently still enabled on several wikis ``` ('enwikinews' => true, // Per T23956 -- Andrew 2009-02-09 'enwiktionary' => true, // T25417 -- ariel 2010-16-05 'huwiki' => true, // T24909 -- Andrew 2010-09-06 'ptwikibooks' => true, // T26143 -- Andrew 2010-08-16 'svwikisource' => true, // T25220 -- Andrew 2010-08-28 )``` It uses the soon to be deprecated SkinTemplateOutputPageBeforeExec hook. https://gerrit.wikimedia.org/g/mediawiki/extensions/LiquidThreads/+/a63a1fa2ed72a7f65bda3b922a9b68522911ffd8/extension.json#210 = Developer notes The hook is used to set new talk page messages. https://gerrit.wikimedia.org/g/mediawiki/extensions/LiquidThreads/+/a63a1fa2ed72a7f65bda3b922a9b68522911ffd8/classes/Hooks.php#80 It should instead use the ''onGetNewMessagesAlert'' hook.
    • Task
    • ·Closed
    https://integration.wikimedia.org/ci/job/mwext-php72-phan-seccheck-docker/54295/console ``` 02:09:39 <checkstyle version="6.5"> 02:09:39 <file name="import/import-parsed-discussions.php"> 02:09:39 <error line="79" severity="warning" message="Echoing expression that was not html escaped (Caused by: import/import-parsed-discussions.php +76)" source="SecurityCheck-XSS"/> 02:09:39 </file> 02:09:39 </checkstyle> ```
    • Task
    # LiquidThreads extension Analise where Article (not WikiPage) is really needed. ##Expected result [] use WikiPage instead of multiple types of argument Page|WikiPage|Article [] use WikiPage instead of Article where is enough (after research and confirmation) Examples: \Threads::synchroniseArticleData() WikipPage is enough: \Threads::withSummary \Threads::articleClause \Threads::newThreadTitle Done: \Threads::withRoot() https://phabricator.wikimedia.org/T251360
    • Task
    • ·Closed
    Call Threads::withRoot with WikiPage argument https://gerrit.wikimedia.org/r/c/mediawiki/extensions/LiquidThreads/+/592992/1/classes/Hooks.php#632
    • Task
    • ·Closed
    === Error === `MediaWiki version:` **`1.35.0-wmf.30`** ```name=message Call to a member function getRestrictions() on null ``` === Impact === One of these in the wild since deploy of 1.35.0-wmf.30. === Notes === Reproducible at the request URL.
    • Task
    • ·Closed
    `PageContentInsertComplete` is called when a page is newly created `PageContentSaveComplete` is called when a page revision is saved; if it was newly created both are called Suggest replacing these with a single hook: `PageSaveComplete`, and having whether it is new included as a parameter. This opportunity can also be used to clean up the hook implementations: * `PageContentInsertComplete` passes three parameters by reference for legacy reasons * `PageContentSaveComplete` passes four parameters by reference for legacy reasons * Both hooks include two parameters that are no longer used, `isWatch` and `section` * Both hooks pass a flags parameter, as well as a boolean `isMinor` that is simply `$flags & EDIT_MINOR`. The new hook would no longer have a minor parameter, and the flags would be checked. To see if a page is newly created, use `$flags & EDIT_NEW`. Deployed extensions to be updated: [x] AbuseFilter https://gerrit.wikimedia.org/r/c/605725 [x] PageTriage https://gerrit.wikimedia.org/r/c/604509 [x] GlobalUserPage https://gerrit.wikimedia.org/r/c/605679 [x] Jade https://gerrit.wikimedia.org/r/607661 [x] Cognate https://gerrit.wikimedia.org/r/607840 [x] Translate https://gerrit.wikimedia.org/r/607656 [x] ConfirmEdit https://gerrit.wikimedia.org/r/607352 [x] Echo https://gerrit.wikimedia.org/r/c/605724 [x] EventBus https://gerrit.wikimedia.org/r/607830 [x] FlaggedRevs https://gerrit.wikimedia.org/r/607716 [x] Gadgets https://gerrit.wikimedia.org/r/607837 [x] JsonConfig https://gerrit.wikimedia.org/r/c/605726 [x] LiquidThreads https://gerrit.wikimedia.org/r/607831 [x] MachineVision https://gerrit.wikimedia.org/r/c/605727 [x] ProofreadPage https://gerrit.wikimedia.org/r/c/605728 [x] SpamBlacklist https://gerrit.wikimedia.org/r/c/605729 [x] TheWikipediaLibrary https://gerrit.wikimedia.org/r/607842 [x] TitleBlacklist https://gerrit.wikimedia.org/r/c/605730 [x] UploadWizard https://gerrit.wikimedia.org/r/607833 [x] WikimediaEditorTasks https://gerrit.wikimedia.org/r/607836 [x] WikimediaEvents https://gerrit.wikimedia.org/r/607835 [x] FeaturedFeeds https://gerrit.wikimedia.org/r/607844 Core hard deprecation: https://gerrit.wikimedia.org/r/c/mediawiki/core/+/608676
    • Task
    • ·Closed
    They use Revision objects, and also pass objects by reference that shouldn't be changed and are only passed for legacy reasons. * `TitleMoveCompleting` -> `PageMoveCompleting` * `TitleMoveComplete` -> `PageMoveComplete` Use RevisionRecord instead of Revision Don't pass by reference ####Deployed extensions to update TitleMoveCompleting [x] Flow https://gerrit.wikimedia.org/r/607398 TitleMoveComplete [x] PageTriage https://gerrit.wikimedia.org/r/c/604509 [x] Cognate https://gerrit.wikimedia.org/r/c/608483 [x] Wikibase https://gerrit.wikimedia.org/r/608111 [x] CirrusSearch https://gerrit.wikimedia.org/r/607859 [x] EventBus https://gerrit.wikimedia.org/r/607866 [x] FlaggedRevs https://gerrit.wikimedia.org/r/c/608484 [x] GlobalUsage https://gerrit.wikimedia.org/r/607903 [x] JsonConfig https://gerrit.wikimedia.org/r/607856 [x] LiquidThreads https://gerrit.wikimedia.org/r/607900 [x] Translate https://gerrit.wikimedia.org/r/608112 [x] UploadWizard https://gerrit.wikimedia.org/r/607901 ####Core hard deprecation [x] TitleMoveCompleting https://gerrit.wikimedia.org/r/607899 [x] TitleMoveComplete https://gerrit.wikimedia.org/r/608676
    • Task
    • ·Closed
    ArticleRevisionUndeleted uses a revision, but only a revision record is needed, and the use of revision should be removed [x] Add new hook [x] Update Flow [x] Update LiquidThreads [x] Update FlaggedRevs [x] Deprecate old hook
    • Task
    **Steps to Reproduce**: 1. Open a support thread 2. Summarize it by entering a summary 3. Save **Actual Results**: Expect the summary to appear on the thread. **Expected Results**: I don't see the summary appear on the thread. **More information**: I've summarized this thread here - https://translatewiki.net/wiki/Thread:Support/Username_change_(5) with the summary here - https://translatewiki.net/wiki/Summary:Support/Username_change_(5)_(3), but it doesn't appear on the thread. Summary seemed to have worked around 22nd Dec, last year at this time: https://translatewiki.net/wiki/Summary:Support/Request_to_enable_localization_for_Ghotuo,_as_per_Translatewiki.net_languages
    • Task
    • ·Closed
    See parent task for reasoning Codesearch: https://codesearch.wmflabs.org/deployed/?q=-%3EgetUserPermissionsErrors%5C(&i=nope&files=php%24&repos= [x] LiquidThreads https://gerrit.wikimedia.org/r/c/571602 [x] Translate https://gerrit.wikimedia.org/r/c/571599 [x] ArticlePlaceholder https://gerrit.wikimedia.org/r/c/571597 [x] Newsletter https://gerrit.wikimedia.org/r/c/571594 [x] Nuke https://gerrit.wikimedia.org/r/c/571580 [x] PageTriage https://gerrit.wikimedia.org/r/c/571591 [x] WikimediaEvents https://gerrit.wikimedia.org/r/c/571593 **All usage in WMF deployed extensions have been removed as of 1.35-wmf.20 (2020-02-18)** [] Core uses (outside of tests) [] Core actual deprecation
    • Task
    • ·Closed
    See parent task Codesearch for `quickUserCan` calls: https://codesearch.wmflabs.org/deployed/?q=-%3EquickUserCan%5C(&i=nope&files=php%24&repos= These need to be checked for if they are called on a title method #### Calls to Title::quickUserCan: * [x] LiquidThreads: https://gerrit.wikimedia.org/r/571640 ** LqtHooks::onGetUserPermissionsErrors ** LqtView::threadCommands, ::showThread ** TalkpageView::showHeader * [x] ArticlePlaceholder: https://gerrit.wikimedia.org/r/571617 ** AboutTopicRenderer::showPlaceholder * [x] Babel https://gerrit.wikimedia.org/r/571618 ** BabelAutoCreate::create * [x] Disambiguator https://gerrit.wikimedia.org/r/571620 ** SpecialDisambiguationPageLinks::formatResult * [x] Linter https://gerrit.wikimedia.org/r/571636 ** LintErrorsPager::formatValue * [x] MassMessage https://gerrit.wikimedia.org/r/571633 ** MassMessageHooks ::onBeforePageDisplay * [x] PageTriage https://gerrit.wikimedia.org/r/571638 ** Hooks::onArticleViewFooter * [x] VisualEditor https://gerrit.wikimedia.org/r/571632 ** VisualEditorHooks::isSupportedEditPage * [x] WikiLove https://gerrit.wikimedia.org/r/571631 ** WikiLoveHooks::getUserTalkPage * [x] Nostalgia (skin) https://gerrit.wikimedia.org/r/571639 ** NostalgiaTemplate::editThisPage, ::moveThisPage **All usage in WMF deployed extensions have been removed as of 1.35-wmf.20 (2020-02-18)** * [] core: ** TitlePermissionTest (lots) * [] Core actual deprecation All other callers from mediawiki deployed code refer to a different quickUserCan (eg PermissionManager::quickUserCan)
    • Task
    • ·Closed
    See parent task Codesearch for `userCan` calls: https://codesearch.wmflabs.org/deployed/?q=-%3EuserCan%5C(&i=nope&files=php%24&repos= These need to be checked for if they are called on a title method #### Calls to Title::userCan: * [] From core ** Title::quickUserCan ** TitlePermissionTest (lots) ** TitleTest::testWgWhitelistReadRegexp * [x] From FlaggedRevs https://gerrit.wikimedia.org/r/c/572030 ** RevisionReviewForm::isAllowed * [x] From MassMessage https://gerrit.wikimedia.org/r/c/572073 ** SpecialCreateMassMessageList::onSubmit ** SpecialEditMassMessageList::setParameter * [x] From Translate https://gerrit.wikimedia.org/r/c/572075 ** PageTranslationTaggingTest::testTranslationPageRestrictions ** TranslateSandboxTest::testPermissions * [x] From GettingStarted https://gerrit.wikimedia.org/r/c/571875 ** BasePageFilter::isAllowedPage * [x] From Jade: https://gerrit.wikimedia.org/r/c/572029 ** PageEntityProposalSetStorage::storeProposalSet * [x] From LiquidThreads https://gerrit.wikimedia.org/r/c/571874 ** Thread::canUserCreateThreads * [x] From SubPageList3 https://gerrit.wikimedia.org/r/c/571873 ** SubPageList3::getTitles All other callers from mediawiki deployed code refer to a different userCan (eg PermissionManager::userCan)
    • Task
    • ·Closed
    Currently accepts a user and defaults to $wgUser Callers should provide this user [x] CentralAuth (https://gerrit.wikimedia.org/r/567174) [x] SocialProfile (https://gerrit.wikimedia.org/r/567177) [x] GlobalBlocking (https://gerrit.wikimedia.org/r/567178) [x] ApprovedRevs (https://gerrit.wikimedia.org/r/567179) [x] AutoProxyBlock (https://gerrit.wikimedia.org/r/567180) [x] BlockAndNuke (https://gerrit.wikimedia.org/r/567181) [x] Cargo (https://gerrit.wikimedia.org/r/567182) [x] CloseWikis (https://gerrit.wikimedia.org/r/567184) [x] Farmer (https://gerrit.wikimedia.org/r/567186) [x] Interwiki (https://gerrit.wikimedia.org/r/567187) [x] LiquidThreads (https://gerrit.wikimedia.org/r/570145) [x] Poll [x] ProtectSite (https://gerrit.wikimedia.org/r/570149) [x] RevisionCommentSupplement (https://gerrit.wikimedia.org/r/567200) [x] SpecialNamespaces (https://gerrit.wikimedia.org/r/567201) [x] StalkerLog [x] Sudo (https://gerrit.wikimedia.org/r/567202) [x] hexmode / mediawiki-UserSnoop (https://github.com/hexmode/mediawiki-UserSnoop/pull/3) [] mwstake / mediawiki-extensions-UserLoginLog (https://github.com/MWStake/mediawiki-extensions-UserLoginLog/pull/5) While all uses should be replaced, for repos not deployed by WMF / not hosted on gerrit / that cannot be updated by WMF developers this isn't a priority, and not prevent deprecation and removal
    • Task
    Looks like we hit the exception added in {rELQTa91f43c894439e70a1c9674c1a37932ad8c97ae1} I didn't see anything in WMF Logstash nor any suspicious recent changes in LQT itself. Maybe not recently introduced error. ``` [2019-10-31 04:18:35] error.WARNING: [aa9df05a8c6ccf5e2e4aca5a] /w/api.php?action=feedthreads&type=replies%7Cnewthreads&thread=Thread%3AUser+talk%3A%E1%83%9B%E1%83%90%E1%83%A0%E1%83%92%E1%83%90%E1%83%9A%E1%83%9D%E1%83%9C%E1%83%90%2FTranslation+request+for+Georgian&feedformat=atom ErrorException from line 593 of /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php: PHP Notice: Exception doing lazy updates: Exception: synchroniseArticleData called on null article in /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php:308 Stack trace: #0 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(968): Threads::synchroniseArticleData(NULL, 100, 'cascade') #1 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(591): Thread->doLazyUpdates() #2 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(519): Thread->__construct(Object(stdClass)) #3 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(729): Thread::newFromRow(Object(stdClass)) #4 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(97): Thread::bulkLoad(Array) #5 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(104): Threads::loadFromResult(Object(Wikimedia\Rdbms\ResultWrapper), Object(Wikimedia\Rdbms\MaintainableDBConnRef), true) #6 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(157): Threads::where(Array, Array, true) #7 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(187): Threads::withRoot(Object(Article)) #8 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(58): ApiFeedLQTThreads->getConditions(Array, Object(Wikimedia\Rdbms\MaintainableDBConnRef)) #9 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(1603): ApiFeedLQTThreads->execute() #10 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(539): ApiMain->executeAction() #11 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(510): ApiMain->executeActionWithErrorHandling() #12 /srv/mediawiki/tags/2019-10-30_14:28:46/api.php(83): ApiMain->execute() #13 {main} {"exception":"[object] (ErrorException(code: 0): PHP Notice: Exception doing lazy updates: Exception: synchroniseArticleData called on null article in /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php:308 Stack trace: #0 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(968): Threads::synchroniseArticleData(NULL, 100, 'cascade') #1 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(591): Thread->doLazyUpdates() #2 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(519): Thread->__construct(Object(stdClass)) #3 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(729): Thread::newFromRow(Object(stdClass)) #4 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(97): Thread::bulkLoad(Array) #5 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(104): Threads::loadFromResult(Object(Wikimedia\\Rdbms\\ResultWrapper), Object(Wikimedia\\Rdbms\\MaintainableDBConnRef), true) #6 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(157): Threads::where(Array, Array, true) #7 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(187): Threads::withRoot(Object(Article)) #8 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(58): ApiFeedLQTThreads->getConditions(Array, Object(Wikimedia\\Rdbms\\MaintainableDBConnRef)) #9 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(1603): ApiFeedLQTThreads->execute() #10 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(539): ApiMain->executeAction() #11 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(510): ApiMain->executeActionWithErrorHandling() #12 /srv/mediawiki/tags/2019-10-30_14:28:46/api.php(83): ApiMain->execute() #13 {main} at /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php:593) [stacktrace] #0 [internal function]: MWExceptionHandler::handleError(1024, 'Exception doing...', '/srv/mediawiki/...', 593, Array) #1 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(593): trigger_error('Exception doing...') #2 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(519): Thread->__construct(Object(stdClass)) #3 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(729): Thread::newFromRow(Object(stdClass)) #4 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(97): Thread::bulkLoad(Array) #5 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(104): Threads::loadFromResult(Object(Wikimedia\\Rdbms\\ResultWrapper), Object(Wikimedia\\Rdbms\\MaintainableDBConnRef), true) #6 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(157): Threads::where(Array, Array, true) #7 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(187): Threads::withRoot(Object(Article)) #8 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/api/ApiFeedLQTThreads.php(58): ApiFeedLQTThreads->getConditions(Array, Object(Wikimedia\\Rdbms\\MaintainableDBConnRef)) #9 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(1603): ApiFeedLQTThreads->execute() #10 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(539): ApiMain->executeAction() #11 /srv/mediawiki/tags/2019-10-30_14:28:46/includes/api/ApiMain.php(510): ApiMain->executeActionWithErrorHandling() #12 /srv/mediawiki/tags/2019-10-30_14:28:46/api.php(83): ApiMain->execute() #13 {main} ","exception_id":"aa9df05a8c6ccf5e2e4aca5a","exception_url":"/w/api.php?action=feedthreads&type=replies%7Cnewthreads&thread=Thread%3AUser+talk%3A%E1%83%9B%E1%83%90%E1%83%A0%E1%83%92%E1%83%90%E1%83%9A%E1%83%9D%E1%83%9C%E1%83%90%2FTranslation+request+for+Georgian&feedformat=atom","caught_by":"mwe_handler"} [] [31-Oct-2019 04:18:35 UTC] PHP Notice: Exception doing lazy updates: Exception: synchroniseArticleData called on null article in /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php:308 Stack trace: #0 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(968): Threads::synchroniseArticleData(NULL, 100, 'cascade') #1 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(591): Thread->doLazyUpdates() #2 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(519): Thread->__construct(Object(stdClass)) #3 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php(729): Thread::newFromRow(Object(stdClass)) #4 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(97): Thread::bulkLoad(Array) #5 /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Threads.php(104): Threads::loadFromResult(Object(Wikimedia\Rdbms\ResultWrapper), Object(Wikimedia\Rdbms\Maintainab in /srv/mediawiki/tags/2019-10-30_14:28:46/extensions/LiquidThreads/classes/Thread.php on line 593 ```
    • Task
    • ·Closed
    Alphabetize LiquidThreads qqq.json. This was originally a part of the commit for T233513, but I am splitting into its own as was suggested on gerrit.
    • Task
    • ·Closed
    LiquidThreads needs 'editToken' replaced with 'csrfToken' in a few places in both lqt.js and newmessages.js.