Frage

Wenn ich versuche, Benutzer die gesamte Website zu löschen, antwortet der IE Drupal nicht mehr. Was kann das verursachen?

Die Website enthält keine speziellen Benutzerprofilmodule.

Bearbeiten:
Es gibt nur ein benutzerdefiniertes (selbst gemachtes) Modul mit einem Hook_User, der einschaltet $op. Der Fall "Löschen" sieht nicht verbreitet aus:

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

Sieht für mich nicht schlecht aus. Sollte keinen Hook_User-Kreis aufrufen.

Bearbeiten:
Das Problem ist alleine weg. Keine Ahnung, was passiert ist.

War es hilfreich?

Lösung

Für mich ist dies geschehen, wenn eine Missverständnis vorhanden ist hook_user in einem benutzerdefinierten Modul. Überprüfen Sie insbesondere alle Ihre Implementierungen von hook_user Um sicherzustellen, dass es keine Funktionen gibt, die zu zusätzlichen Forderungen führen hook_user.

Das heißt, wenn Sie ein Modul haben, das aufruft foo_do_magic_to_user() unter hook_user (oder eine andere Funktion, die trifft hook_user), und foo_do_magic_to_user() Anrufe user_save(), Dann haben Sie eine unendliche Schleife an Ihren Händen.

Aktualisieren

Wenn Sie sich absolut sicher sind, dass es nicht ein ist hook_user Schleife, dann könnte es eine beliebige Anzahl von Modul-assoziierten Aufhängen geben. Diese umfassen häufig externe Dienste, die nicht reagierend sind (z. B. senden eine "Abschied" -E-Mail, aber Sendmail (oder gleichwertig) ordnungsgemäß eingerichtet).

In deinen Schuhen würde ich versuchen:

1) Deaktivieren Sie alle Nicht-Kern-Module und prüfen Sie, ob das Problem bestehen bleibt. Wenn dies immer noch bei Kernmodulen passiert, haben Sie möglicherweise ein tieferes und grundlegenderes Problem (richtige Version von PHP?)

2) Wenn nicht Nr. 1, dann werden die Beiträge eins nach eins wieder aufgenommen und sehen Sie, welches das Problem verursacht. Durch die Überprüfung des Hook_Users des Moduls sollte Ihnen eine gute Ahnung geben, was das Root -Problem ist. Höchstwahrscheinlich nennt einer der Module einen anderen Service, der nicht ansprechbar ist.

Andere Tipps

Das allererste, was ich tun würde, ist, eine lokale VM mit einer Nachbildung des Live -Servers für lokale Tests einzurichten. Idealerweise wäre dies eine Kopie mit dd oder ähnliches.

Sehen Sie, ob etwas implementiert hook_user. Für D5-D6-Standorte verwende ich einen rekursiven Grep (mit Verwendung ack) von der Standortwurzel, um diese zu lokalisieren. Entfernen Sie diesen Code und prüfen Sie, ob die Website noch hängt.

Verwenden Sie die MySQL Langsames Abfrageprotokoll um zu sehen, ob es irgendwelche Hinweise gibt. Verwenden Sie PS und Top, um zu sehen, was tatsächlich auf dem Webserver passiert.

Ich glaube nicht, dass D5 Sperren hat (D6 hat lock_acquire in lock.inc)

Es würde auch helfen, wenn Sie erklären könnten, wie Sie es schaffen, den Server wiederherzustellen, sobald er /gesperrt /.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit drupal.stackexchange
scroll top