Pregunta

Cuando intento eliminar usuarios enteras se bloquea el sitio, es decir, Drupal no responde más. ¿Qué puede causar que?

El sitio no tiene instalado ningún módulo especial de perfil de usuario.

Editar
Sólo hay una costumbre (hecha) con un módulo de hook_user que conmuta en $op. El caso 'delete' parece no sospechoso:

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

no se ve mal a mí. no invocar una hook_user-círculo.

Editar
El problema se ha ido por sí mismo. Ni idea de lo que pasó.

¿Fue útil?

Solución

Para mí, esto ha ocurrido cuando hay una mala configuración en hook_user en un módulo personalizado. En concreto, compruebe todas sus implementaciones de hook_user para asegurarse de que no hay funciones que llevan a las llamadas adicionales para hook_user.

Es decir, si tiene un módulo que las llamadas foo_do_magic_to_user() bajo hook_user (o, alguna otra función que hook_user golpes), y foo_do_magic_to_user() llamadas user_save(), entonces usted tiene un bucle infinito en sus manos.

Actualizar

Si estás absolutamente seguro de que no es un bucle hook_user, entonces no podría ser cualquier número de problemas de bloqueo de módulo asociada. Estos a menudo incluyen los servicios externos que no son sensibles (por ejemplo, el envío de un correo electrónico "adiós", pero ISN sendmail (o equivalente)' configurado correctamente).

En sus zapatos, me gustaría probar:

1) deshabilitar todos los módulos no básicos y ver si las persiste problemas. Si esto sucede con módulos sólo núcleo, entonces es posible que tenga un problema más profundo y más fundamental (versión correcta de PHP?)

2) Si no es # 1, a continuación, volver a habilitar módulos contrib uno por uno y ver cuál es la causa del problema. La inspección de hook_user de ese módulo, usted debe dar una buena idea de lo que es la raíz del problema. Muy probablemente, uno de los módulos está llamando a algún otro servicio que no responde.

Otros consejos

La primera cosa que me gustaría hacer es configurar una máquina virtual local con una réplica del servidor en vivo para pruebas locales. Lo ideal sería que esto sería una copia hecha con dd o similar.

ver si algo está implementando hook_user. Para los sitios D5-D6 utilizo un grep recursivo (usando ACK ) a partir de la raíz del sitio para localizar estos. Eliminar este código y ver si el sitio todavía cuelga.

El uso de MySQL lento registro de consultas a ver si tiene alguna pista. Uso ps y top para ver lo que está sucediendo realmente en el servidor web.

No creo que haya D5 bloqueo (D6 tiene en href="http://api.drupal.org/api/drupal/includes--lock.inc/6" rel="nofollow"> lock.inc )

Sería también ayuda si podía explicar cómo se las arreglan para recuperar el servidor una vez que está / bloqueado /.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a drupal.stackexchange
scroll top