Page MenuHomePhabricator

Can't add or edit translations in SecurePoll
Closed, ResolvedPublicPRODUCTION ERROR

Description

Editing translations for SecurePoll elections results in an error. Tested on both testwiki and votewiki.

Stack trace from testwiki:

[e40ac990-ba8a-40a3-a405-52972577f1a1] /w/index.php?title=Special:SecurePoll/translate/767/fr&action=submit TypeError: Argument 2 passed to MediaWiki\Storage\PageUpdaterFactory::newPageUpdaterForDerivedPageDataUpdater() must implement interface MediaWiki\User\UserIdentity, null given, called in /srv/mediawiki/php-1.37.0-wmf.16/includes/page/WikiPage.php on line 1813
Backtrace:
from /srv/mediawiki/php-1.37.0-wmf.16/includes/Storage/PageUpdaterFactory.php(215)
#0 /srv/mediawiki/php-1.37.0-wmf.16/includes/page/WikiPage.php(1813): MediaWiki\Storage\PageUpdaterFactory->newPageUpdaterForDerivedPageDataUpdater(WikiPage, NULL, MediaWiki\Storage\DerivedPageDataUpdater)
#1 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php(334): WikiPage->newPageUpdater(NULL)
#2 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php(147): MediaWiki\Extensions\SecurePoll\Pages\TranslatePage->doSubmit(string)
#3 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/SpecialSecurePoll.php(70): MediaWiki\Extensions\SecurePoll\Pages\TranslatePage->execute(array)
#4 /srv/mediawiki/php-1.37.0-wmf.16/includes/specialpage/SpecialPage.php(646): MediaWiki\Extensions\SecurePoll\SpecialSecurePoll->execute(string)
#5 /srv/mediawiki/php-1.37.0-wmf.16/includes/specialpage/SpecialPageFactory.php(1365): SpecialPage->run(string)
#6 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(314): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#7 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(925): MediaWiki->performRequest()
#8 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(559): MediaWiki->main()
#9 /srv/mediawiki/php-1.37.0-wmf.16/index.php(53): MediaWiki->run()
#10 /srv/mediawiki/php-1.37.0-wmf.16/index.php(46): wfIndexMain()
#11 /srv/mediawiki/w/index.php(3): require(string)
#12 {main}

Event Timeline

Niharika created this task.

Based on

#1 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php(334): WikiPage->newPageUpdater(NULL)

and that line being

$updater = $page->newPageUpdater( $this->user );

Something looks to be going wrong (or not happening) in assigning the User...

It was seemingly broken by rESPOf058bbe1feb6: Replace WikiPage methods with current methods for T275792: Replace calls to deprecated WikiPage methods in TranslatePage.

$this->specialPage->getUser() was replaced by $this->user

Unless it's done in some weird dynamic way, $this->user is never assigned to

Change 709113 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/SecurePoll@master] Pass an actual user instance to $page->newPageUpdater()

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

Change 708995 had a related patch set uploaded (by Reedy; author: Reedy):

[mediawiki/extensions/SecurePoll@wmf/1.37.0-wmf.16] Pass an actual user instance to $page->newPageUpdater()

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

Change 708995 merged by jenkins-bot:

[mediawiki/extensions/SecurePoll@wmf/1.37.0-wmf.16] Pass an actual user instance to $page->newPageUpdater()

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

Mentioned in SAL (#wikimedia-operations) [2021-07-31T12:40:00Z] <reedy@deploy1002> Synchronized php-1.37.0-wmf.16/extensions/SecurePoll/: T287780 T287782 (duration: 00m 58s)

Change 709113 merged by jenkins-bot:

[mediawiki/extensions/SecurePoll@master] Pass an actual user instance to $page->newPageUpdater()

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

@Reedy Trying to submit a translation on testwiki, error:

[8fbb6604-7aca-43ee-bf6a-0ed067cb9c08] /w/index.php?title=Special:SecurePoll/translate/821/fr&action=submit TypeError: Argument 1 passed to MediaWiki\Storage\PageUpdater::saveRevision() must be an instance of CommentStoreComment, instance of MediaWiki\Extensions\SecurePoll\SecurePollContent given, called in /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php on line 336

Backtrace:

from /srv/mediawiki/php-1.37.0-wmf.16/includes/Storage/PageUpdater.php(713)
#0 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php(336): MediaWiki\Storage\PageUpdater->saveRevision(MediaWiki\Extensions\SecurePoll\SecurePollContent, string)
#1 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/Pages/TranslatePage.php(148): MediaWiki\Extensions\SecurePoll\Pages\TranslatePage->doSubmit(string)
#2 /srv/mediawiki/php-1.37.0-wmf.16/extensions/SecurePoll/includes/SpecialSecurePoll.php(70): MediaWiki\Extensions\SecurePoll\Pages\TranslatePage->execute(array)
#3 /srv/mediawiki/php-1.37.0-wmf.16/includes/specialpage/SpecialPage.php(646): MediaWiki\Extensions\SecurePoll\SpecialSecurePoll->execute(string)
#4 /srv/mediawiki/php-1.37.0-wmf.16/includes/specialpage/SpecialPageFactory.php(1365): SpecialPage->run(string)
#5 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(314): MediaWiki\SpecialPage\SpecialPageFactory->executePath(string, RequestContext)
#6 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(925): MediaWiki->performRequest()
#7 /srv/mediawiki/php-1.37.0-wmf.16/includes/MediaWiki.php(559): MediaWiki->main()
#8 /srv/mediawiki/php-1.37.0-wmf.16/index.php(53): MediaWiki->run()
#9 /srv/mediawiki/php-1.37.0-wmf.16/index.php(46): wfIndexMain()
#10 /srv/mediawiki/w/index.php(3): require(string)
#11 {main}

Change 709248 had a related patch set uploaded (by Zabe; author: Zabe):

[mediawiki/extensions/SecurePoll@master] Fix Call to PageUpdater::saveRevision()

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

Zabe changed the subtype of this task from "Task" to "Production Error".Aug 2 2021, 10:36 AM

Change 709278 had a related patch set uploaded (by Reedy; author: Zabe):

[mediawiki/extensions/SecurePoll@wmf/1.37.0-wmf.16] Fix call to PageUpdater::saveRevision()

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

Change 709248 merged by jenkins-bot:

[mediawiki/extensions/SecurePoll@master] Fix call to PageUpdater::saveRevision()

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

Change 709278 merged by jenkins-bot:

[mediawiki/extensions/SecurePoll@wmf/1.37.0-wmf.16] Fix call to PageUpdater::saveRevision()

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

Mentioned in SAL (#wikimedia-operations) [2021-08-02T11:40:27Z] <reedy@deploy1002> Synchronized php-1.37.0-wmf.16/extensions/SecurePoll/: T287782 (duration: 00m 56s)

@dom_walden Want to try again please? :)

Thank you. I have tested saving a few translations on votewiki and testwiki. So far so good.

I have only been able to test on "local" elections (i.e. elections created with "This wiki" selected), but I don't think that should make a difference.

Reedy removed Reedy as the assignee of this task.Aug 2 2021, 1:35 PM

Shouldn't do... But if you find that's broken, feel free to reopen

Reedy claimed this task.