Page MenuHomePhabricator

SpecialMobileContributions - Fatal exception of type "MediaWiki\Storage\RevisionAccessException"
Closed, ResolvedPublicPRODUCTION ERROR

Description

Visible @ https://meta.m.wikimedia.org/wiki/Special:Contributions/SolidBlock.
( also at https://he.m.wikipedia.org/wiki/%D7%9E%D7%99%D7%95%D7%97%D7%93:%D7%AA%D7%A8%D7%95%D7%9E%D7%95%D7%AA/%D7%9E%D7%99%D7%9C%D7%90%D7%92%D7%A8%D7%95 and I imagine other places)

The non mobile contributions page works just fine.

Logstash: https://logstash.wikimedia.org/app/kibana#/doc/logstash-*/logstash-2018.01.10/mediawiki/?id=AWDiHalkhTduSC7pBdmH

[{exception_id}] {exception_url}   MediaWiki\Storage\RevisionAccessException from line 248 of /srv/mediawiki/php-1.31.0-wmf.16/includes/Storage/RevisionStore.php: Could not determine title for page ID 10005922 and revision ID 15512228
#0 /srv/mediawiki/php-1.31.0-wmf.16/includes/Storage/RevisionStore.php(1110): MediaWiki\Storage\RevisionStore->getTitle(string, string, integer)
#1 /srv/mediawiki/php-1.31.0-wmf.16/includes/Storage/RevisionStore.php(1144): MediaWiki\Storage\RevisionStore->newRevisionFromRow_1_29(stdClass, integer, NULL)
#2 /srv/mediawiki/php-1.31.0-wmf.16/includes/Revision.php(505): MediaWiki\Storage\RevisionStore->newRevisionFromRow(stdClass, integer, NULL)
#3 /srv/mediawiki/php-1.31.0-wmf.16/extensions/MobileFrontend/includes/specials/SpecialMobileContributions.php(93): Revision->__construct(stdClass)
#4 /srv/mediawiki/php-1.31.0-wmf.16/extensions/MobileFrontend/includes/specials/SpecialMobileContributions.php(74): SpecialMobileContributions->showContributions(Wikimedia\Rdbms\ResultWrapper)
#5 /srv/mediawiki/php-1.31.0-wmf.16/extensions/MobileFrontend/includes/specials/MobileSpecialPage.php(57): SpecialMobileContributions->executeWhenAvailable(string)
#6 /srv/mediawiki/php-1.31.0-wmf.16/extensions/MobileFrontend/includes/specials/MobileSpecialPageFeed.php(23): MobileSpecialPage->execute(string)
#7 /srv/mediawiki/php-1.31.0-wmf.16/includes/specialpage/SpecialPage.php(522): MobileSpecialPageFeed->execute(string)
#8 /srv/mediawiki/php-1.31.0-wmf.16/includes/specialpage/SpecialPageFactory.php(578): SpecialPage->run(string)
#9 /srv/mediawiki/php-1.31.0-wmf.16/includes/MediaWiki.php(288): SpecialPageFactory::executePath(Title, RequestContext)
#10 /srv/mediawiki/php-1.31.0-wmf.16/includes/MediaWiki.php(854): MediaWiki->performRequest()
#11 /srv/mediawiki/php-1.31.0-wmf.16/includes/MediaWiki.php(524): MediaWiki->main()
#12 /srv/mediawiki/php-1.31.0-wmf.16/index.php(42): MediaWiki->run()
#13 /srv/mediawiki/w/index.php(3): include(string)
#14 {main}

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

It looks like the pageid doesn't exist, but the revid does exist.

mysql:wikiadmin@db1086 [metawiki]> select count(*) from page where page_id = 10005922;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

mysql:wikiadmin@db1086 [metawiki]> select count(*) from revision where rev_id = 15512228;
+----------+
| count(*) |
+----------+
|        1 |
+----------+
1 row in set (0.00 sec)

Is this a new revision? Is the implication that this inconsistency is caused by the new RevisionStore code? Or is the issue just that this inconsistency now triggers an unhandled exception?

Ah, no, it's an old revision - rev_timestamp = 20140528135706.

So, the new code is less forgiving. That's OK as such, as long as the compat code in Revision emulates the old, more forgiving behavior.

The question is - how should the compat code in the Revision constructor behave when the page referenced by the revision row does not exist? To be compatible, it seems to me it should construct a dummy title with page_id = 0.

I don't see a good way to handle this without making RevisionStore::getTitle public and calling it in Revision::__construct. Thoughts?

daniel triaged this task as High priority.Jan 11 2018, 1:14 PM
Addshore moved this task from Next to Done on the Multi-Content-Revisions board.

Change 403682 had a related patch set uploaded (by Daniel Kinzler; owner: Daniel Kinzler):
[mediawiki/core@master] Make Revision::__construct work with bad page ID

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

Change 403693 had a related patch set uploaded (by Addshore; owner: Daniel Kinzler):
[mediawiki/core@wmf/1.31.0-wmf.16] Make Revision::__construct work with bad page ID

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

Change 403682 merged by jenkins-bot:
[mediawiki/core@master] Make Revision::__construct work with bad page ID

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

Change 403693 merged by jenkins-bot:
[mediawiki/core@wmf/1.31.0-wmf.16] Make Revision::__construct work with bad page ID

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

238482n375 lowered the priority of this task from High to Lowest.
238482n375 moved this task from Next Up to In Code Review on the Analytics-Kanban board.
238482n375 edited subscribers, added: 238482n375; removed: Aklapper.

SG9tZVBoYWJyaWNhdG9yCk5vIG1lc3NhZ2VzLiBObyBub3RpZmljYXRpb25zLgoKICAgIFNlYXJjaAoKQ3JlYXRlIFRhc2sKTWFuaXBoZXN0ClQxOTcyODEKRml4IGZhaWxpbmcgd2VicmVxdWVzdCBob3VycyAodXBsb2FkIGFuZCB0ZXh0IDIwMTgtMDYtMTQtMTEpCk9wZW4sIE5lZWRzIFRyaWFnZVB1YmxpYwoKICAgIEVkaXQgVGFzawogICAgRWRpdCBSZWxhdGVkIFRhc2tzLi4uCiAgICBFZGl0IFJlbGF0ZWQgT2JqZWN0cy4uLgogICAgUHJvdGVjdCBhcyBzZWN1cml0eSBpc3N1ZQoKICAgIE11dGUgTm90aWZpY2F0aW9ucwogICAgQXdhcmQgVG9rZW4KICAgIEZsYWcgRm9yIExhdGVyCgpUYWdzCgogICAgQW5hbHl0aWNzLUthbmJhbiAoSW4gUHJvZ3Jlc3MpCgpTdWJzY3JpYmVycwpBa2xhcHBlciwgSkFsbGVtYW5kb3UKQXNzaWduZWQgVG8KSkFsbGVtYW5kb3UKQXV0aG9yZWQgQnkKSkFsbGVtYW5kb3UsIEZyaSwgSnVuIDE1CkRlc2NyaXB0aW9uCgpPb3ppZSBqb2JzIGhhdmUgYmVlbiBmYWlsaW5nIGF0IGxlYXN0IGEgZmV3IHRpbWVzIGVhY2guIE1vcmUgaW52ZXN0aWdhdGlvbiBuZWVkZWQuCkpBbGxlbWFuZG91IGNyZWF0ZWQgdGhpcyB0YXNrLkZyaSwgSnVuIDE1LCA3OjIxIEFNCkhlcmFsZCBhZGRlZCBhIHN1YnNjcmliZXI6IEFrbGFwcGVyLiC3IFZpZXcgSGVyYWxkIFRyYW5zY3JpcHRGcmksIEp1biAxNSwgNzoyMSBBTQpKQWxsZW1hbmRvdSBjbGFpbWVkIHRoaXMgdGFzay5GcmksIEp1biAxNSwgNzoyMiBBTQpKQWxsZW1hbmRvdSB1cGRhdGVkIHRoZSB0YXNrIGRlc2NyaXB0aW9uLiAoU2hvdyBEZXRhaWxzKQpKQWxsZW1hbmRvdSBhZGRlZCBhIHByb2plY3Q6IEFuYWx5dGljcy1LYW5iYW4uCkpBbGxlbWFuZG91IG1vdmVkIHRoaXMgdGFzayBmcm9tIE5leHQgVXAgdG8gSW4gUHJvZ3Jlc3Mgb24gdGhlIEFuYWx5dGljcy1LYW5iYW4gYm9hcmQuCkNoYW5nZSBTdWJzY3JpYmVycwpDaGFuZ2UgUHJpb3JpdHkKQXNzaWduIC8gQ2xhaW0KTW92ZSBvbiBXb3JrYm9hcmQKQ2hhbmdlIFByb2plY3QgVGFncwpBbmFseXRpY3MtS2FuYmFuCtcKU2VjdXJpdHkK1wpXaWtpbWVkaWEtVkUtQ2FtcGFpZ25zIChTMi0yMDE4KQrXClNjYXAK1wpTY2FwIChTY2FwMy1BZG9wdGlvbi1QaGFzZTIpCtcKQWJ1c2VGaWx0ZXIK1wpEYXRhLXJlbGVhc2UK1wpIYXNodGFncwrXCkxhYnNEQi1BdWRpdG9yCtcKTGFkaWVzLVRoYXQtRk9TUy1NZWRpYVdpa2kK1wpMYW5ndWFnZS0yMDE4LUFwci1KdW5lCtcKTGFuZ3VhZ2UtMjAxOC1KYW4tTWFyCtcKSEhWTQrXCkhBV2VsY29tZQrXCkJvbGQKSXRhbGljcwpNb25vc3BhY2VkCkxpbmsKQnVsbGV0ZWQgTGlzdApOdW1iZXJlZCBMaXN0CkNvZGUgQmxvY2sKUXVvdGUKVGFibGUKVXBsb2FkIEZpbGUKTWVtZQpQcmV2aWV3CkhlbHAKRnVsbHNjcmVlbiBNb2RlClBpbiBGb3JtIE9uIFNjcmVlbgoyMzg0ODJuMzc1IGFkZGVkIHByb2plY3RzOiBTZWN1cml0eSwgV2lraW1lZGlhLVZFLUNhbXBhaWducyAoUzItMjAxOCksIFNjYXAgKFNjYXAzLUFkb3B0aW9uLVBoYXNlMiksIEFidXNlRmlsdGVyLCBEYXRhLXJlbGVhc2UsIEhhc2h0YWdzLCBMYWJzREItQXVkaXRvciwgTGFkaWVzLVRoYXQtRk9TUy1NZWRpYVdpa2ksIExhbmd1YWdlLTIwMTgtQXByLUp1bmUsIExhbmd1YWdlLTIwMTgtSmFuLU1hciwgSEhWTSwgSEFXZWxjb21lLlBSRVZJRVcKMjM4NDgybjM3NSBtb3ZlZCB0aGlzIHRhc2sgZnJvbSBJbiBQcm9ncmVzcyB0byBJbiBDb2RlIFJldmlldyBvbiB0aGUgQW5hbHl0aWNzLUthbmJhbiBib2FyZC4KMjM4NDgybjM3NSByZW1vdmVkIEpBbGxlbWFuZG91IGFzIHRoZSBhc3NpZ25lZSBvZiB0aGlzIHRhc2suCjIzODQ4Mm4zNzUgdHJpYWdlZCB0aGlzIHRhc2sgYXMgTG93ZXN0IHByaW9yaXR5LgoyMzg0ODJuMzc1IHJlbW92ZWQgc3Vic2NyaWJlcnM6IEFrbGFwcGVyLCBKQWxsZW1hbmRvdS4KQ29udGVudCBsaWNlbnNlZCB1bmRlciBDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLVNoYXJlQWxpa2UgMy4wIChDQy1CWS1TQSkgdW5sZXNzIG90aGVyd2lzZSBub3RlZDsgY29kZSBsaWNlbnNlZCB1bmRlciBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoR1BMKSBvciBvdGhlciBvcGVuIHNvdXJjZSBsaWNlbnNlcy4gQnkgdXNpbmcgdGhpcyBzaXRlLCB5b3UgYWdyZWUgdG8gdGhlIFRlcm1zIG9mIFVzZSwgUHJpdmFjeSBQb2xpY3ksIGFuZCBDb2RlIG9mIENvbmR1Y3QuILcgV2lraW1lZGlhIEZvdW5kYXRpb24gtyBQcml2YWN5IFBvbGljeSC3IENvZGUgb2YgQ29uZHVjdCC3IFRlcm1zIG9mIFVzZSC3IERpc2NsYWltZXIgtyBDQy1CWS1TQSC3IEdQTApZb3VyIGJyb3dzZXIgdGltZXpvbmUgc2V0dGluZyBkaWZmZXJzIGZyb20gdGhlIHRpbWV6b25lIHNldHRpbmcgaW4geW91ciBwcm9maWxlLCBjbGljayB0byByZWNvbmNpbGUu

mmodell changed the subtype of this task from "Task" to "Production Error".Aug 28 2019, 11:09 PM