mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-23 07:12:41 +01:00
When building a config stack, stop SiteSource objects from poisoning the cache
Summary: Ref T13168. I'm not sure how this worked before, but I ran into this issue on my new laptop. SiteSource accesses `PhabrictatorEnv::getEnvConfig('phabricator.base-uri')` when local, which may poison the cache and lock the value since we don't later discard the cache. Specifically, when I access `http://locala.phacility.com`, I was getting an error like "You made a request for locala.phacility.com, but no configured site can serve this request.". This was because the base-uri was being incorrectly frozen as "local.phacility.com". The expectation is that it will match, so the standard PlatformSite will serve the request. Test Plan: - Before change: "no configured site" error. - After change: local instance works properly. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T13168 Differential Revision: https://secure.phabricator.com/D19526
This commit is contained in:
parent
eb80a5ede1
commit
96a8b89fa8
1 changed files with 8 additions and 0 deletions
8
src/infrastructure/env/PhabricatorEnv.php
vendored
8
src/infrastructure/env/PhabricatorEnv.php
vendored
|
@ -221,6 +221,10 @@ final class PhabricatorEnv extends Phobject {
|
||||||
|
|
||||||
foreach ($site_sources as $site_source) {
|
foreach ($site_sources as $site_source) {
|
||||||
$stack->pushSource($site_source);
|
$stack->pushSource($site_source);
|
||||||
|
|
||||||
|
// If the site source did anything which reads config, throw it away
|
||||||
|
// to make sure any additional site sources get clean reads.
|
||||||
|
self::dropConfigCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
$masters = PhabricatorDatabaseRef::getMasterDatabaseRefs();
|
$masters = PhabricatorDatabaseRef::getMasterDatabaseRefs();
|
||||||
|
@ -259,6 +263,10 @@ final class PhabricatorEnv extends Phobject {
|
||||||
throw $ex;
|
throw $ex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Drop the config cache one final time to make sure we're getting clean
|
||||||
|
// reads now that we've finished building the stack.
|
||||||
|
self::dropConfigCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function repairConfig($key, $value) {
|
public static function repairConfig($key, $value) {
|
||||||
|
|
Loading…
Reference in a new issue