Last modified: 2013-04-22 16:15:48 UTC

Wikimedia Bugzilla is closed!

Wikimedia has migrated from Bugzilla to Phabricator. Bug reports should be created and updated in Wikimedia Phabricator instead. Please create an account in Phabricator and add your Bugzilla email address to it.
Wikimedia Bugzilla is read-only. If you try to edit or create any bug report in Bugzilla you will be shown an intentional error message.
In order to access the Phabricator task corresponding to a Bugzilla report, just remove "static-" from its URL.
You could still run searches in Bugzilla or access your list of votes but bug reports will obviously not be up-to-date in Bugzilla.
Bug 46577 - [Regression] Fatal error: Call to a member function getFullText() on a non-object in EducationProgram/includes/pagers/ArticleTable.php
[Regression] Fatal error: Call to a member function getFullText() on a non-ob...
Product: MediaWiki extensions
Classification: Unclassified
EducationProgram (Other open bugs)
All All
: Immediate critical (vote)
: ---
Assigned To: Jeroen De Dauw
: code-update-regression
Depends on:
Blocks: code_quality
  Show dependency treegraph
Reported: 2013-03-26 19:35 UTC by Sam Reed (reedy)
Modified: 2013-04-22 16:15 UTC (History)
4 users (show)

See Also:
Web browser: ---
Mobile Platform: ---
Assignee Huggle Beta Tester: ---


Description Sam Reed (reedy) 2013-03-26 19:35:03 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
#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}
Comment 1 Sage Ross 2013-03-26 19:57:10 UTC
Odd... that's the course page that's broken out of about 10 that I spot checked.
Comment 2 Jeroen De Dauw 2013-03-27 17:59:47 UTC
Looks like this code is not handling deleted pages well. Will fix now.
Comment 3 Jeroen De Dauw 2013-03-27 18:26:35 UTC
Step 1:
Comment 4 Jeroen De Dauw 2013-03-28 15:37:17 UTC
Doing a proper refactor + tests in

Exactly how critical is this?
Comment 5 Jeroen De Dauw 2013-03-29 02:25:02 UTC
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.)
Comment 6 Jeroen De Dauw 2013-03-29 03:28:25 UTC
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.
Comment 7 Sage Ross 2013-03-29 15:00:01 UTC
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.
Comment 8 Jeroen De Dauw 2013-03-30 23:59:57 UTC
Ok, done now with and it looks like it does fix the issue described in this bug.
Comment 10 Gerrit Notification Bot 2013-04-15 07:29:30 UTC
Related URL: (Gerrit Change I86e8664e357edd47fb0d74f284d3fc3a80ba6108)
Comment 11 Gerrit Notification Bot 2013-04-15 07:29:33 UTC
Related URL: (Gerrit Change I86e8664e357edd47fb0d74f284d3fc3a80ba6108)
Comment 12 Ori Livneh 2013-04-15 07:34:15 UTC
As a (horribly hacky) temporary workaround, we could also set the article_page_id for the following rows (in ep_articles) to null:

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;
Comment 13 Ori Livneh 2013-04-15 08:59:18 UTC
(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).
Comment 14 Sage Ross 2013-04-15 18:11:37 UTC
(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?
Comment 15 Jeroen De Dauw 2013-04-15 19:07:54 UTC
I merged the fix myself; sigh
Comment 16 Gerrit Notification Bot 2013-04-15 19:35:28 UTC (Gerrit Change I86e8664e357edd47fb0d74f284d3fc3a80ba6108) | change ABANDONED [by Jeroen De Dauw]
Comment 17 Gerrit Notification Bot 2013-04-18 14:25:31 UTC
Related URL: (Gerrit Change Ic7fbca8c66f3615da97814025bc6e90e7c4c8fa1)
Comment 18 Gerrit Notification Bot 2013-04-22 14:43:04 UTC
Related URL: (Gerrit Change Idd634fc7912cda5841b19c1885823d748b878338)

Note You need to log in before you can comment on or make changes to this bug.