1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-09 16:32:39 +01:00

Disconnect rate limits in the PhabricatorStartup shutdown handler

This makes counts more accurate, particularly for connection limits.
This commit is contained in:
epriestley 2017-10-14 07:14:31 -07:00
parent c5e8de9450
commit 0e645b8f11

View file

@ -150,6 +150,11 @@ final class PhabricatorStartup {
* @task hook
*/
public static function didShutdown() {
// Disconnect any active rate limits before we shut down. If we don't do
// this, requests which exit early will lock a slot in any active
// connection limits, and won't count for rate limits.
self::disconnectRateLimits(array());
$event = error_get_last();
if (!$event) {
@ -730,6 +735,10 @@ final class PhabricatorStartup {
public static function disconnectRateLimits(array $request_state) {
$limits = self::$limits;
// Remove all limits before disconnecting them so this works properly if
// it runs twice. (We run this automatically as a shutdown handler.)
self::$limits = array();
foreach ($limits as $limit) {
$limit->didDisconnect($request_state);
}