https://bugzilla.wikimedia.org/show_bug.cgi?id=54295

Chad H. <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|Unprioritized               |High
                 CC|                            |[email protected],
                   |                            |neverett+bugzilla@wikimedia
                   |                            |.org
          Component|Parser                      |CirrusSearch
            Version|1.22-git                    |master
            Product|MediaWiki                   |MediaWiki extensions
            Summary|Bizarre parser test failure |Recursion is bad
                   |under hhvm                  |
           Severity|normal                      |major

--- Comment #1 from Chad H. <[email protected]> ---
The recursion we're doing in (Cirrus)SearchUpdate is bad. I've been complaining
about this but guess I've got a reason to fix it now :)

We don't handle [[A]] redirecting to [[A]] well at all...which is what this
test was doing and thus blowing up. Here's some xdebug output that helps show
the problem:


$ php parserTests.php --file=new.txt
This is MediaWiki version 1.22alpha (50c30a7).

PHP Fatal error:  Maximum function nesting level of '100' reached, aborting! in
/www/mediawiki/core/includes/db/DatabaseMysqlBase.php on line 480
PHP Stack trace:
PHP   1. {main}() /www/mediawiki/core/tests/parserTests.php:0
PHP   2. ParserTest->runTestsFromFiles()
/www/mediawiki/core/tests/parserTests.php:92
PHP   3. ParserTest->runTests()
/www/mediawiki/core/tests/parser/parserTest.inc:457
PHP   4. TestFileIterator->rewind()
/www/mediawiki/core/tests/parser/parserTest.inc:473
PHP   5. TestFileIterator->next() /www/mediawiki/core/tests/testHelpers.inc:385
PHP   6. TestFileIterator->readNextTest()
/www/mediawiki/core/tests/testHelpers.inc:399
PHP   7. ParserTest::addArticle() /www/mediawiki/core/tests/testHelpers.inc:429
PHP   8. WikiPage->doEditContent()
/www/mediawiki/core/tests/parser/parserTest.inc:1331
PHP   9. WikiPage->doEditUpdates()
/www/mediawiki/core/includes/WikiPage.php:1911
PHP  10. DataUpdate::runUpdates()
/www/mediawiki/core/includes/WikiPage.php:2077
PHP  11. LinksUpdate->doUpdate()
/www/mediawiki/core/includes/DataUpdate.php:102
PHP  12. wfRunHooks() /www/mediawiki/core/includes/LinksUpdate.php:123
PHP  13. Hooks::run() /www/mediawiki/core/includes/GlobalFunctions.php:3882
PHP  14. call_user_func_array() /www/mediawiki/core/includes/Hooks.php:199
PHP  15. CirrusSearchUpdater::linksUpdateCompletedHook()
/www/mediawiki/core/includes/Hooks.php:199
PHP  16. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:98
PHP  17. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  18. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  19. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  20. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  21. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  22. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  23. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  24. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  25. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  26. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  27. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  28. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  29. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  30. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  31. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  32. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  33. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  34. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  35. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  36. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  37. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  38. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  39. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  40. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  41. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  42. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  43. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  44. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  45. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  46. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  47. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  48. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  49. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  50. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  51. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  52. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  53. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  54. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  55. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  56. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  57. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  58. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  59. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  60. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  61. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  62. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  63. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  64. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  65. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  66. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  67. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  68. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  69. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  70. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  71. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  72. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  73. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  74. CirrusSearch->update()
/www/mediawiki/core/includes/search/SearchUpdate.php:117
PHP  75. CirrusSearchUpdater::updateFromTitleAndText()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:51
PHP  76. CirrusSearchUpdater::updateFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:60
PHP  77. SearchUpdate->doUpdate()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchUpdater.php:89
PHP  78. CirrusSearch->getTextFromContent()
/www/mediawiki/core/includes/search/SearchUpdate.php:111
PHP  79. CirrusSearchTextSanitizer::getSantizedTextFromTitle()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearch.body.php:72
PHP  80. Article->getParserOutput()
/www/mediawiki/core/extensions/CirrusSearch/CirrusSearchTextSanitizer.php:38
PHP  81. WikiPage->getParserOutput()
/www/mediawiki/core/includes/Article.php:1818
PHP  82. PoolCounterWork->execute()
/www/mediawiki/core/includes/WikiPage.php:1126
PHP  83. PoolWorkArticleView->doWork()
/www/mediawiki/core/includes/PoolCounter.php:222
PHP  84. WikitextContent->getParserOutput()
/www/mediawiki/core/includes/WikiPage.php:3514
PHP  85. Parser->parse()
/www/mediawiki/core/includes/content/WikitextContent.php:300
PHP  86. Parser->internalParse()
/www/mediawiki/core/includes/parser/Parser.php:388
PHP  87. Parser->replaceInternalLinks()
/www/mediawiki/core/includes/parser/Parser.php:1219
PHP  88. Parser->replaceInternalLinks2()
/www/mediawiki/core/includes/parser/Parser.php:1814
PHP  89. wfIsBadImage() /www/mediawiki/core/includes/parser/Parser.php:2060
PHP  90. RepoGroup->checkRedirect()
/www/mediawiki/core/includes/GlobalFunctions.php:3940
PHP  91. LocalRepo->checkRedirect()
/www/mediawiki/core/includes/filerepo/RepoGroup.php:211
PHP  92. LocalRepo->getArticleID()
/www/mediawiki/core/includes/filerepo/LocalRepo.php:178
PHP  93. DatabaseBase->selectField()
/www/mediawiki/core/includes/filerepo/LocalRepo.php:221
PHP  94. DatabaseBase->select()
/www/mediawiki/core/includes/db/Database.php:1161
PHP  95. DatabaseBase->selectSQLText()
/www/mediawiki/core/includes/db/Database.php:1445
PHP  96. DatabaseBase->tableNamesWithUseIndexOrJOIN()
/www/mediawiki/core/includes/db/Database.php:1486
PHP  97. DatabaseBase->tableNameWithAlias()
/www/mediawiki/core/includes/db/Database.php:2266
PHP  98. DatabaseBase->tableName()
/www/mediawiki/core/includes/db/Database.php:2163
PHP  99. DatabaseMysqlBase->isQuotedIdentifier()
/www/mediawiki/core/includes/db/Database.php:2054

-- 
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.
_______________________________________________
Wikibugs-l mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/wikibugs-l

Reply via email to