Page MenuHomePhabricator
Search Advanced Search
    • Task
    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
    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
    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 [] Update [[ https://codesearch.wmcloud.org/deployed/?q=%22PersonalUrls%22%3A&i=nope&files=&excludeFiles=&repos= | remaining usages ]] [] Using the PersonalUrls hook should send deprecation warnings.
    • 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
    ``` [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
    ==== 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
    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
    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
    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
    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
    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
    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 [] Update Extension:CentralNotice to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage [] Update Extension:VisualEditor to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [] Update Extension:Translate to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation::SpecialPage [x] Update Extension:GrowthExperiments to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [] Update Extension:LiquidThreads to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [] Update Extension:MassMessage to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [] Update Extension:Wikilove to use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation [] SkinTemplateNavigation::SpecialPage in core is marked as deprecated [] SkinTemplateNavigation in core is marked as deprecated # QA [] Confirm https://codesearch.wmcloud.org/deployed/?q=SkinTemplateNavigation%3A%3ASpecialPage&i=nope&files=&excludeFiles=&repos= returns no results other than MediaWiki core [] 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 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.
    • Task
    Steps to reproduce: Go to https://www.mediawiki.org/wiki/Special:PrefixIndex?prefix=Project%3ACurrent+issues%2F&namespace=90&hideredirects=1&stripprefix=1 Select the one link, to https://www.mediawiki.org/wiki/Thread:Project:Current_issues/User:MZMcBride_and_sysopping_of_User:Fram/reply_(61) Expected result: https://www.mediawiki.org/wiki/Thread:Project:Current_issues/User:MZMcBride_and_sysopping_of_User:Fram/reply_(61) displays something Actual result: ``` No such thread The thread you specified does not exist. ```
    • Task
    • ·Closed
    ``` ErrorException from line 309 of /www/dev.translatewiki.net/docroot/w/includes/debug/MWDebug.php: PHP Deprecated: Use of EditPage::getContextTitle called with no title set was deprecated in MediaWiki 1.32. [Called from EditPage::setHeaders in /www/dev.translatewiki.net/docroot/w/includes/EditPage.php at line 2524] #0 [internal function]: MWExceptionHandler::handleError(integer, string, string, integer, array) #1 /www/dev.translatewiki.net/docroot/w/includes/debug/MWDebug.php(309): trigger_error(string, integer) #2 /www/dev.translatewiki.net/docroot/w/includes/debug/MWDebug.php(241): MWDebug::sendMessage(string, array, string, integer) #3 /www/dev.translatewiki.net/docroot/w/includes/GlobalFunctions.php(1045): MWDebug::deprecated(string, string, string, integer) #4 /www/dev.translatewiki.net/docroot/w/includes/EditPage.php(539): wfDeprecated(string, string) #5 /www/dev.translatewiki.net/docroot/w/includes/EditPage.php(2524): EditPage->getContextTitle() #6 /www/dev.translatewiki.net/docroot/w/includes/EditPage.php(2794): EditPage->setHeaders() #7 /www/dev.translatewiki.net/docroot/w/includes/EditPage.php(706): EditPage->showEditForm() #8 /www/dev.translatewiki.net/docroot/w/extensions/LiquidThreads/classes/View.php(708): EditPage->edit() #9 /www/dev.translatewiki.net/docroot/w/extensions/LiquidThreads/classes/View.php(432): LqtView->showReplyForm(Thread) #10 /www/dev.translatewiki.net/docroot/w/extensions/LiquidThreads/classes/View.php(503): LqtView->doInlineEditForm() #11 /www/dev.translatewiki.net/docroot/w/extensions/LiquidThreads/api/ApiThreadAction.php(799): LqtView::getInlineEditForm(Article, string, string) #12 /www/dev.translatewiki.net/docroot/w/extensions/LiquidThreads/api/ApiThreadAction.php(55): ApiThreadAction->actionInlineEditForm(array, array) #13 /www/dev.translatewiki.net/docroot/w/includes/api/ApiMain.php(1583): ApiThreadAction->execute() #14 /www/dev.translatewiki.net/docroot/w/includes/api/ApiMain.php(531): ApiMain->executeAction() #15 /www/dev.translatewiki.net/docroot/w/includes/api/ApiMain.php(502): ApiMain->executeActionWithErrorHandling() #16 /www/dev.translatewiki.net/docroot/w/api.php(86): ApiMain->execute() #17 {main} ```
    • Task
    • ·Closed
    As wmf deployed extension the LiquidThreads extension should run phan on CI to found simple bugs in an earlier state of development. LiquidThreads extension is not using the common /includes/ or /src/ folder, which makes the config for phan a bit harder. It also mixed up \Page and \Article at some places which makes it harder to follow the code for phan
    • Task
    • ·Closed
    `Title::moveTo` has been deprecated since 1.25, and has been hard-deprecated in 1.34. Its uses should now be removed. All callers (in core and wmf-maintained extensions; [codesearch](https://codesearch.wmflabs.org/deployed/?q=-%3EmoveTo%5C%28&files=%5C.php%24)) should be gone by now. If there are any left, they must be changed to to use `MovePage` instead.
    • Task
    • ·Closed
    {F28562073} Inspecting the contents I saw `tbdoy` element that was introduced in https://gerrit.wikimedia.org/r/c/mediawiki/extensions/LiquidThreads/+/489471 – might be unrelated, though it seems to be the only recent commit affecting JavaScript code.
    • Task
    As reported by @Krinkle on T207530, it is not possible to delete https://www.mediawiki.org/w/index.php?title=Thread:Project:Support_desk/no_respond_to_any_clicks/actions.&action=history . I reproduced this with X-Wikimedia-Debug: log enabled. The issue occurs in Thread::delete(), which uses an unindexed query to attempt to delete rows from user_message_state: ```lang=php $dbw->delete( 'user_message_state', [ 'ums_thread' => $this->id() ], __METHOD__ ); ``` Table definition: ``` CREATE TABLE `user_message_state` ( `ums_user` int(10) unsigned NOT NULL DEFAULT '0', `ums_thread` int(8) unsigned NOT NULL DEFAULT '0', `ums_read_timestamp` varbinary(14) DEFAULT NULL, `ums_conversation` int(8) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`ums_user`,`ums_thread`), KEY `ums_user_conversation` (`ums_user`,`ums_conversation`) ) ENGINE=InnoDB DEFAULT CHARSET=binary ``` You can see that there is no index on ums_thread. The table has 8M rows on mediawikiwiki. Log snippet: ``` 2018-12-14 05:02:27 [XBM5WwpAIHsAAAQ486oAAAAS] mwdebug1001 mediawikiwiki 1.33.0-wmf.8 DBPerformance WARNING: Expectation (writeQueryTime <= 1) by MediaWiki::main not met (actual: 5.3960931301117): query-m: DELETE FROM `user_message_state` WHERE ums_thread = 'X' [TRX#64d9be] #0 /srv/mediawiki/php-1.33.0-wmf.8/includes/libs/rdbms/TransactionProfiler.php(231): Wikimedia\Rdbms\TransactionProfiler->reportExpectationViolated() #1 /srv/mediawiki/php-1.33.0-wmf.8/includes/libs/rdbms/database/Database.php(1296): Wikimedia\Rdbms\TransactionProfiler->recordQueryCompletion() #2 /srv/mediawiki/php-1.33.0-wmf.8/includes/libs/rdbms/database/Database.php(1193): Wikimedia\Rdbms\Database->doProfiledQuery() #3 /srv/mediawiki/php-1.33.0-wmf.8/includes/libs/rdbms/database/Database.php(2954): Wikimedia\Rdbms\Database->query() #4 /srv/mediawiki/php-1.33.0-wmf.8/extensions/LiquidThreads/classes/Thread.php(364): Wikimedia\Rdbms\Database->delete() #5 /srv/mediawiki/php-1.33.0-wmf.8/extensions/LiquidThreads/classes/DeletionController.php(22): Thread->delete() #6 /srv/mediawiki/php-1.33.0-wmf.8/includes/Hooks.php(174): LqtDeletionController::onArticleDeleteComplete() #7 /srv/mediawiki/php-1.33.0-wmf.8/includes/Hooks.php(202): Hooks::callHook() #8 /srv/mediawiki/php-1.33.0-wmf.8/includes/page/WikiPage.php(2794): Hooks::run() #9 /srv/mediawiki/php-1.33.0-wmf.8/includes/page/WikiPage.php(2639): WikiPage->doDeleteArticleBatched() #10 /srv/mediawiki/php-1.33.0-wmf.8/includes/page/Article.php(2071): WikiPage->doDeleteArticleReal() #11 /srv/mediawiki/php-1.33.0-wmf.8/includes/page/Article.php(1826): Article->doDelete() #12 /srv/mediawiki/php-1.33.0-wmf.8/includes/actions/DeleteAction.php(46): Article->delete() #13 /srv/mediawiki/php-1.33.0-wmf.8/includes/MediaWiki.php(501): DeleteAction->show() #14 /srv/mediawiki/php-1.33.0-wmf.8/includes/MediaWiki.php(294): MediaWiki->performAction() #15 /srv/mediawiki/php-1.33.0-wmf.8/includes/MediaWiki.php(862): MediaWiki->performRequest() #16 /srv/mediawiki/php-1.33.0-wmf.8/includes/MediaWiki.php(517): MediaWiki->main() #17 /srv/mediawiki/php-1.33.0-wmf.8/index.php(42): MediaWiki->run() #18 /srv/mediawiki/w/index.php(3): include() #19 {main} {"measure":"writeQueryTime","max":1,"by":"MediaWiki::main","actual":5.3960931301117,"query":"query-m: DELETE FROM `user_message_state` WHERE ums_thread = 'X' [TRX#64d9be]"} 2018-12-14 05:02:27 [XBM5WwpAIHsAAAQ486oAAAAS] mwdebug1001 mediawikiwiki 1.33.0-wmf.8 DBQuery DEBUG: DELETE FROM `user_message_state` WHERE ums_thread = '27694' {"method":"Thread::delete","master":true,"runtime":5.3912460803986} ```
    • Task
    • ·Closed
    ``` 22:23:31 1) MediaWiki\MassMessage\MassMessageJobTest::testLQTMessageSending 22:23:31 count(): Parameter must be an array or an object that implements Countable 22:23:31 22:23:31 /workspace/src/extensions/LiquidThreads/api/ApiThreadAction.php:233 22:23:31 /workspace/src/extensions/LiquidThreads/api/ApiThreadAction.php:55 22:23:31 /workspace/src/includes/api/ApiMain.php:1587 22:23:31 /workspace/src/includes/api/ApiMain.php:500 22:23:31 /workspace/src/extensions/MassMessage/includes/job/MassMessageJob.php:327 22:23:31 /workspace/src/extensions/MassMessage/includes/job/MassMessageJob.php:249 22:23:31 /workspace/src/extensions/MassMessage/includes/job/MassMessageJob.php:198 22:23:31 /workspace/src/extensions/MassMessage/includes/job/MassMessageJob.php:59 22:23:31 /workspace/src/extensions/MassMessage/tests/phpunit/job/MassMessageJobTest.php:29 22:23:31 /workspace/src/extensions/MassMessage/tests/phpunit/job/MassMessageJobTest.php:70 22:23:31 /workspace/src/tests/phpunit/MediaWikiTestCase.php:424 22:23:31 /workspace/src/maintenance/doMaintenance.php:94 ``` https://integration.wikimedia.org/ci/job/quibble-vendor-mysql-php72-docker/299/consoleFull Can be verified by commenting "check experimental" on a patch to trigger the PHP 7.2 job.
    • Task
    • ·Closed
    LiquidThreads failing on version 1.3.0 (and on 1.4.0, but that is T203281), which now blocks merges ``` <?xml version="1.0" encoding="ISO-8859-15"?> <checkstyle version="6.5"> <file name="./classes/Thread.php"> <error line="1304" severity="warning" message="Calling method \LqtView::formatSubject in \Thread::formattedSubject that is always unsafe (Caused by: ./classes/View.php +2494)" source="SecurityCheck-DoubleEscaped"/> </file> <file name="./classes/View.php"> <error line="192" severity="warning" message="Calling method \Thread::formattedSubject in \LqtView::linkInContext that is always unsafe (Caused by: ./classes/Thread.php +1304)" source="SecurityCheck-DoubleEscaped"/> <error line="1733" severity="warning" message="Calling method \Thread::formattedSubject in \LqtView::showThreadHeading that is always unsafe (Caused by: ./classes/Thread.php +1304)" source="SecurityCheck-DoubleEscaped"/> <error line="1739" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +1733)" source="SecurityCheck-DoubleEscaped"/> <error line="1740" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +1733; ./classes/View.php +1739)" source="SecurityCheck-DoubleEscaped"/> <error line="1741" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +1733; ./classes/View.php +1739; ./classes/View.php +1740)" source="SecurityCheck-DoubleEscaped"/> <error line="1747" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +1733)" source="SecurityCheck-DoubleEscaped"/> <error line="2176" severity="warning" message="Calling method \LqtView::showThreadHeading in \LqtView::showThread that is always unsafe (Caused by: ./classes/View.php +1750; ./classes/View.php +1733; ./classes/View.php +1747)" source="SecurityCheck-DoubleEscaped"/> <error line="2176" severity="warning" message="Calling method \LqtView::showThreadHeading in \LqtView::showThread that is always unsafe (Caused by: ./classes/View.php +1750; ./classes/View.php +1733; ./classes/View.php +1747; ./classes/View.php +1733; ./classes/View.php +1747)" source="SecurityCheck-DoubleEscaped"/> <error line="2176" severity="warning" message="Calling method \LqtView::showThreadHeading in \LqtView::showThread that is always unsafe (Caused by: ./classes/View.php +1750; ./classes/View.php +1733; ./classes/View.php +1747; ./classes/View.php +1733; ./classes/View.php +1747; ./classes/View.php +1733; ./classes/View.php +1747)" source="SecurityCheck-DoubleEscaped"/> <error line="2181" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176)" source="SecurityCheck-DoubleEscaped"/> <error line="2189" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181)" source="SecurityCheck-DoubleEscaped"/> <error line="2195" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189)" source="SecurityCheck-DoubleEscaped"/> <error line="2209" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189; ./classes/View.php +2195)" source="SecurityCheck-DoubleEscaped"/> <error line="2259" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189; ./classes/View.php +2195; ./classes/View.php +2209; ./classes/View.php +2219)" source="SecurityCheck-DoubleEscaped"/> <error line="2279" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189; ./classes/View.php +2195; ./classes/View.php +2209; ./classes/View.php +2219; ./classes/View.php +2260)" source="SecurityCheck-DoubleEscaped"/> <error line="2284" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189; ./classes/View.php +2195; ./classes/View.php +2209; ./classes/View.php +2219; ./classes/View.php +2260; ./classes/View.php +2280)" source="SecurityCheck-DoubleEscaped"/> <error line="2290" severity="warning" message="Assigning a tainted value to a variable that later does something unsafe with it (Caused by: ./classes/View.php +2176; ./classes/View.php +2181; ./classes/View.php +2189; ./classes/View.php +2195; ./classes/View.php +2209; ./classes/View.php +2219; ./classes/View.php +2260; ./classes/View.php +2280)" source="SecurityCheck-DoubleEscaped"/> <error line="2494" severity="warning" message="Calling method \Linker::formatLinksInComment in \LqtView::formatSubject that is always unsafe (Caused by: ../../includes/Linker.php +1218)" source="SecurityCheck-DoubleEscaped"/> </file> <file name="./pages/NewUserMessagesView.php"> <error line="42" severity="warning" message="Calling method \LqtView::formatSubject in \NewUserMessagesView::getUndoButton that is always unsafe (Caused by: ./classes/View.php +2494)" source="SecurityCheck-DoubleEscaped"/> </file> <file name="./pages/ThreadPermalinkView.php"> <error line="108" severity="warning" message="Calling method \LqtView::showThreadHeading in \ThreadPermalinkView::showThreadHeading that is always unsafe (Caused by: ./classes/View.php +1750; ./classes/View.php +1733; ./classes/View.php +1747; ./classes/View.php +1733; ./classes/View.php +1747; ./classes/View.php +1733; ./classes/View.php +1747)" source="SecurityCheck-DoubleEscaped"/> </file> </checkstyle> ``` From https://gerrit.wikimedia.org/r/#/c/mediawiki/extensions/LiquidThreads/+/458319/ https://integration.wikimedia.org/ci/job/mwext-php70-phan-seccheck-docker/13563/console
    • Task
    **Steps to reproduce** # Edit fragment of talk page which have LiquidThread # Save Edit **Actual results** After edit, LiquidThread no show content of the fragment. It shows only line: {F25595321} **Expected results** After edit, LiquidThread have to show content of the fragment.
    • Task
    • ·Closed
    Using 1.4.0: ```lang=xml <checkstyle version="6.5"> <file name="./api/ApiQueryLQTThreads.php"> <error line="248" severity="warning" message="Calling method \OutputPage::addHTML() in \ApiQueryLQTThreads::renderThread that outputs using tainted argument $oldOutputText. (Caused by: Builtin-\OutputPage::addHTML) (Caused by: ./api/ApiQueryLQTThreads.php +211)" source="SecurityCheck-XSS"/> </file> <file name="./api/ApiThreadAction.php"> <error line="606" severity="warning" message="Calling method \OutputPage::addHTML() in \ApiThreadAction::renderThreadPostAction that outputs using tainted argument $oldOutputText. (Caused by: Builtin-\OutputPage::addHTML) (Caused by: ./api/ApiThreadAction.php +592)" source="SecurityCheck-XSS"/> </file> </checkstyle> ``` Both cases are basically using OutputPage as an output buffer: ```lang=php // Set up OutputPage $out = $this->getOutput(); $oldOutputText = $out->getHTML(); $out->clearHTML(); ... $result = $out->getHTML(); $out->clearHTML(); $out->addHTML( $oldOutputText ); ```
    • Task
    • ·Closed
    Spotted in the logs: ``` [11-Jun-2018 16:52:54 UTC] PHP Warning: Invalid argument supplied for foreach() in /srv/mediawiki/tags/2018-06-06_05:52:45/extensions/LiquidThreads/classes/View.php on line 505 ```
    • Task
    • ·Closed
    Users are unable to use talk pages on pages such as this: https://pt.wikibooks.org/wiki/Utilizador:Raylton_P._Sousa/Projetos/Livro_aberto The talk page link points to https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Raylton_P._Sousa/Projetos/Livro_aberto which says "The requested topic does not exist." See also * {T113682} * {T114278}
    • Task
    • ·Closed
    As "New messages none" is appearing long in LiquidThreads {F14959267} Better to change "New messages none" to "New messages[0]" this decreases the length of the personal tools menu and improves the appearnece. {F14975632}
    • Task
    • ·Closed
    **Setup** - MediaWiki 1.31.0-alpha - HHVM 3.24.3 (srv) - MariaDB 10.0.31-MariaDB-0ubuntu0.16.04.2 - Liquid Threads 2.3-alpha - WikiEditor 0.5.1 **Issue** WikiEditor toolbar is being shown twice on editing posts in threads. See screen shot. Console reports ``` TypeError: mw.util is undefined [Further information] load.php:2:170 <anonym> https://translatewiki.net/w/load.php:2:170 mightThrow https://translatewiki.net/w/load.php:49:590 resolve/</process< https://translatewiki.net/w/load.php:50:269 ``` I am however not sure if this is related. {F14528285}
    • Task
    LiquidThreads has been live for a long time, however we have some potential replacements candidates now (e.g. #structureddiscussions), and having to maintain 2 alternatives is wasteful for our limited resources. **Maintainers** [[ https://www.mediawiki.org/wiki/Developers/Maintainers | Developers/Maintainers ]] says "translatewiki.net staff (de facto)" **Number, severity, and age of known and confirmed security issues** Nothing in particular. **Was it a cause of production outages or incidents?** None documented. **Does it have sufficient hardware resources for now and the near future (to take into account expected usage growth)?** Yes. **Is it a frequent cause of monitoring alerts that need action, and are they addressed timely and appropriately?** No. **When it was first deployed to Wikimedia production** 2009? **Usage statistics based on audience(s) served** Actively used on enwikinews and enwiktionary, abandoned on huwiki (last thread modification dates back to May 2017). Outside Wikimedia, it's actively used on several large or mid-sized recently upgraded wikis such as [[https://translatewiki.net/wiki/Special:RecentChanges?namespace=90|translatewiki.net]], [[https://userbase.kde.org/index.php?namespace=90&translations=filter&trailer=&title=Special%3ARecentChanges|UserBase KDE]], [[https://www.elinux.org/index.php?title=Special:RecentChanges&days=365&from=&namespace=90|elinux.org]], [[http://tieteentermipankki.fi/mediawiki/index.php?title=Toiminnot:Tuoreet_muutokset&days=365&from=&namespace=90|TTP]], [[https://thwiki.cc/index.php?title=%E7%89%B9%E6%AE%8A:%E6%9C%80%E8%BF%91%E6%9B%B4%E6%94%B9&days=30&from=&namespace=90&limit=500|thwiki.cc]] and [[https://www.wikiskripta.eu/index.php?namespace=90&tagfilter=&title=Speci%C3%A1ln%C3%AD%3APosledn%C3%AD+zm%C4%9Bny|wikiskripta]]; it still stores significant history on [[http://wiki.bayernflora.de/w/index.php?title=Spezial%3AAlle+Seiten&from=&to=&namespace=90|bayernflora]], [[https://sv.wikimini.org/wiki/Special:Alla_sidor?from=&to=&namespace=90|wikimini.org]], [[http://portland.wiki/index.php?title=Special:AllPages&from=&namespace=90|PortlandWiki]], [[https://pcgamingwiki.com/wiki/Special:AllPages?from=&to=&namespace=90|PC gaming wiki]]. **Changes committed in last 1, 3, 6, and 12 months** 1 month: 1. 3 months: 8. 6 months: 14. 12 months: 30+. **Reliance on outdated platforms** - jQuery UI **Number of developers who committed code in the last 1, 3, 6, and 12 months** 1 month: 1. 3 months: 7. 6 months: 9. 12 months: 10. **Number and age of open patches** 3, dating back to July 2017 **Number and age of open bugs** 200+, dating back to 2008 **Number of known dependencies?** None **Is there a replacement/alternative for the feature? Is there a plan for a replacement?** There is Structured Discussions (Flow). We don't need to maintain two things that do the same.
    • Task
    **Setup** - MediaWiki 1.27.4 (d314c84) 01:07, 9 December 2017 - PHP 7.0.22-0ubuntu0.16.04.1 (apache2handler) - MySQL 5.7.20-0ubuntu0.16.04.1 - Liquid Threads 2.2-alpha (0a16469) 22:43, 31 January 2017 **Issue** A database query error has occurred. This may indicate a bug in the software. The reason for this to happen is that the contents of the thread is inserted uncut to the field "Other/additional reason:". Thus the contents is too long. //Query:// ```lang=sql INSERT INTO `thread_history` (th_id,th_thread,th_timestamp,th_user,th_user_text,th_change_type,th_change_object,th_change_comment,th_content) VALUES (NULL,'2501','20171227170705','74','Kghbln','4','2501','Unnecessary page: content was: \"Hi everyone, I am translating the system messages in Translatewiki.net to Spanish. During the translation I found an error i...\", and the only contributor was \"[[Special:Contributions/Ivanhercaz|Ivanhercaz]]\" ([[User talk:Ivanhercaz|talk]])','O:6:\"Thread\":26:{s:9:\"\0*\0rootId\";s:5:\"14004\";s:12:\"\0*\0articleId\";s:4:\"3334\";s:12:\"\0*\0summaryId\";N;s:13:\"\0*\0ancestorId\";s:1:\"0\";s:11:\"\0*\0parentId\";N;s:14:\"\0*\0superthread\";N;s:11:\"\0*\0ancestor\";r:1;s:19:\"\0*\0articleNamespace\";s:1:\"4\";s:15:\"\0*\0articleTitle\";s:16:\"Community_portal\";s:11:\"\0*\0modified\";s:14:\"20171227170705\";s:10:\"\0*\0created\";s:14:\"20171225214016\";s:10:\"\0*\0sortkey\";s:14:\"20171227170705\";s:5:\"\0*\0id\";s:4:\"2501\";s:7:\"\0*\0type\";i:2;s:10:\"\0*\0subject\";s:36:\"English error in the system messages\";s:11:\"\0*\0authorId\";s:4:\"3092\";s:13:\"\0*\0authorName\";s:10:\"Ivanhercaz\";s:12:\"\0*\0signature\";s:62:\"[[User:Ivanhercaz|Ivanhercaz]] ([[User talk:Ivanhercaz|talk]])\";s:16:\"\0*\0allDataLoaded\";N;s:15:\"\0*\0isHistorical\";b:0;s:15:\"\0*\0rootRevision\";N;s:10:\"editedness\";s:1:\"0\";s:10:\"\0*\0editors\";N;s:10:\"\0*\0replies\";a:0:{}s:12:\"\0*\0reactions\";N;s:10:\"replyCount\";s:1:\"0\";}') ``` //Function:// ThreadRevision::insert //Error:// 1406 Data too long for column 'th_change_comment' at row 1 (localhost) **Backtrace** ``` #0 /../w/includes/db/Database.php(901): DatabaseBase->reportQueryError('Data too long f...', 1406, 'INSERT INTO `t...', 'ThreadRevision:...', false) #1 /../w/includes/db/Database.php(1467): DatabaseBase->query('INSERT INTO `t...', 'ThreadRevision:...') #2 /../w/extensions/LiquidThreads/classes/ThreadRevision.php(99): DatabaseBase->insert('`thread_history...', Array, 'ThreadRevision:...') #3 /../w/extensions/LiquidThreads/classes/ThreadRevision.php(88): ThreadRevision->insert() #4 /../w/extensions/LiquidThreads/classes/Thread.php(188): ThreadRevision::create(Object(Thread), 4, Object(Thread), 'Unnecessary pag...') #5 /../w/extensions/LiquidThreads/classes/Thread.php(345): Thread->commitRevision(4, Object(Thread), 'Unnecessary pag...') #6 /../w/extensions/LiquidThreads/classes/DeletionController.php(22): Thread->delete('Unnecessary pag...') #7 /../w/includes/Hooks.php(195): LqtDeletionController::onArticleDeleteComplete(Object(WikiPage), Object(User), 'Unnecessary pag...', 14004, Object(WikitextContent), Object(ManualLogEntry)) #8 /../w/includes/page/WikiPage.php(2950): Hooks::run('ArticleDeleteCo...', Array) #9 /../w/includes/page/Article.php(1896): WikiPage->doDeleteArticleReal('Unnecessary pag...', false, 0, true, '', Object(User)) #10 /../w/includes/page/Article.php(1714): Article->doDelete('Unnecessary pag...', false) #11 /../w/includes/actions/DeleteAction.php(54): Article->delete() #12 /../w/includes/MediaWiki.php(493): DeleteAction->show() #13 /../w/includes/MediaWiki.php(288): MediaWiki->performAction(Object(Article), Object(Title)) #14 /../w/includes/MediaWiki.php(735): MediaWiki->performRequest() #15 /../w/includes/MediaWiki.php(509): MediaWiki->main() #16 /../w/index.php(43): MediaWiki->run() #17 {main} ``` **Solution** The interim solution to mitigate this issue is to reduce the lenght of the content added to field "Other/additional reason:" when deleting a thread to an acceptable lenght. It will e.g. be nice if there is a size limit imposed by the software.
    • Task
    • ·Closed
    ``` There were 4 failures: 1) Flow\Tests\Import\LiquidThreadsApi\ConversionStrategyTest::testCreateArchiveCleanupRevisionContent with data set #0 ('Blank input page', '{{Archive for converted LQT p...:0}}\n\n', '') Blank input page Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ '{{Archive for converted LQT page|from=Talk:Blue birds|date=2017-12-04}} {{#useliquidthreads:0}} + + +{{#useliquidthreads:0}} + ' /var/www/wiki/mediawiki/extensions/Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php:143 /var/www/wiki/mediawiki/core/tests/phpunit/MediaWikiTestCase.php:416 /var/www/wiki/mediawiki/core/maintenance/doMaintenance.php:94 2) Flow\Tests\Import\LiquidThreadsApi\ConversionStrategyTest::testCreateArchiveCleanupRevisionContent with data set #1 ('Page containing lqt magic word', '{{Archive for converted LQT p...:0}}\n\n', '{{#useliquidthreads:1}}') Page containing lqt magic word Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ '{{Archive for converted LQT page|from=Talk:Blue birds|date=2017-12-04}} {{#useliquidthreads:0}} + + +{{#useliquidthreads:0}} + ' /var/www/wiki/mediawiki/extensions/Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php:143 /var/www/wiki/mediawiki/core/tests/phpunit/MediaWikiTestCase.php:416 /var/www/wiki/mediawiki/core/maintenance/doMaintenance.php:94 3) Flow\Tests\Import\LiquidThreadsApi\ConversionStrategyTest::testCreateArchiveCleanupRevisionContent with data set #2 ('Page containing some stuff an...c word', '{{Archive for converted LQT p...qual.\n', 'Four score and seven years ag...\n 1\n}}') Page containing some stuff and the lqt magic word Failed asserting that two strings are equal. --- Expected +++ Actual @@ @@ '{{Archive for converted LQT page|from=Talk:Blue birds|date=2017-12-04}} {{#useliquidthreads:0}} + + +{{#useliquidthreads:0}} + Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. ' /var/www/wiki/mediawiki/extensions/Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php:143 /var/www/wiki/mediawiki/core/tests/phpunit/MediaWikiTestCase.php:416 /var/www/wiki/mediawiki/core/maintenance/doMaintenance.php:94 4) Flow\Tests\Import\Wikitext\ConversionStrategyTest::testShouldConvertLqt Normal non-LQT talk page should be converted Failed asserting that false matches expected true. /var/www/wiki/mediawiki/extensions/Flow/tests/phpunit/Import/Wikitext/ConversionStrategyTest.php:105 /var/www/wiki/mediawiki/core/tests/phpunit/MediaWikiTestCase.php:416 /var/www/wiki/mediawiki/core/maintenance/doMaintenance.php:94 ``` This shows as ``` #!/usr/bin/env php Using PHP 7.1.11-0ubuntu0.17.10.1 PHPUnit 4.8.36 by Sebastian Bergmann and contributors. .......................................SS...................... 63 / 514 ( 12%) ............................................................... 126 / 514 ( 24%) ....................SSSS..........................FFF.......... 189 / 514 ( 36%) ............F.....SSSSSSSSSSSSSSSSSSSSSSSSSSSS................. 252 / 514 ( 49%) ............................................SSSSSSSSSS......... 315 / 514 ( 61%) ............................................................... 378 / 514 ( 73%) ..................................................SSSS......... 441 / 514 ( 85%) ............................................................... 504 / 514 ( 98%) .......... Time: 1.7 minutes, Memory: 96.00MB ``` And with LQT disabled, they're just skipped ``` reedy@ubuntu64-web-esxi:/var/www/wiki/mediawiki/core$ php tests/phpunit/phpunit.php extensions/Flow/tests/phpunit/ #!/usr/bin/env php Using PHP 7.1.11-0ubuntu0.17.10.1 PHPUnit 4.8.36 by Sebastian Bergmann and contributors. .......................................SS...................... 63 / 514 ( 12%) ............................................................... 126 / 514 ( 24%) ....................SSSS..........................SSS.......... 189 / 514 ( 36%) ............S.....SSSSSSSSSSSSSSSSSSSSSSSSSSSS................. 252 / 514 ( 49%) ............................................SSSSSSSSSS......... 315 / 514 ( 61%) ............................................................... 378 / 514 ( 73%) ..................................................SSSS......... 441 / 514 ( 85%) ............................................................... 504 / 514 ( 98%) .......... Time: 1.65 minutes, Memory: 96.00MB OK, but incomplete, skipped, or risky tests! Tests: 514, Assertions: 1301, Skipped: 52. ```
    • Task
    • ·Closed
    It seems that on my dev wiki, and at least on test2wiki, there's a thread_root_2 index that is a duplicate... Be nice if the extension cleans them up ``` +--------+------------+----------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | +--------+------------+----------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ | thread | 0 | PRIMARY | 1 | thread_id | A | 133 | NULL | NULL | | BTREE | | | | thread | 0 | thread_root | 1 | thread_root | A | 133 | NULL | NULL | | BTREE | | | | thread | 0 | thread_root_2 | 1 | thread_root | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_ancestor | 1 | thread_ancestor | A | 66 | NULL | NULL | | BTREE | | | | thread | 1 | thread_ancestor | 2 | thread_parent | A | 133 | NULL | NULL | YES | BTREE | | | | thread | 1 | thread_article_title | 1 | thread_article_namespace | A | 6 | NULL | NULL | | BTREE | | | | thread | 1 | thread_article_title | 2 | thread_article_title | A | 19 | NULL | NULL | | BTREE | | | | thread | 1 | thread_article_title | 3 | thread_sortkey | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_article | 1 | thread_article_id | A | 19 | NULL | NULL | | BTREE | | | | thread | 1 | thread_article | 2 | thread_sortkey | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_modified | 1 | thread_modified | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_created | 1 | thread_created | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_summary_page | 1 | thread_summary_page | A | 8 | NULL | NULL | YES | BTREE | | | | thread | 1 | thread_author_name | 1 | thread_author_id | A | 133 | NULL | NULL | YES | BTREE | | | | thread | 1 | thread_author_name | 2 | thread_author_name | A | 133 | NULL | NULL | YES | BTREE | | | | thread | 1 | thread_sortkey | 1 | thread_sortkey | A | 133 | NULL | NULL | | BTREE | | | | thread | 1 | thread_parent | 1 | thread_parent | A | 133 | NULL | NULL | YES | BTREE | | | +--------+------------+----------------------+--------------+--------------------------+-----------+-------------+----------+--------+------+------------+---------+---------------+ 17 rows in set (0.00 sec) ``` ```lang=sql ALTER TABLE /*_*/thread DROP INDEX /*i*/thread_root_2; ```
    • Task
    • ·Closed
    When I click reply on a thread, on error console I see: Uncaught Error: Widget not found at Object.OO.ui.Element.static.unsafeInfuse (Element.js:144) at Object.OO.ui.Element.static.infuse (Element.js:104) at Object.OO.ui.infuse (core.js:326) at HTMLDocument.<anonymous> (mediawiki.action.edit.js?29a7f:23) at mightThrow (load.php?debug=true&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1uclx17:3583) at process (load.php?debug=true&lang=en&modules=jquery%2Cmediawiki&only=scripts&skin=vector&version=1uclx17:3651)
    • Task
    • ·Closed
    From https://gerrit.wikimedia.org/r/#/c/354941/ CR: > if I open more reply windows only first of them will have a toolbar. There is also very annoying scrolling which makes me confused which reply window I just opened.
    • Task
    • ·Closed
    {F8144515, width = 500 } I don't think there has been any recent changes to LiquidThreads, so I suspect a change in core.
    • Task
    • ·Closed
    The following system messages should be updated from "**{{int:savearticle}}**" to "**{{int:publishchanges}}**" OR "**{{int:publishpage}}**": - [[ https://translatewiki.net/wiki/MediaWiki:Guidedtour-tour-firstedit-save-description/en | MediaWiki:Guidedtour-tour-firstedit-save-description]] - [[https://translatewiki.net/wiki/MediaWiki:Guidedtour-tour-gettingstarted-click-save-description/en | MediaWiki:Guidedtour-tour-gettingstarted-click-save-description]] - [[https://translatewiki.net/wiki/MediaWiki:Lqt-summarize-intro/en | MediaWiki:Lqt-summarize-intro]]
    • Task
    Possibly related to {T111088}: when editing a LiquidThreads message, the edit checkboxes in editoptions are on separate lines and the edit summary field no longer takes all the space available: {F7850968} Another page's action=edit on translatewiki.net: {F7852129}
    • Task
    • ·Closed
    The hook was deprecated in https://gerrit.wikimedia.org/r/#/c/344805/ (MW 1.29). Use 'EditPageGetCheckboxesDefinition' instead, or 'EditPage::showStandardInputs:options' if you don't actually care about checkboxes and just want to add some HTML to the page.
    • Task
    • ·Closed
    After servers migration some days ago, Apertium WMF machine translations for Asturian language (ISO code ast) are not working. The box for translations is there, but it does not provide a translation. Regards. ---- **URL**: [[https://translatewiki.net/wiki/MediaWiki:Apierror-liquidthreads-badsubject/ast]]
    • Task
    Seen after https://translatewiki.net/w/i.php?title=User_talk:Putputi&oldid=7297027 : a user talk page edit triggers the user message indicator, which however links Special:NewMessages, which is empty because no new thread/thread reply was created.
    • Task
    • ·Closed
    LiquidThreads REL1_23 has no package.json so npm-node-6-jessie fails See https://gerrit.wikimedia.org/r/#/c/335323/ and https://integration.wikimedia.org/ci/job/npm-node-6-jessie/2859/console ``` 22:13:57 Started by user anonymous 22:13:57 Building remotely on ci-jessie-wikimedia-510456 (ci-jessie-wikimedia) in workspace /home/jenkins/workspace/npm-node-6-jessie 22:13:57 Using checkout strategy: Default 22:13:57 Last Built Revision: Revision 9fd2868bf7b6026b9f0163ccf25375a7291b40e4 (detached) 22:13:59 Wiping out workspace first. 22:13:59 Cloning the remote Git repository 22:13:59 Using shallow clone 22:13:59 Cloning repository git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads 22:13:59 > git init /home/jenkins/workspace/npm-node-6-jessie # timeout=10 22:13:59 Fetching upstream changes from git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads 22:13:59 > git --version # timeout=10 22:13:59 > git -c core.askpass=true fetch --tags --progress git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads +refs/heads/*:refs/remotes/origin/* --depth=1 22:14:00 > git config remote.origin.url git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads # timeout=10 22:14:00 > git config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10 22:14:00 > git config remote.origin.url git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads # timeout=10 22:14:00 Fetching upstream changes from git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads 22:14:00 > git -c core.askpass=true fetch --tags --progress git://scandium.eqiad.wmnet/mediawiki/extensions/LiquidThreads refs/zuul/REL1_23/Z66ca48703c1d4cfcbc535858a7f00f6d --depth=1 22:14:00 getCandidateRevisions(false,33f3ef03d7435ae7637340de94982fa28d58e925,,,hudson.plugins.git.util.BuildData@2038d3dc[scmName=<null>,remoteUrls=[$ZUUL_URL/$ZUUL_PROJECT],buildsByBranchName={detached=Build #2857 of Revision 9fd2868bf7b6026b9f0163ccf25375a7291b40e4 (detached)},lastBuild=Build #2857 of Revision 9fd2868bf7b6026b9f0163ccf25375a7291b40e4 (detached)]) considering branches to build 22:14:00 > git rev-parse 33f3ef03d7435ae7637340de94982fa28d58e925^{commit} # timeout=10 22:14:00 Will build the detached SHA1 AnyObjectId[33f3ef03d7435ae7637340de94982fa28d58e925] 22:14:00 Checking out Revision 33f3ef03d7435ae7637340de94982fa28d58e925 (detached) 22:14:00 > git config core.sparsecheckout # timeout=10 22:14:00 > git checkout -f 33f3ef03d7435ae7637340de94982fa28d58e925 22:14:00 > git rev-list 9fd2868bf7b6026b9f0163ccf25375a7291b40e4 # timeout=10 22:14:00 First time build. Skipping changelog. 22:14:00 > git tag -a -f -m Jenkins Build #2859 jenkins-npm-node-6-jessie-2859 # timeout=10 22:14:00 [npm-node-6-jessie] $ /bin/bash -e -u /tmp/hudson2165859741125140279.sh 22:14:00 Node version v6.9.1 matches '^v6[.]' 22:14:00 [npm-node-6-jessie] $ /bin/bash -xe /tmp/hudson284857589127440187.sh 22:14:00 + set -eu +x 22:14:00 Defined: CASTOR_NAMESPACE="castor-mw-ext-and-skins/REL1_23/npm-node-6-jessie" 22:14:00 [npm-node-6-jessie] $ /bin/bash -xe /tmp/hudson561567461303911061.sh 22:14:00 + . castor-set-namespace.env 22:14:00 ++ declare -x CASTOR_NAMESPACE=castor-mw-ext-and-skins/REL1_23/npm-node-6-jessie 22:14:00 + echo Syncing... 22:14:00 Syncing... 22:14:00 + rsync --archive --compress --contimeout 3 rsync://castor.integration.eqiad.wmflabs:/caches/castor-mw-ext-and-skins/REL1_23/npm-node-6-jessie/ /home/jenkins 22:14:01 + echo -e '\nDone' 22:14:01 22:14:01 Done 22:14:01 [npm-node-6-jessie] $ /bin/bash -xe /tmp/hudson1496817182190626550.sh 22:14:01 + mkdir -p /home/jenkins/workspace/npm-node-6-jessie/log 22:14:01 + node --version 22:14:01 v6.9.1 22:14:01 + npm --version 22:14:01 2.15.2 22:14:01 + npm install 22:14:02 npm ERR! install Couldn't read dependencies 22:14:02 npm ERR! Linux 3.16.0-4-amd64 22:14:02 npm ERR! argv "/usr/bin/nodejs" "/usr/local/bin/npm" "install" 22:14:02 npm ERR! node v6.9.1 22:14:02 npm ERR! npm v2.15.2 22:14:02 npm ERR! path /home/jenkins/workspace/npm-node-6-jessie/package.json 22:14:02 npm ERR! code ENOPACKAGEJSON 22:14:02 npm ERR! errno -2 22:14:02 npm ERR! syscall open 22:14:02 22:14:02 npm ERR! package.json ENOENT: no such file or directory, open '/home/jenkins/workspace/npm-node-6-jessie/package.json' 22:14:02 npm ERR! package.json This is most likely not a problem with npm itself. 22:14:02 npm ERR! package.json npm can't find a package.json file in your current directory. 22:14:02 22:14:02 npm ERR! Please include the following file with any support request: 22:14:02 npm ERR! /home/jenkins/workspace/npm-node-6-jessie/npm-debug.log 22:14:02 Build step 'Execute shell' marked build as failure 22:14:02 Archiving artifacts 22:14:03 [PostBuildScript] - Execution post build scripts. 22:14:03 [PostBuildScript] Build is not success : do not execute script 22:14:03 Finished: FAILURE ```
    • Task
    • ·Closed
    Warning: Parameter 1 to LqtHooks::customiseSearchResultTitle() expected to be a reference, value given caused by : https://gerrit.wikimedia.org/r/#/c/332563/
    • Task
    • ·Closed
    There was an incident at translatewiki.net. I was not around, but some people suspected HHVM has crashed, which it has done before. I started investigating the logs and I found things such as this: ``` 2017-01-13 13:20:44 translatewiki.net translatewiki_net-bw_: [f8ad881d0def7b56970ebdcc] /w/i.php?title=Support&offset=20160623103144&limit=20999999.1%20union%20select%20unhex(hex(version()))%20--%20and%201%3D1 MWException from line 168 of /srv/mediawiki/tags/2017-01-04_09:30:19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.class.php: Unexpected output from Pygments encountered ``` ``` 2017-01-13 13:20:02 translatewiki.net translatewiki_net-bw_: [5181b65680301d1e34af5d73] /w/i.php?title=Support&offset=20160623103144&limit=201111111111111%22%20UNION%20SELECT%20CHAR(45,120,49,45,81,4 5),CHAR(45,120,50,45,81,45),CHAR(45,120,51,45,81,45),CHAR(45,120,52,45,81,45),CHAR(45,120,53,45,81,45),CHAR(45,120,54,45,81,45),CHAR(45,120,55,45,81,45),CHAR(45,120,56,45,81,45),CHAR(45,120,57,45,81, 45),CHAR(45,120,49,48,45,81,45),CHAR(45,120,49,49,45,81,45),CHAR(45,120,49,50,45,81,45),CHAR(45,120,49,51,45,81,45),CHAR(45,120,49,52,45,81,45),CHAR(45,120,49,53,45,81,45),CHAR(45,120,49,54,45,81,45) ,CHAR(45,120,49,55,45,81,45),CHAR(45,120,49,56,45,81,45),CHAR(45,120,49,57,45,81,45),CHAR(45,120,50,48,45,81,45),CHAR(45,120,50,49,45,81,45),CHAR(45,120,50,50,45,81,45),CHAR(45,120,50,51,45,81,45),CH AR(45,120,50,52,45,81,45),CHAR(45,120,50,53,45,81,45),CHAR(45,120,50,54,45,81,45),CHAR(45,120,50,55,45,81,45),CHAR(45,120,50,56,45,81,45),CHAR(45,120,50,57,45,81,45),CHAR(45,120,51,48,45,81,45),CHAR( 45,120,51,49,45,81,45),CHAR(45,120,51,50,45,81,45),CHAR(45,120,51,51,45,81,45),CHAR(45,120,51,52,45,81,45),CHAR(45,120,51,53,45,81,45),CHAR(45,120,51,54,45,81,45),CHAR(45,120,51,55,45,81,45),CHAR(45, 120,51,56,45,81,45),CHAR(45,120,51,57,45,81,45)%20--%20/*%20order%20by%20%22as%20/* MWException from line 168 of /srv/mediawiki/tags/2017-01-04_09:30:19/extensions/SyntaxHighlight_GeSHi/SyntaxHighl ight_GeSHi.class.php: Unexpected output from Pygments encountered ``` ``` \nFatal error: request has exceeded memory limit in /srv/mediawiki/tags/2017-01-04_09:30:19/includes/OutputPage.php on line 1506 ``` ``` 2017-01-13 15:21:31 translatewiki.net translatewiki_net-bw_: [1af36d12a5fc0dea8bec34c9] /w/i.php?title=Support&offset=20160623103144&limit=20999999.1%20and(select%201%20from(select%20count(*),concat( (select%20(select%20(SELECT%20distinct%20concat(0x7e,0x27,%27ololo%27,0x27,0x7e)%20FROM%20information_schema.schemata%20LIMIT%201))%20from%20information_schema.tables%20limit%200,1),floor(rand(0)*2)) x%20from%20information_schema.tables%20group%20by%20x)a)%20and%201=1%20 MWException from line 168 of /srv/mediawiki/tags/2017-01-04_09:30:19/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.c lass.php: Unexpected output from Pygments encountered ``` I knew the warning about Pygments already, and I believe it is unrelated. I tried some of the urls myself, to see if there is an SQL injection, but those were timing out. Then I made MediaWiki to log into error log all the queries it does. I got about 90M of those, over 100k queries etc. With grepping I found no evidence of an SQL injection, but these requests take many minutes to complete even though nginx gives a time out. Most likely the attacker exhausted our resources bringing the site down. Lqt does not do any validation in the limit parameter: ``` class LqtDiscussionPager extends IndexPager { function __construct( $article, $orderType ) { $this->article = $article; $this->orderType = $orderType; parent::__construct(); $this->mLimit = $this->getPageLimit(); } function getPageLimit() { $article = $this->article; global $wgRequest; $requestedLimit = $wgRequest->getVal( 'limit', null ); if ( $requestedLimit ) { return $requestedLimit; } if ( $article->exists() ) { $pout = $article->getParserOutput(); $setLimit = $pout->getProperty( 'lqt-page-limit' ); if ( $setLimit ) return $setLimit; } global $wgLiquidThreadsDefaultPageLimit; return $wgLiquidThreadsDefaultPageLimit; } ``` My conclusion is that this is only a denial of service issue, but I would like someone else to double check.
    • Task
    • ·Closed
    **reproduce link** https://mediawiki.org/wiki/Thread:Project:Support_desk/Adding_custom_style_for_special_pages/reply **log line** ``` {"id":"WBF1NQpAMFUAACrDdMkAAAAI","type":"BadMethodCallException","file":"/srv/mediawiki/php-1.28.0-wmf.23/extensions/LiquidThreads/pages/ThreadPermalinkView.php","line":122,"message":"Call to a member function setFragment() on a non-object (null)","code": ```
    • Task
    • ·Closed
    This is shown on when viewing a page with threads and probably on most thread related actions as well. ``` [Tue Oct 11 14:20:36 2016] [hphp] [8017:7f8a70fff700:205826:000001] [] \nNotice: Inaccessible property via __get(): getPage in /srv/mediawiki/tags/2016-10-11_12:17:41/includes/page/Article.php on line 2054 2016-10-11 12:20:36 translatewiki.net translatewiki_net-bw_: [76d87e58b8b4ca596e6a37ba] /w/i.php?title=Thread:Support/Request_4_languages_of_Indigenous_Taiwanese&lqt_method=thread_history BadMethodCallException from line 2036 of /srv/mediawiki/tags/2016-10-11_12:17:41/extensions/LiquidThreads/classes/View.php: Call to a member function getContent() on a non-object (null) #0 /srv/mediawiki/tags/2016-10-11_12:17:41/extensions/LiquidThreads/pages/ThreadHistoryListingView.php(27): LqtView->showThread(Thread) #1 /srv/mediawiki/tags/2016-10-11_12:17:41/extensions/LiquidThreads/classes/Dispatch.php(101): ThreadHistoryListingView->show() #2 /srv/mediawiki/tags/2016-10-11_12:17:41/extensions/LiquidThreads/classes/Dispatch.php(223): LqtDispatch::threadPermalinkMain(OutputPage, Article, Title, User, WebRequest) #3 /srv/mediawiki/tags/2016-10-11_12:17:41/includes/Hooks.php(195): LqtDispatch::tryPage(OutputPage, Article, Title, User, WebRequest, MediaWiki) #4 /srv/mediawiki/tags/2016-10-11_12:17:41/includes/MediaWiki.php(477): Hooks::run(string, array) #5 /srv/mediawiki/tags/2016-10-11_12:17:41/includes/MediaWiki.php(289): MediaWiki->performAction(Article, Title) #6 /srv/mediawiki/tags/2016-10-11_12:17:41/includes/MediaWiki.php(861): MediaWiki->performRequest() #7 /srv/mediawiki/tags/2016-10-11_12:17:41/includes/MediaWiki.php(522): MediaWiki->main() #8 /srv/mediawiki/tags/2016-10-11_12:17:41/index.php(43): MediaWiki->run() #9 {main} ```
    • Task
    • ·Closed
    On {f4ec651}, I get an exception when converting a LiquidThreads page, though it seems to look right afterwards: Maybe a slave lag issue, but unclear. ``` vagrant@mediawiki-vagrant:~$ mwscript extensions/Flow/maintenance/convertLqtPageOnLocalWiki.php --srcpage 'Wiki_talk:LQT_page_2' --logfile '/tmp/LQT_page_2_logfile.log' [2016-09-23 00:55:37] Starting LQT conversion of page Wiki_talk:LQT_page_2 [2016-09-23 00:55:37] Archiving page from Wiki talk:LQT page 2 to Wiki talk:LQT page 2/LQT Archive 1 [2016-09-23 00:55:43] Importing to Wiki talk:LQT page 2 [2016-09-23 00:55:49] Importing header [2016-09-23 00:55:50] Imported 2 revisions for header [2016-09-23 00:55:50] Importing new topic [2016-09-23 00:55:50] Finished importing topic title with 1 revisions [2016-09-23 00:55:50] Importing post [2016-09-23 00:55:50] Finished importing post with 1 revisions [2016-09-23 00:55:50] Finished importing topic [2016-09-23 00:56:08] Importing new topic [2016-09-23 00:56:08] Finished importing topic title with 1 revisions [2016-09-23 00:56:08] Importing post [2016-09-23 00:56:08] Finished importing post with 1 revisions [2016-09-23 00:56:08] Finished importing topic [2016-09-23 00:56:25] Flow\Import\LiquidThreadsApi\ApiBackend::retrieveThreadData: Failed API call against local with conditions : {"thpage":"Wiki talk:LQT page 2\/LQT Archive 1","thstartid":8} [2016-09-23 00:56:25] Exception while importing: Wiki talk:LQT page 2 [2016-09-23 00:56:25] exception 'Flow\Import\ImportException' with message 'Null response from API module:{"error":{"code":"internal_api_error_InvalidArgumentException","info":"Exception Caught: Database::makeList: empty input for field thread_parent"}}' in /vagrant/mediawiki/extensions/Flow/includes/Import/LiquidThreadsApi/Source.php:242 Stack trace: #0 /vagrant/mediawiki/extensions/Flow/includes/Import/LiquidThreadsApi/CachedData.php(150): Flow\Import\LiquidThreadsApi\ApiBackend->retrieveThreadData(Array) #1 /vagrant/mediawiki/extensions/Flow/includes/Import/LiquidThreadsApi/Iterators.php(127): Flow\Import\LiquidThreadsApi\CachedThreadData->getFromPage('Wiki talk:LQT p...', 8) #2 /vagrant/mediawiki/extensions/Flow/includes/Import/LiquidThreadsApi/Iterators.php(102): Flow\Import\LiquidThreadsApi\TopicIterator->loadMore() #3 /vagrant/mediawiki/extensions/Flow/includes/Import/Importer.php(604): Flow\Import\LiquidThreadsApi\TopicIterator->next() #4 /vagrant/mediawiki/extensions/Flow/includes/Import/Importer.php(129): Flow\Import\TalkpageImportOperation->import(Object(Flow\Import\PageImportState)) #5 /vagrant/mediawiki/extensions/Flow/includes/Import/Converter.php(187): Flow\Import\Importer->import(Object(Flow\Import\LiquidThreadsApi\ImportSource), Object(Title), Object(Flow\Import\SourceStore\File)) #6 /vagrant/mediawiki/extensions/Flow/includes/Import/Converter.php(138): Flow\Import\Converter->doConversion(Object(Title), NULL) #7 /vagrant/mediawiki/extensions/Flow/includes/Import/Converter.php(107): Flow\Import\Converter->convert(Object(Title)) #8 /vagrant/mediawiki/extensions/Flow/maintenance/convertLqtPageOnLocalWiki.php(79): Flow\Import\Converter->convertAll(Array) #9 /vagrant/mediawiki/maintenance/doMaintenance.php(110): ConvertLqtPageOnLocalWiki->execute() #10 /vagrant/mediawiki/extensions/Flow/maintenance/convertLqtPageOnLocalWiki.php(86): require_once('/vagrant/mediaw...') #11 /var/www/w/MWScript.php(95): require_once('/vagrant/mediaw...') #12 {main} [2016-09-23 00:56:25] Finished LQT conversion of page Wiki_talk:LQT_page_2 ```
    • Task
    • ·Closed
    When doing T145736, I noticed LqtView::postEditUpdates is still used Needs migrating to one of the utility functions, passing an array instead of loads of parameters
    • Task
    • ·Closed
    ``` 2016-09-14 14:36:01 translatewiki.net translatewiki_net-bw_: [85e95da0a8b4cf07c91b773b] /wiki/Special:MoveThread/Thread:User_talk:Liuxinyu970226/Re:%E9%96%A3%E4%B8%8B%E8%B2%8C%E4%BC%BC%E6%94%B9%E9%81%8E%E7%B0%A1%E9%AB%94%EF%BC%9F_(2) DBUnexpectedError from line 3085 of /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/Database.php: MWCallableUpdate::doUpdate: Cannot COMMIT to clear snapshot because writes are pending. #0 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LoadBalancer.php(1176): DatabaseBase->flushSnapshot(string) #1 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LoadBalancer.php(1560): Closure$LoadBalancer::beginMasterChanges(DatabaseMysqli) #2 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LoadBalancer.php(1184): LoadBalancer->forEachOpenMasterConnection(Closure$LoadBalancer::beginMasterChanges;1002943401) #3 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(228): LoadBalancer->beginMasterChanges(string) #4 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactorySimple.php(158): Closure$LBFactory::forEachLBCallMethod(LoadBalancer, string, array) #5 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(231): LBFactorySimple->forEachLB(Closure$LBFactory::forEachLBCallMethod;1428847994, array) #6 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(280): LBFactory->forEachLBCallMethod(string, array) #7 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(242): LBFactory->beginMasterChanges(string) #8 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(209): DeferredUpdates::runUpdate(MWCallableUpdate, LBFactorySimple, integer) #9 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(125): DeferredUpdates::execute(array, string, integer) #10 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/MediaWiki.php(852): DeferredUpdates::doUpdates(string) #11 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/MediaWiki.php(679): MediaWiki->restInPeace(string) #12 [internal function]: Closure$MediaWiki::doPostOutputShutdown() #13 {main} 2016-09-14 14:36:01 translatewiki.net translatewiki_net-bw_: Exception thrown with an uncommited database transaction: [85e95da0a8b4cf07c91b773b] /wiki/Special:MoveThread/Thread:User_talk:Liuxinyu970226/Re:%E9%96%A3%E4%B8%8B%E8%B2%8C%E4%BC%BC%E6%94%B9%E9%81%8E%E7%B0%A1%E9%AB%94%EF%BC%9F_(2) DBExpectedError from line 1190 of /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LoadBalancer.php: MWCallableUpdate::doUpdate: Flush failed on server(s) 127.0.0.1:3306: MWCallableUpdate::doUpdate: Cannot COMMIT to clear snapshot because writes are pending. #0 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(228): LoadBalancer->beginMasterChanges(string) #1 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactorySimple.php(158): Closure$LBFactory::forEachLBCallMethod(LoadBalancer, string, array) #2 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(231): LBFactorySimple->forEachLB(Closure$LBFactory::forEachLBCallMethod;1428847994, array) #3 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/db/loadbalancer/LBFactory.php(280): LBFactory->forEachLBCallMethod(string, array) #4 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(242): LBFactory->beginMasterChanges(string) #5 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(209): DeferredUpdates::runUpdate(MWCallableUpdate, LBFactorySimple, integer) #6 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/deferred/DeferredUpdates.php(125): DeferredUpdates::execute(array, string, integer) #7 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/MediaWiki.php(852): DeferredUpdates::doUpdates(string) #8 /srv/mediawiki/tags/2016-09-13_08:09:31/includes/MediaWiki.php(679): MediaWiki->restInPeace(string) #9 [internal function]: Closure$MediaWiki::doPostOutputShutdown() #10 {main} ```
    • Task
    • ·Closed
    ``` 2016-08-25 11:58:42 translatewiki.net translatewiki_net-bw_: [5449ed90d94335f951d72516] [no req] ErrorPageError from line 1005 of /srv/mediawiki/tags/2016-08-25_08:54:50/includes/EditPage.php: The content format json is not supported by the content model wikitexte. #0 /srv/mediawiki/tags/2016-08-25_08:54:50/includes/EditPage.php(525): EditPage->importFormData(WebRequest) #1 /srv/mediawiki/tags/2016-08-25_08:54:50/extensions/LiquidThreads/classes/View.php(669): EditPage->edit() #2 /srv/mediawiki/tags/2016-08-25_08:54:50/extensions/LiquidThreads/classes/View.php(399): LqtView->showReplyForm(Thread) #3 /srv/mediawiki/tags/2016-08-25_08:54:50/extensions/LiquidThreads/classes/View.php(467): LqtView->doInlineEditForm() #4 /srv/mediawiki/tags/2016-08-25_08:54:50/extensions/LiquidThreads/api/ApiThreadAction.php(835): LqtView::getInlineEditForm(Article, string, string) #5 /srv/mediawiki/tags/2016-08-25_08:54:50/extensions/LiquidThreads/api/ApiThreadAction.php(55): ApiThreadAction->actionInlineEditForm(array, array) #6 /srv/mediawiki/tags/2016-08-25_08:54:50/includes/api/ApiMain.php(1426): ApiThreadAction->execute() #7 /srv/mediawiki/tags/2016-08-25_08:54:50/includes/api/ApiMain.php(510): ApiMain->executeAction() #8 /srv/mediawiki/tags/2016-08-25_08:54:50/includes/api/ApiMain.php(481): ApiMain->executeActionWithErrorHandling() #9 /srv/mediawiki/tags/2016-08-25_08:54:50/api.php(83): ApiMain->execute() #10 {main} ``` Correlating with access logs I see some are caused by: "POST /w/api.php HTTP/2.0" 200 759 "https://translatewiki.net/wiki/Special:NewMessages" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:48.0) Gecko/20100101 Firefox/48.0" ECDHE-RSA-AES128-GCM-SHA256 0.090 But there is always an earlier (≲30s) error which does not correlate with web request. `wikitexte` seems to be the French localisation of the content model. I would expect English text in an exception.
    • Task
    • ·Closed
    I thought I had already filed this one but maybe I mixed up with another extension or even T96422/T37865. ``` [11-Jun-2018 16:52:54 UTC] PHP Warning: Invalid argument supplied for foreach() in /srv/mediawiki/tags/2018-06-06_05:52:45/extensions/LiquidThreads/classes/View.php on line 505 ```
    • Task
    • ·Closed
    This notice is popping up fairly frequently in fatalmonitor. It is currently the most frequently occurring log message: ``` Notice: Undefined index: title in /srv/mediawiki/php-1.28.0-wmf.4/extensions/LiquidThreads/classes/Hooks.php on line 949 ```
    • Task
    • ·Closed
    ``` [Wed May 4 15:49:28 2016] [hphp] [743:7f0849fff700:38044:000001] [] \nDeprecated: Use of SpecialWatchlistQuery hook (used in LqtHooks::beforeWatchlist) was deprecated in MediaWiki 1.23. [Called from SpecialWatchlist::runMainQueryHook in /srv/mediawiki/tags/2016-05-04_11:45:06/includes/specials/SpecialWatchlist.php at line 305] in /srv/mediawiki/tags/2016-05-04_11:45:06/includes/debug/MWDebug.php ```
    • Task
    • ·Closed
    MediaWiki contains a //gender// magic word that can change text according to the gender of user set in his/her settings. Our community from cswiki [[ https://cs.wikipedia.org/w/index.php?title=Wikipedie:Pod_l%C3%ADpou&oldid=13564948#V.C3.ADce_VisualEditoru_pro_nov.C3.A1.C4.8Dky | would like to ask ]] for similar magic word for VisualEditor. If user uses VE, the magic word would show text/link specially for VE, if user uses source, the magic word would show text specially for source. Our community on cswiki would like to use this feature for linking between VE and source help pages on the top of those connected pages. The links between these could look like changing translated versions of a page on Meta/MediaWiki wikis, so the main help page would be for VE and the subpage (or page with identifier in parenthesis) would be for source. The purpose of this task is to automatically redirect user to the apropriate help page according to its VE/source setting. That could be done only with a knowledge of user interface setting, which could be provided by a magic word. It could look like this: ``` #REDIRECT [[Help:{{ve:UserName|Images|Images/source}}]] ``` Finally a question: Is there any possibility for achieving our intention without requested magic word?
    • Task
    • ·Closed
    https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Alfabeto_dos_animais > [1208a28c] 2016-02-27 21:28:55: Fatal exception of type MWUnknownContentModelException https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Livro_de_receitas > [df34be9d] 2016-02-27 21:28:56: Fatal exception of type MWUnknownContentModelException https://pt.wikibooks.org/wiki/Discuss%C3%A3o:Portugu%C3%AAs/Acentua%C3%A7%C3%A3o_e_sinais_auxiliares_da_escrita > [502cb7c0] 2016-02-27 21:30:33: Fatal exception of type MWUnknownContentModelException > [5420168c] 2016-02-29 15:56:37: Fatal exception of type MWUnknownContentModelException https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Marcos_Ant%C3%B4nio_Nunes_de_Moura > [d9d960f0] 2016-02-29 15:57:12: Fatal exception of type MWUnknownContentModelException https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:Defender > [5105c319] 2016-02-29 15:58:24: Fatal exception of type MWUnknownContentModelException https://pt.wikibooks.org/wiki/Utilizador_Discuss%C3%A3o:CommonsDelinker Maybe it is related to T113682?
    • Task
    • ·Closed
    vagrant provision throws error: luke081515@rcm-wiki-ca:/srv/mediawiki-vagrant$ vagrant provision ==> default: Running provisioner: lsb_check... ==> default: Running provisioner: puppet... ==> default: Running Puppet with site.pp... ==> default: Info: Loading facts in /vagrant/puppet/modules/stdlib/lib/facter/facter_dot_d.rb ==> default: Info: Loading facts in /vagrant/puppet/modules/stdlib/lib/facter/puppet_vardir.rb ==> default: Info: Loading facts in /vagrant/puppet/modules/stdlib/lib/facter/root_home.rb ==> default: Info: Loading facts in /vagrant/puppet/modules/stdlib/lib/facter/pe_version.rb ==> default: Error: Duplicate declaration: Mediawiki::Extension[LiquidThreads] is already declared in file /vagrant/puppet/modules/role/manifests/liquidthreads.pp:12; cannot redeclare at /vagrant/puppet/modules/role/manifests/massmessage.pp:15 on node mediawiki-vagrant.dev ==> default: Error: Duplicate declaration: Mediawiki::Extension[LiquidThreads] is already declared in file /vagrant/puppet/modules/role/manifests/liquidthreads.pp:12; cannot redeclare at /vagrant/puppet/modules/role/manifests/massmessage.pp:15 on node mediawiki-vagrant.dev The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.
    • Task
    • ·Closed
    Example thread where replying fails: https://translatewiki.net/w/i.php?title=Thread:Support/_iso_639-3_iso_639-3_%E2%80%93_iso_639-3_request_for_Sylheti_language_%26_keyboard_on_translatewiki_(2) ``` 2016-01-24 21:37:28 translatewiki.net translatewiki_net-bw_: [2f332579] /w/api.php DBQueryError from line 927 of /srv/mediawiki/tags/2016-01-23_21:05:53/includes/db/Database.php: A database error has occurred. Did you forget to run maintenance/update.php after upgrading? See: https://www.mediawiki.org/wiki/Manual:Upgrading#Run_the_update_script Query: INSERT INTO `bw_thread_history` (th_id,th_thread,th_timestamp,th_user,th_user_text,th_change_type,th_change_object,th_change_comment,th_content) VALUES (NULL,'48027','20160124213728','19154','MtDu','1','49681','Reply to [[Thread:Support/About MediaWiki:Smw-editpage-annotation-enabled/en and MediaWiki:Smw-editpage-property-annotation-enabled/en/reply|About [[MediaWiki:Smw-editpage-annotation-enabled/en]] and [[MediaWiki:Smw-editpage-property-annotation-enabled/en]]]]','O:6:\"Thread\":26:{s:9:\"\0*\0rootId\";s:7:\"4445834\";s:12:\"\0*\0articleId\";s:7:\"1513406\";s:12:\"\0*\0summaryId\";s:7:\"4479603\";s:13:\"\0*\0ancestorId\";s:1:\"0\";s:11:\"\0*\0parentId\";N;s:14:\"\0*\0superthread\";N;s:11:\"\0*\0ancestor\";r:1;s:19:\"\0*\0articleNamespace\";s:4:\"1103\";s:15:\"\0*\0articleTitle\";s:9:\"MediaWiki\";s:11:\"\0*\0modified\";s:14:\"20160124213728\";s:10:\"\0*\0created\";s:14:\"20150731224529\";s:10:\"\0*\0sortkey\";s:14:\"20160124213728\";s:5:\"\0*\0id\";s:5:\"48027\";s:7:\"\0*\0type\";s:1:\"0\";s:10:\"\0*\0subject\";s:116:\"About [[MediaWiki:Smw-editpage-annotation-enabled/en]] and [[MediaWiki:Smw-editpage-property-annotation-enabled/en]]\";s:11:\"\0*\0authorId\";s:5:\"15550\";s:13:\"\0*\0authorName\";s:6:\"Macofe\";s:12:\"\0*\0signature\";s:50:\"[[User:Macofe|Macofe]] ([[User talk:Macofe|talk]])\";s:16:\"\0*\0allDataLoaded\";N;s:15:\"\0*\0isHistorical\";b:0;s:15:\"\0*\0rootRevision\";N;s:10:\"editedness\";s:1:\"1\";s:10:\"\0*\0editors\";N;s:10:\"\0*\0replies\";a:1:{i:48818;O:6:\"Thread\":26:{s:9:\"\0*\0rootId\";s:7:\"4485220\";s:12:\"\0*\0articleId\";s:7:\"1513406\";s:12:\"\0*\0summaryId\";N;s:13:\"\0*\0ancestorId\";s:5:\"48027\";s:11:\"\0*\0parentId\";s:5:\"48027\";s:14:\"\0*\0superthread\";r:1;s:11:\"\0*\0ancestor\";r:1;s:19:\"\0*\0articleNamespace\";s:4:\"1103\";s:15:\"\0*\0articleTitle\";s:9:\"MediaWiki\";s:11:\"\0*\0modified\";s:14:\"20160124213728\";s:10:\"\0*\0created\";s:14:\"20150904221100\";s:10:\"\0*\0sortkey\";s:14:\"20160124213728\";s:5:\"\0*\0id\";s:5:\"48818\";s:7:\"\0*\0type\";s:1:\"0\";s:10:\"\0*\0subject\";s:116:\"About [[MediaWiki:Smw-editpage-annotation-enabled/en]] and [[MediaWiki:Smw-editpage-property-annotation-enabled/en]]\";s:11:\"\0*\0authorId\";s:4:\"2690\";s:13:\"\0*\0authorName\";s:6:\"Kghbln\";s:12:\"\0*\0signature\";s:67:\"[[User:Kghbln|&#91;&#91;kgh&#93;&#93;]] ([[User talk:Kghbln|talk]])\";s:16:\"\0*\0allDataLoaded\";N;s:15:\"\0*\0isHistorical\";b:0;s:15:\"\0*\0rootRevision\";N;s:10:\"editedness\";i:1;s:10:\"\0*\0editors\";N;s:10:\"\0*\0replies\";a:1:{i:49681;O:6:\"Thread\":26:{s:9:\"\0*\0rootId\";i:4618836;s:12:\"\0*\0articleId\";i:1513406;s:12:\"\0*\0summaryId\";N;s:13:\"\0*\0ancestorId\";s:5:\"48027\";s:11:\"\0*\0parentId\";s:5:\"48818\";s:14:\"\0*\0superthread\";r:26;s:11:\"\0*\0ancestor\";r:1;s:19:\"\0*\0articleNamespace\";i:1103;s:15:\"\0*\0articleTitle\";s:9:\"MediaWiki\";s:11:\"\0*\0modified\";s:14:\"20160124213728\";s:10:\"\0*\0created\";s:14:\"20160124213728\";s:10:\"\0*\0sortkey\";s:14:\"20160124213728\";s:5:\"\0*\0id\";i:49681;s:7:\"\0*\0type\";i:0;s:10:\"\0*\0subject\";s:116:\"About [[MediaWiki:Smw-editpage-annotation-enabled/en]] and [[MediaWiki:Smw-editpage-property-annotation-enabled/en]]\";s:11:\"\0*\0authorId\";i:19154;s:13:\"\0*\0authorName\";s:4:\"MtDu\";s:12:\"\0*\0signature\";s:44:\"[[User:MtDu|MtDu]] ([[User talk:MtDu|talk]])\";s:16:\"\0*\0allDataLoaded\";N;s:15:\"\0*\0isHistorical\";b:0;s:15:\"\0*\0rootRevision\";N;s:10:\"editedness\";i:0;s:10:\"\0*\0editors\";N;s:10:\"\0*\0replies\";a:0:{}s:12:\"\0*\0reactions\";N;s:10:\"replyCount\";i:0;}}s:12:\"\0*\0reactions\";N;s:10:\"replyCount\";i:1;}}s:12:\"\0*\0reactions\";N;s:10:\"replyCount\";i:2;}') Function: ThreadRevision::insert Error: 1406 Data too long for column 'th_change_comment' at row 1 (127.0.0.1:3306) #0 /srv/mediawiki/tags/2016-01-23_21:05:53/includes/db/Database.php(894): DatabaseBase->reportQueryError(string, integer, string, string, boolean) #1 /srv/mediawiki/tags/2016-01-23_21:05:53/includes/db/Database.php(1454): DatabaseBase->query(string, string) #2 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/classes/ThreadRevision.php(99): DatabaseBase->insert(string, array, string) #3 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/classes/ThreadRevision.php(88): ThreadRevision->insert() #4 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/classes/Thread.php(188): ThreadRevision::create(Thread, integer, Thread, string) #5 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/classes/Thread.php(102): Thread->commitRevision(integer, Thread, string, boolean) #6 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/classes/View.php(975): Thread::create(Article, Article, Thread, integer, string, string, boolean, string) #7 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/api/ApiThreadAction.php(582): LqtView::replyMetadataUpdates(array) #8 /srv/mediawiki/tags/2016-01-23_21:05:53/extensions/LiquidThreads/api/ApiThreadAction.php(55): ApiThreadAction->actionReply(array, array) #9 /srv/mediawiki/tags/2016-01-23_21:05:53/includes/api/ApiMain.php(1275): ApiThreadAction->execute() #10 /srv/mediawiki/tags/2016-01-23_21:05:53/includes/api/ApiMain.php(427): ApiMain->executeAction() #11 /srv/mediawiki/tags/2016-01-23_21:05:53/includes/api/ApiMain.php(399): ApiMain->executeActionWithErrorHandling() #12 /srv/mediawiki/tags/2016-01-22_14:47:58/api.php(83): ApiMain->execute() #13 {main} ```
    • Task
    • ·Closed
    Hello, The composer.json file is not valid: ``` ./composer.json is valid for simple usage with composer but has strict errors that make it unable to be published as a package: See https://getcomposer.org/doc/04-schema.md for details on the schema name : The property name is required description : The property description is required No license specified, it is recommended to do so. For closed-source software you may use "proprietary" as license. ``` It prevents people from easily installing the extension with Composer. Would it be possible to add the missing fields? Regards,
    • Task
    • ·Closed
    This exception is given. [Bug56269] Exception thrown with an uncommited database transaction: [4da18c4d] /w/index.php?title=Special:NewMessages&action=submit MWException from line 111 of /srv/mediawiki/w/includes/page/WikiPage.php: Invalid or virtual namespace -1 given. #0 /srv/mediawiki/w/includes/context/RequestContext.php(228): WikiPage::factory() #1 /srv/mediawiki/w/extensions/SpamBlacklist/SpamBlacklistHooks.php(52): RequestContext->getWikiPage() #2 /srv/mediawiki/w/includes/Hooks.php(209): SpamBlacklistHooks::filterMergedContent() #3 /srv/mediawiki/w/includes/EditPage.php(1450): Hooks::run() #4 /srv/mediawiki/w/includes/EditPage.php(1720): EditPage->runPostMergeFilters() #5 /srv/mediawiki/w/includes/EditPage.php(1305): EditPage->internalAttemptSave() #6 /srv/mediawiki/w/includes/EditPage.php(539): EditPage->attemptSave() #7 /srv/mediawiki/w/extensions/LiquidThreads/classes/View.php(664): EditPage->edit() #8 /srv/mediawiki/w/extensions/LiquidThreads/classes/View.php(2193): LqtView->showReplyForm() #9 /srv/mediawiki/w/extensions/LiquidThreads/pages/NewUserMessagesView.php(184): LqtView->showThread() #10 /srv/mediawiki/w/extensions/LiquidThreads/pages/NewUserMessagesView.php(134): NewUserMessagesView->showWrappedThread() #11 /srv/mediawiki/w/extensions/LiquidThreads/pages/SpecialNewMessages.php(39): NewUserMessagesView->show() #12 /srv/mediawiki/w/includes/specialpage/SpecialPage.php(384): SpecialNewMessages->execute() #13 /srv/mediawiki/w/includes/specialpage/SpecialPageFactory.php(582): SpecialPage->run() #14 /srv/mediawiki/w/includes/MediaWiki.php(267): SpecialPageFactory::executePath() #15 /srv/mediawiki/w/includes/MediaWiki.php(566): MediaWiki->performRequest() #16 /srv/mediawiki/w/includes/MediaWiki.php(414): MediaWiki->main() #17 /srv/mediawiki/w/index.php(41): MediaWiki->run() #18 {main}