Page MenuHomePhabricator

Fix an issue where RepositoryQuery may fail for viewers who can't use Diffusion
ClosedPublic

Authored by epriestley on Apr 2 2015, 4:57 PM.
Tags
None
Referenced Files
F15456300: D12264.id29451.diff
Sun, Mar 30, 8:30 AM
F15456020: D12264.id.diff
Sun, Mar 30, 6:27 AM
F15424240: D12264.id29454.diff
Sat, Mar 22, 9:04 PM
F15388466: D12264.id.diff
Sat, Mar 15, 3:52 AM
F15382293: D12264.diff
Fri, Mar 14, 11:46 AM
Unknown Object (File)
Mar 3 2025, 2:25 AM
Unknown Object (File)
Feb 9 2025, 6:15 PM
Unknown Object (File)
Feb 3 2025, 12:34 AM
Subscribers

Details

Summary

See IRC. We don't always reach loadPage(), particularly if canViewerUseQueryApplication() fails.

Perform initialization steps in willExecute() instead.

Trace from IRC:

2015/04/02 11:48:32 [error] 26979#0: *48012 FastCGI sent in stderr: "PHP message: [2015-04-02 11:48:32] EXCEPTION: (Exception) You must execute() the query before accessing the identifier map. at [<phabricator>/src/applications/repository/query/PhabricatorRepositoryQuery.php:134]
PHP message:   #0 PhabricatorRepositoryQuery::getIdentifierMap() called at [<phabricator>/src/applications/diffusion/remarkup/DiffusionRepositoryRemarkupRule.php:26]
PHP message:   #1 DiffusionRepositoryRemarkupRule::loadObjects(array) called at [<phabricator>/src/infrastructure/markup/rule/PhabricatorObjectRemarkupRule.php:309]
PHP message:   #2 PhabricatorObjectRemarkupRule::didMarkupText() called at [<phutil>/src/markup/engine/PhutilRemarkupEngine.php:292]
PHP message:   #3 PhutilRemarkupEngine::postprocessText(array) called at [<phabricator>/src/infrastructure/markup/PhabricatorMarkupEngine.php:138]
PHP message:   #4 PhabricatorMarkupEngine::process() called at [<phabricator>/src/infrastructure/markup/PhabricatorMarkupEngine.php:71]
PHP message:   #5 PhabricatorMarkupEngine::renderOneObject(PhabricatorMarkupOneOff, string, PhabricatorUser) called at [<phabricator>/src/infrastructure/customfield/standard/PhabricatorStandardCustomFieldRemarkup.php:47]
PHP message:   #6 PhabricatorStandardCustomFieldRemarkup::renderPropertyViewValue(array) called at [<phabricator>/src/infrastructure/customfield/field/PhabricatorCustomField.php:1191]
PHP message:   #7 PhabricatorCustomField::renderPropertyViewValue(array) called at [<phabricator>/src/infrastructure/customfield/field/PhabricatorCustomFieldList.php:176]
PHP message:   #8 PhabricatorCustomFieldList::appendFieldsToPropertyList(PhabricatorProject, PhabricatorUser, PHUIPropertyListView) called at [<phabricator>/src/applications/project/controller/PhabricatorProjectProfileController.php:220]
PHP message:   #9 PhabricatorProjectProfileController::buildPropertyListView(PhabricatorProject, PhabricatorActionListView) called at [<phabricator>/src/applications/project/controller/PhabricatorProjectPr
Test Plan
  • Used rX in remarkup.
  • Used rX in search.
  • Browed Diffusion, etc.

Diff Detail

Repository
rP Phabricator
Branch
willexec
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 5104
Build 5122: [Placeholder Plan] Wait for 30 Seconds

Event Timeline

epriestley retitled this revision from to Fix an issue where RepositoryQuery may fail for viewers who can't use Diffusion.
epriestley updated this object.
epriestley edited the test plan for this revision. (Show Details)
epriestley added a reviewer: btrahan.
btrahan edited edge metadata.
This revision is now accepted and ready to land.Apr 2 2015, 8:08 PM
This revision was automatically updated to reflect the committed changes.