Che cosa può causare un sito per blocco durante l'eliminazione di un utente?

drupal.stackexchange https://drupal.stackexchange.com/questions/71

  •  16-10-2019
  •  | 
  •  

Domanda

Quando si tenta di eliminare gli utenti si blocca tutto il sito, vale a dire Drupal non risponde più. Che cosa può causare questo?

Il sito non ha nessuna moduli speciali del profilo utente installati.

Modifica
C'è solo una consuetudine (self made) modulo con un hook_user che accende $op. Il caso 'delete' aspetto insospettabile:

case 'delete':
    $sql = "DELETE FROM {mynewsletter_users} WHERE uid = %d";
    db_query($sql, $account->uid);
    break;

non sembra male a me. non invocare un hook_user-cerchio.

Modifica
Il problema è andato da solo. Non ho idea di quello che è successo.

È stato utile?

Soluzione

Per me, questo è successo quando v'è un errore di configurazione sul hook_user in un modulo personalizzato. In particolare, controllare tutte le implementazioni di hook_user per assicurarsi che non vi siano funzioni che portano a chiamate aggiuntive per hook_user.

Questo è, se si dispone di un modulo che le chiamate foo_do_magic_to_user() sotto hook_user (o, qualche altra funzione che colpi hook_user), e foo_do_magic_to_user() chiamate user_save(), allora hai un ciclo infinito sulle vostre mani.

Aggiorna

Se siete assolutamente certi che non è un ciclo hook_user, allora ci potrebbe essere un numero qualsiasi di moduli hangups-associata. Questi spesso coinvolgono i servizi esterni che non sono sensibili (ad esempio l'invio di una e-mail "Goodbye", ma sendmail (o equivalente) isn' impostato correttamente).

le scarpe, vorrei provare:

1) Disabilitare tutti i moduli non core e vedere se i persiste problema. Se questo accade ancora con i moduli solo di base, allora si potrebbe avere un problema più profondo e più fondamentale (corretta versione di PHP?)

2) Se non # 1, quindi riattivare moduli contrib uno per uno e vedere quale causa il problema. Ispezione hook_user di quel modulo dovrebbe darvi una buona idea di ciò che il problema principale è. Molto probabilmente, uno dei moduli sta chiamando qualche altro servizio che non è reattivo.

Altri suggerimenti

La prima cosa che farei è quello di creare una macchina virtuale locale con una replica del server di vivere per il test locale. Idealmente questo sarebbe una copia fatta con dd o simili.

vedere se qualcosa sta attuando hook_user. Per i siti D5-D6 io uso un grep ricorsivo (utilizzando ACK ) dalla radice sito per localizzare questi. Rimuovere questo codice e vedere se il sito si blocca ancora.

Utilizzare il MySQL lento Query Log per vedere se ha eventuali suggerimenti. Usa ps e top per vedere cosa sta realmente accadendo sul server Web.

Non credo che il D5 è bloccaggio (D6 ha lock_acquire in lock.inc )

Sarebbe anche utile se si potrebbe spiegare come si riesce a ripristinare il server una volta che è / bloccato /.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a drupal.stackexchange
scroll top