Last modified: 2013-04-22 16:15:48 UTC
[26-Mar-2013 19:29:47] Fatal error: Call to a member function getFullText() on a non-object at /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/pagers/ArticleTable.php on line 305 Server: mw1168 Method: GET URL: http://en.wikipedia.org/wiki/Education_Program:Marquette_University/Neurobiology_(Spring_2013) Backtrace: #0 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/pagers/ArticleTable.php(305): EducationProgram\ArticleTable::getArticleCell() #1 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/pagers/ArticleTable.php(189): EducationProgram\ArticleTable->getArticleCell(Object(EducationProgram\EPArticle), 1) #2 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/pagers/ArticleTable.php(150): EducationProgram\ArticleTable->addNonStudentHTML('<tr class="ep-a...', Array, false) #3 /usr/local/apache/common-local/php-1.21wmf12/includes/Pager.php(421): EducationProgram\ArticleTable->formatRow(Object(stdClass)) #4 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/pagers/ArticleTable.php(91): IndexPager->getBody() #5 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/actions/ViewCourseAction.php(139): EducationProgram\ArticleTable->getBody() #6 [internal function]: EducationProgram\ViewCourseAction->getPageHTML(Object(EducationProgram\Course)) #7 /usr/local/apache/common-local/php-1.21wmf12/includes/CacheHelper.php(303): call_user_func_array(Array, Array) #8 /usr/local/apache/common-local/php-1.21wmf12/includes/actions/CachedAction.php(136): CacheHelper->getCachedValue(Array, Object(EducationProgram\Course), NULL) #9 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/actions/ViewAction.php(125): CachedAction->addCachedHTML(Array, Object(EducationProgram\Course)) #10 /usr/local/apache/common-local/php-1.21wmf12/extensions/EducationProgram/includes/actions/ViewCourseAction.php(105): EducationProgram\ViewAction->onView() #11 /usr/local/apache/common-local/php-1.21wmf12/includes/Action.php(542): EducationProgram\ViewCourseAction->onView() #12 /usr/local/apache/common-local/php-1.21wmf12/includes/Wiki.php(439): FormlessAction->show() #13 /usr/local/apache/common-local/php-1.21wmf12/includes/Wiki.php(305): MediaWiki->performAction(Object(EducationProgram\CoursePage), Object(Title)) #14 /usr/local/apache/common-local/php-1.21wmf12/includes/Wiki.php(565): MediaWiki->performRequest() #15 /usr/local/apache/common-local/php-1.21wmf12/includes/Wiki.php(458): MediaWiki->main() #16 /usr/local/apache/common-local/php-1.21wmf12/index.php(59): MediaWiki->run() #17 /usr/local/apache/common-local/live-1.5/index.php(3): require('/usr/local/apac...') #18 {main}
Odd... that's the course page that's broken out of about 10 that I spot checked.
Looks like this code is not handling deleted pages well. Will fix now.
Step 1: https://gerrit.wikimedia.org/r/#/c/56187/
Doing a proper refactor + tests in https://gerrit.wikimedia.org/r/#/c/56203/ Exactly how critical is this?
Sage, there is this special page not linked from anywhere that allows you to browse through all articles that have students working on them. It is at Special:Articles. Given that the headers are messed up on enwiki and I have not heard anything about this, I suspect it is not being used. Can I throw it out for now? (That will make this cleanup easier.)
Assuming its fine for me to kill Special:Articles I'm done with my changes, apart from doing manual tests of the things I did not add unit test coverage for.
It would be nice to get Special:Articles back at some point, but that's not critical in the short term. A fix for this that disables Special:Articles is fine for now.
Ok, done now with https://gerrit.wikimedia.org/r/#/c/56203/ and it looks like it does fix the issue described in this bug.
Causes fatals in production: https://en.wikipedia.org/wiki/Education_Program:Pepperdine_University/Personality_(PSYC_321)_(Spring_2013)
Related URL: https://gerrit.wikimedia.org/r/59113 (Gerrit Change I86e8664e357edd47fb0d74f284d3fc3a80ba6108)
As a (horribly hacky) temporary workaround, we could also set the article_page_id for the following rows (in ep_articles) to null: "article_id","article_page_title","article_page_id" 439,"Electromyoneurography",24107758 442,"Electromyoneurography",24107758 445,"Aicardi–Goutières syndrome",16332401 446,"Aicardi–Goutières syndrome",16332401 448,"Alternating hemiplegia",99177 670,"Roy Baumeister: Self-Esteem",39079953 Query that selects these: SELECT article_page_title, article_page_id FROM ep_articles LEFT JOIN page ON page_id = article_page_id WHERE article_page_id != 0 AND page_id IS NULL;
(In reply to comment #12) > As a (horribly hacky) temporary workaround, we could also set the > article_page_id for the following rows (in ep_articles) to null: I did that, to buy a little time for one of the changes above to get reviewed and merged. The articles still refer to the article by article_page_title. I just set article_page_id to '0' (not null, as I said above). This stops the fatal. I changed only these six rows (439, 442, 445, 446, 448, 670).
(repeating myself from a comment on Ori's commit) Some kind of atomic fix is critical, because starting now (and for about the next 4 weeks) is the busiest part of the academic term for Wikipedia assignments, and we're likely to see more student articles getting deleted and breaking course pages. Jeroen, could you pick a good immediate fix and push it forward?
I merged the fix myself; sigh
https://gerrit.wikimedia.org/r/59113 (Gerrit Change I86e8664e357edd47fb0d74f284d3fc3a80ba6108) | change ABANDONED [by Jeroen De Dauw]
Related URL: https://gerrit.wikimedia.org/r/59831 (Gerrit Change Ic7fbca8c66f3615da97814025bc6e90e7c4c8fa1)
Related URL: https://gerrit.wikimedia.org/r/60279 (Gerrit Change Idd634fc7912cda5841b19c1885823d748b878338)