Page MenuHomePhabricator

TranslateUtils.php: Call to a member function getContent() on null
Closed, ResolvedPublicPRODUCTION ERROR

Description

This happened when marking a message as rename. Will need to review why this happens and a fix.

Details

Request ID
5c90fb546cd56a71d47b08bc
Stack Trace
#0 /srv/mediawiki/tags/2019-11-14_16:36:48/extensions/Translate/api/ApiManageMessageGroups.php(147): TranslateUtils::getContentForTitle(Object(Title), true)
#1 /srv/mediawiki/tags/2019-11-14_16:36:48/extensions/Translate/api/ApiManageMessageGroups.php(66): ApiManageMessageGroups->handleRename(Object(FileBasedMessageGroup), Object(MediaWiki\\Extensions\\Translate\\MessageSync\\MessageSourceChange), 'wikipedia-libra...', 'wikipedia-libra...', 'en')
#2 /srv/mediawiki/tags/2019-11-14_16:36:48/includes/api/ApiMain.php(1603): ApiManageMessageGroups->execute()
#3 /srv/mediawiki/tags/2019-11-14_16:36:48/includes/api/ApiMain.php(539): ApiMain->executeAction()
#4 /srv/mediawiki/tags/2019-11-14_16:36:48/includes/api/ApiMain.php(510): ApiMain->executeActionWithErrorHandling()
#5 /srv/mediawiki/tags/2019-11-14_16:36:48/api.php(83): ApiMain->execute()
#6 {main}
","exception_id":"5c90fb546cd56a71d47b08bc","exception_url":"/w/api.php","caught_by":"mwe_handler"} []

Event Timeline

This happened again today while matching renames for Dissemin website

Sample request payloads where this is happening,

action=managemessagegroups&format=json&groupId=dissemin-website&
renameMessageKey=27daef-Or_enter_an_URL%3A&          <<
messageKey=ba70cc-Or_enter_a_URL%3A                  <<
&operation=rename&changesetModified=1576154136&assert=user&formatversion=2&changesetName=unattended
action=managemessagegroups&format=json&groupId=dissemin-website&
renameMessageKey=bf372d-No_publisher_found%2E&     <<
messageKey=88258e-No_publishers_found&             <<
operation=rename&changesetModified=1576155059&assert=user&formatversion=2&changesetName=unattended
action=managemessagegroups&format=json&groupId=dissemin-website&
renameMessageKey=3cf64c-Fix_any_of_our_listed_%3D3Ca_href%3D3D&
messageKey=252960-Fix_any_of_our_listed_%3D3Ca_href%3D3D&
operation=rename&changesetModified=1576155678&assert=user&formatversion=2&changesetName=unattended
action=managemessagegroups&format=json&groupId=dissemin-website&
renameMessageKey=399166-Contribute_to_%3D3Ca_href%3D3D%22https%3A%2F&messageKey=673078-Contribute_to_%3D3Ca_href%3D3D%22https%3A%2F&
operation=rename&changesetModified=1576156470&assert=user&formatversion=2&changesetName=unattended

Rename key: 399166-Contribute to =3Ca href=3D"https://en
Message key: 673078-Contribute to =3Ca href=3D"https://en

action=managemessagegroups&format=json&groupId=dissemin-website&renameMessageKey=3cf64c-Fix_any_of_our_listed_%3D3Ca_href%3D3D&
messageKey=252960-Fix_any_of_our_listed_%3D3Ca_href%3D3D&
operation=rename&changesetModified=1576156470&assert=user&formatversion=2&changesetName=unattended

Rename key: 3cf64c-Fix any of our listed =3Ca href=3D/en
Message key: 252960-Fix any of our listed =3Ca href=3D/en

action=managemessagegroups&format=json&groupId=dissemin-website&renameMessageKey=7565f0-%3D3Cspan_class%3D3D%22paperDocType%22%3D3E%3D25(d&
messageKey=ece3c1-%3D25(doctype)s_published_in_%3D25(yea&
operation=rename&changesetModified=1576157380&assert=user&formatversion=2&changesetName=unattended

Rename key: 7565f0-=3Cspan class=3D"paperDocType"=3E=25(d/en
Message key: ece3c1-=25(doctype)s published in =25(yea/en


One of my possible suspicions is with respect to titles that have punctuation in them, they are stored in DB differently, but the request from the UI is different.

Change 571002 had a related patch set uploaded (by Abijeet Patro; owner: Abijeet Patro):
[mediawiki/extensions/Translate@master] Add error handler and logging for ApiManageMessageGroups::execute

https://gerrit.wikimedia.org/r/571002

abi_ triaged this task as Medium priority.
abi_ moved this task from Backlog to group management on the MediaWiki-extensions-Translate board.

Change 571002 merged by jenkins-bot:
[mediawiki/extensions/Translate@master] Handle error thrown when fetching content for unavailable message

https://gerrit.wikimedia.org/r/571002

Since there is no accurate way to reproduce this, we'll have to keep this open for sometime and observe the behavior when renames are present in incoming messages.

Since this was fixed, we've done a few renames, and did not encounter this issue. Marking this as resolved.