Page MenuHomePhabricator

Marking a page for translation fails due to Internal error, Fatal exception of type BannerExistenceException
Closed, ResolvedPublic

Description

This was first noticed on a Tech News page, but it can be reproduced on a simple test page containing only

<translate>test</translate>

(tested on https://meta.wikimedia.org/wiki/User:Guillaume_(WMF)/test )


Version: master
Severity: normal

Details

Reference
bz70178

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 3:36 AM
bzimport set Reference to bz70178.
bzimport added a subscriber: Unknown Object (MLST).

HTTP error 500. Page displays (here in my French locale, I don't think it is different in anotther language):

Erreur interne
[bd6bba3f] 2014-08-29 14:27:59: Fatal exception of type BannerExistenceException

when marking a page for translation. At first I thought I had some hanging banner notifications, and there was one on my home wiki (French Wikipedia), I ead the message there, but the bug is not solved.

It looks like this is related to a recent change in Flow to disply new types of notifications, and a plugin is not correctly initialized or the Transalte tool cannot process some related API event.

This blocks all pending translations, including urgent ones (like weekly Tech news, which may not be finalized correctly).
Hope this will be fixed before sunday morning, otherwise the Tech News won't be reliably translated before the deadline and will have to be delivered newt week.

Apparently fixed now on Meta.

https://meta.wikimedia.org/wiki/User:Guillaume_%28WMF%29/test seems to be working for me (now?).

Still might not hurt if somebody with shell access looked up the stacktrace for [bd6bba3f] on meta.

Guess this probably belongs in CentralNotice

2014-08-29 14:27:59 mw1065 metawiki: [bd6bba3f] /wiki/Special:PageTranslation Exception from line 408 of /usr/local/apache/common-local/php-1.24wmf18/extensions/CentralNotice/includes/Banner.php: No banner exists where tmp_name = B14_0829_enNL_amt_3. Could not load.
#0 /usr/local/apache/common-local/php-1.24wmf18/extensions/CentralNotice/includes/Banner.php(185): Banner->populateBasicData()
#1 /usr/local/apache/common-local/php-1.24wmf18/extensions/CentralNotice/includes/Banner.php(874): Banner->getName()
#2 /usr/local/apache/common-local/php-1.24wmf18/extensions/CentralNotice/includes/BannerMessageGroup.php(43): Banner->getMessageFieldsFromCache()
#3 /usr/local/apache/common-local/php-1.24wmf18/extensions/Translate/utils/MessageIndex.php(187): BannerMessageGroup->getKeys()
#4 /usr/local/apache/common-local/php-1.24wmf18/extensions/Translate/utils/MessageIndex.php(120): MessageIndex->checkAndAdd(Array, Object(BannerMessageGroup))
#5 /usr/local/apache/common-local/php-1.24wmf18/extensions/Translate/utils/MessageIndexRebuildJob.php(32): MessageIndex->rebuild()
#6 /usr/local/apache/common-local/php-1.24wmf18/extensions/Translate/tag/SpecialPageTranslation.php(774): MessageIndexRebuildJob->run()
#7 /usr/local/apache/common-local/php-1.24wmf18/extensions/Translate/tag/SpecialPageTranslation.php(158): SpecialPageTranslation->markForTranslation(Object(TranslatablePage), Array)
#8 /usr/local/apache/common-local/php-1.24wmf18/includes/specialpage/SpecialPage.php(363): SpecialPageTranslation->execute(NULL)
#9 /usr/local/apache/common-local/php-1.24wmf18/includes/specialpage/SpecialPageFactory.php(516): SpecialPage->run(NULL)
#10 /usr/local/apache/common-local/php-1.24wmf18/includes/MediaWiki.php(300): SpecialPageFactory::executePath(Object(Title), Object(RequestContext))
#11 /usr/local/apache/common-local/php-1.24wmf18/includes/MediaWiki.php(609): MediaWiki->performRequest()
#12 /usr/local/apache/common-local/php-1.24wmf18/includes/MediaWiki.php(460): MediaWiki->main()
#13 /usr/local/apache/common-local/php-1.24wmf18/index.php(46): MediaWiki->run()
#14 /usr/local/apache/common-local/w/index.php(3): require('/usr/local/apac...')
#15 {main}

@Nemo: the bug is not visible now.

This occured before for several hours, it was not temporary. Something has been fixed (at least with a temporary workaround or revert of a recent change, waiting for the cause of this fatal error to happen).

Anyway, it looks like a translation key for the interface of the Translate extension itself is not correctly mapped, or Translate extension uses a deprecated/unsupported API of the CentralNotice, and that extension still uses this old deleted or myterious key "B14_0829_enNL_amt_3" (deleted campaign which was still somewhere in caches? why did that affect only the translate tool and not the rest of the wiki? Does the Translate tool maintain its own local cache for notices and it was not purged, e.g. in its own local database?).

Could it be a bug in the forwarding of updates of notices to other wikis and databases and the Translate database was forgotten? Or a list of databases was incorrectly modified to remove Metawiki from the multingual wikis group ?

According to the settings of "B14_0829_enNL_amt_3"; this campaign was targetting anonymous users only for the fundraising, but I was actually logged in.

Is it possible that the Translate tool itself does not identify itself with the correct logon status of the user and impersonates to another one (e.g. to its own bot), and some internal code still performs requests (to the CentralNotices) with that user for which there's actually no active campaign?

In that case this is an incorrect assumption of the Translate extension which impersonates before the notices for the current users have been processed to be displayed at top of pages before building the rest of the page for preparing the answer to the request to mark a page. I have no idea of how the Translate extension an impersonate its own actions in the database to perform its own commits (or start a worker thread for its own bot)

atgo claimed this task.
atgo subscribed.

It looks like this has been resolved according to previous comments, so I'm closing. Please comment/reopen if you disagree