you should extension apcu php warnings apc

php - should - xampp apc



¿Qué significa la entrada de la memoria caché GC críptica? (1)

Definitivamente, este problema se debe a APC, el código fuente del paquete apc-3.1.6-r1. Cuando el elemento se inserta en la caché de usuario o en la caché de archivos, se llama a esta función.

static void process_pending_removals(apc_cache_t* cache TSRMLS_DC) { slot_t** slot; time_t now; /* This function scans the list of removed cache entries and deletes any * entry whose reference count is zero (indicating that it is no longer * being executed) or that has been on the pending list for more than * cache->gc_ttl seconds (we issue a warning in the latter case). */ if (!cache->header->deleted_list) return; slot = &cache->header->deleted_list; now = time(0); while (*slot != NULL) { int gc_sec = cache->gc_ttl ? (now - (*slot)->deletion_time) : 0; if ((*slot)->value->ref_count <= 0 || gc_sec > cache->gc_ttl) { slot_t* dead = *slot; if (dead->value->ref_count > 0) { switch(dead->value->type) { case APC_CACHE_ENTRY_FILE: apc_warning("GC cache entry ''%s'' (dev=%d ino=%d) was on gc-list for %d seconds" TSRMLS_CC, dead->value->data.file.filename, dead->key.data.file.device, dead->key.data.file.inode, gc_sec); break; case APC_CACHE_ENTRY_USER: apc_warning("GC cache entry ''%s''was on gc-list for %d seconds" TSRMLS_CC, dead->value->data.user.info, gc_sec); break; } } *slot = dead->next; free_slot(dead TSRMLS_CC); } else { slot = &(*slot)->next; } } }

Desde la configuración de APC ( http://cz.php.net/manual/en/apc.configuration.php#ini.apc.gc-ttl )

apc.gc_ttl integer

El número de segundos que una entrada de caché puede permanecer en la lista de recolección de basura. Este valor proporciona una protección contra fallas en el caso de que un proceso de servidor muera mientras se ejecuta un archivo de origen en caché; si se modifica ese archivo de origen, la memoria asignada para la versión anterior no se reclamará hasta que se alcance este TTL. Se establece en cero para deshabilitar esta función.

Recibimos los mensajes "La entrada de caché del GC ''% s'' (dev =% d ino =% d) estuvo en la lista de gc durante% d segundos" o "La entrada de la caché del GC ''% s'' estuvo en la lista de gc durante% d segundos" en esta condición:

(gc_sec > cache->gc_ttl) && (dead->value->ref_count > 0)

La primera condición significa que el elemento se eliminó más tarde y luego apc.gc_ttl segundos atrás y aún está en la lista del recolector de basura. La condición de segundos significa que el artículo aún está referenciado.

Por ejemplo, cuando el proceso murió inesperadamente, la referencia no disminuye. Los primeros segundos de apc.ttl están activos en el caché de APC, luego se eliminan (no hay un siguiente golpe en este elemento). Ahora el elemento está en la lista del recolector de basura (GC) y se está ejecutando el tiempo de espera apc.gc_ttl. Cuando apc.gc_ttl es menor que (ahora - item_deletion_time), la advertencia se escribe y el elemento se vacía por completo.

Intente verificar sus registros (servidor web, php, sistema / kernel) para detectar errores críticos, por ejemplo, php, segfault del servidor web.

De vez en cuando, recibo este extraño mensaje de advertencia. Por lo general, se va en la recarga de la página. Qué significa eso. Busqué en Google pero fue en vano.

Warning: include(): GC cache entry ''/.../...class.php'' (dev=2049 ino=37120489) was on gc-list for 3840 seconds in /.../...class.php on line 111