1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-29 02:02:41 +01:00

After loading the effective Viewer during a VCS request, flag them for inline cache generation

Summary:
Ref T13590. User objects have some inline caches that don't do readthrough generation by default because it may be indicative of high-impact performance problems in code.

During a VCS request, these caches are normally unnecessary, but they may be hit on some unusual pathways (like error handling).

Flag VCS users as okay for inline generation. This does not indicate a performance problem and access to these caches is very rare, at least today.

Test Plan:
  - Executed a Git HTTP request which hit an unhandled exception (stuck write lock).
    - Before: got a second-level exception while handling the first exception, when trying to access user preferences to render a standard uncaught exception page.
    - After: no second-level exception.

Maniphest Tasks: T13590

Differential Revision: https://secure.phabricator.com/D21524
This commit is contained in:
epriestley 2021-01-26 15:39:22 -08:00
parent 3a74701555
commit 32c82a53de

View file

@ -214,6 +214,11 @@ final class DiffusionServeController extends DiffusionController {
$viewer = new PhabricatorUser(); $viewer = new PhabricatorUser();
} }
// See T13590. Some pathways, like error handling, may require unusual
// access to things like timezone information. These are fine to build
// inline; this pathway is not lightweight anyway.
$viewer->setAllowInlineCacheGeneration(true);
$this->setServiceViewer($viewer); $this->setServiceViewer($viewer);
$allow_public = PhabricatorEnv::getEnvConfig('policy.allow-public'); $allow_public = PhabricatorEnv::getEnvConfig('policy.allow-public');