Mi chiedo se qualcuno abbia riscontrato strani comportamenti con apc_exists()
, un comportamento che causa l'interruzione dell'intero server WAMP quando viene utilizzato insieme a apc_add()
o apc_store()
? Dopo una lunga sessione di "debug" e minimizzazione del problema, ho finito con il seguente codice che causa il crash del mio WAMP.Deadlock con apc_exists e apc_add? (apc e PHP)
Per quanto ne so, è necessario 1 apc_exists()
e 2 apc_add()
accedere a chiavi diverse. [quindi sembra un problema di deadlock] Eseguo questo script in chrome e poi fracassa F5-key fino a quando il rand-thingy non si verifica due volte. A quel tempo o la prima volta di solito si blocca.
<?php
$result = "asdfioasdjfoasdjf";
if(apc_exists("asdf")) {
echo("#1<br/>");
apc_add("launcher", $result, 1);
} else {
echo("#2<br/>");
$result = "asdfasdfasdf";
apc_add("launcher", $result, 10);
}
if(rand(0,100) < 4) {
echo("#stored data!<br/>");
apc_add("asdf", "2130130", 1);
}
?>
mio sistema/configurazione:
Windows 7 64bit
WAMP 2.2d 32bit
PHP versione 5.3.10
versione apc 3.1.9 | $ Revisione: 325040 $
Sto facendo qualcosa di sbagliato nel codice? E 'collegato a windows/wamp o esiste in altri ambienti e versioni php/apc? Nel caso precedente, se sostituisco apc_exists()
con apc_fetch()
, il sistema non si blocca, qualcuno sa perché?
Stesso qui. Sembra che apc_exists + 1 secondo timeout keys = deadlock in alcuni casi casuali. Immagino sia un bug? – Mahn
Beh, in realtà avevo una chiave da 300 secondi, quindi non è correlata all'ora –
Sì, era una delle ipotesi iniziali, ma penso che la risposta qui sotto sia ancora valida; Finché la chiave ha una data di scadenza e non è ancora scaduta, possono verificarsi duplicati interni – Mahn