Page MenuHomePhabricator

Fix handling of double-redirects in EntityView
Closed, ResolvedPublic

Description

Currently, if an Entity references an EntityId that refers to a double-redirect, the entire EntityView dies with an internal error:

[846e2773] /daniel/wikidata/index.php/Q100 Exception from line 84 of /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/sql/WikiPageEntityRevisionLookup.php: Unresolved redirect to Q100

Backtrace:

#0 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(147): Wikibase\Lib\Store\WikiPageEntityRevisionLookup->getEntityRevision(Wikibase\DataModel\Entity\ItemId, integer)
#1 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(127): Wikibase\Lib\Store\CachingEntityRevisionLookup->fetchEntityRevision(Wikibase\DataModel\Entity\ItemId, integer)
#2 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(147): Wikibase\Lib\Store\CachingEntityRevisionLookup->getEntityRevision(Wikibase\DataModel\Entity\ItemId, integer)
#3 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/CachingEntityRevisionLookup.php(127): Wikibase\Lib\Store\CachingEntityRevisionLookup->fetchEntityRevision(Wikibase\DataModel\Entity\ItemId, integer)
#4 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/RevisionBasedEntityLookup.php(41): Wikibase\Lib\Store\CachingEntityRevisionLookup->getEntityRevision(Wikibase\DataModel\Entity\ItemId)
#5 [internal function]: Wikibase\Lib\Store\RevisionBasedEntityLookup->getEntity(Wikibase\DataModel\Entity\ItemId)
#6 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/EntityRedirectResolvingDecorator.php(79): call_user_func_array(array, array)
#7 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/RedirectResolvingEntityLookup.php(50): Wikibase\Lib\Store\EntityRedirectResolvingDecorator->__call(string, array)
#8 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/store/RedirectResolvingEntityLookup.php(50): Wikibase\Lib\Store\EntityRedirectResolvingDecorator->getEntity(Wikibase\DataModel\Entity\ItemId)
#9 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/EntityIdLabelFormatter.php(126): Wikibase\Lib\Store\RedirectResolvingEntityLookup->getEntity(Wikibase\DataModel\Entity\ItemId)
#10 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/EntityIdHtmlLinkFormatter.php(61): Wikibase\Lib\EntityIdLabelFormatter->lookupEntityLabel(Wikibase\DataModel\Entity\ItemId)
#11 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/EntityIdFormatter.php(38): Wikibase\Lib\EntityIdHtmlLinkFormatter->formatEntityId(Wikibase\DataModel\Entity\ItemId)
#12 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/DispatchingValueFormatter.php(73): Wikibase\Lib\EntityIdFormatter->format(Wikibase\DataModel\Entity\EntityIdValue)
#13 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php(290): Wikibase\Lib\DispatchingValueFormatter->formatValue(Wikibase\DataModel\Entity\EntityIdValue, string)
#14 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/PropertyValueSnakFormatter.php(160): Wikibase\Lib\PropertyValueSnakFormatter->formatValue(Wikibase\DataModel\Entity\EntityIdValue, string)
#15 /var/www/daniel/wikidata/extensions/Wikibase/lib/includes/formatters/DispatchingSnakFormatter.php(77): Wikibase\Lib\PropertyValueSnakFormatter->formatSnak(Wikibase\DataModel\Snak\PropertyValueSnak)
#16 /var/www/daniel/wikidata/extensions/Wikibase/repo/includes/View/SnakHtmlGenerator.php(124): Wikibase\Lib\DispatchingSnakFormatter->formatSnak(Wikibase\DataModel\Snak\PropertyValueSnak)
#17 /var/www/daniel/wikidata/extensions/Wikibase/repo/includes/View/SnakHtmlGenerator.php(63): Wikibase\Repo\View\SnakHtmlGenerator->getFormattedSnakValue(Wikibase\DataModel\Snak\PropertyValueSnak)


Version: unspecified
Severity: critical
Whiteboard: u=dev c=backend p=2 s=2014-07-29

Details

Reference
bz68852

Related Objects

Event Timeline

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

Change 150563 had a related patch set uploaded by Daniel Kinzler:
EntityIdLabelFormatter ignores StorageExceptions.

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

Change 150563 merged by jenkins-bot:
EntityIdLabelFormatter ignores StorageExceptions.

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