@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Use "@" to silence "GC list" warnings from "apc_store()" and "apcu_store()"

Summary:
Fixes T13525. Since D21044, the intermittent GC list warnings are treated more severely and can become user-visible errors.

Silence them, since this seems to be the only realistic response in most versions of APC/APCu.

Test Plan: Will deploy.

Maniphest Tasks: T13525

Differential Revision: https://secure.phabricator.com/D21179

+11 -8
+5 -2
src/infrastructure/cache/PhutilAPCKeyValueCache.php
··· 47 47 // NOTE: Although modern APC supports passing an array to `apc_store()`, 48 48 // it is not supported by older version of APC or by HPHP. 49 49 50 + // See T13525 for discussion of use of "@" to silence this warning: 51 + // > GC cache entry "<some-key-name>" was on gc-list for <X> seconds 52 + 50 53 foreach ($keys as $key => $value) { 51 54 if ($is_apcu) { 52 - apcu_store($key, $value, $ttl); 55 + @apcu_store($key, $value, $ttl); 53 56 } else { 54 - apc_store($key, $value, $ttl); 57 + @apc_store($key, $value, $ttl); 55 58 } 56 59 } 57 60
+6 -6
support/startup/PhabricatorClientLimit.php
··· 216 216 $bucket[$client_key] += $score; 217 217 218 218 if ($is_apcu) { 219 - apcu_store($bucket_key, $bucket); 219 + @apcu_store($bucket_key, $bucket); 220 220 } else { 221 - apc_store($bucket_key, $bucket); 221 + @apc_store($bucket_key, $bucket); 222 222 } 223 223 224 224 return $this; ··· 247 247 $cur = $this->getCurrentBucketID(); 248 248 if (!$min) { 249 249 if ($is_apcu) { 250 - apcu_store($min_key, $cur); 250 + @apcu_store($min_key, $cur); 251 251 } else { 252 - apc_store($min_key, $cur); 252 + @apc_store($min_key, $cur); 253 253 } 254 254 $min = $cur; 255 255 } ··· 262 262 $bucket_key = $this->getBucketCacheKey($cursor); 263 263 if ($is_apcu) { 264 264 apcu_delete($bucket_key); 265 - apcu_store($min_key, $cursor + 1); 265 + @apcu_store($min_key, $cursor + 1); 266 266 } else { 267 267 apc_delete($bucket_key); 268 - apc_store($min_key, $cursor + 1); 268 + @apc_store($min_key, $cursor + 1); 269 269 } 270 270 } 271 271