it-swarm-korea.com

사용자를 삭제할 때 사이트가 중단되는 원인은 무엇입니까?

사용자를 삭제하려고하면 전체 사이트가 중단됩니다. 예 : Drupal 더 이상 응답하지 않습니다. 그 원인은 무엇입니까?

사이트에는 특별한 사용자 프로필 모듈이 설치되어 있지 않습니다.

편집 :
$op. '삭제'케이스가 의심스럽지 않은 것 같습니다.

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

나에게 나쁘게 보이지 않습니다. hook_user-circle을 호출하면 안됩니다.

편집 :
문제는 저절로 사라졌습니다. 무슨 일이 일어 났는지 전혀 몰라요.

5
EricSchaefer

나에게 이것은 사용자 정의 모듈의 hook_user에 잘못된 구성이있을 때 발생했습니다. 특히 hook_user에 대한 추가 호출로 이어지는 함수가 없는지 확인하려면 hook_user의 모든 구현을 확인하세요.

즉, hook_user에서 foo_do_magic_to_user()를 호출하는 모듈 (또는 hook_user를 누르는 다른 함수)이 있고 foo_do_magic_to_user()user_save(), 그러면 손에 무한 루프가 있습니다.

업데이트

hook_user 루프가 아니라는 것이 확실하다면 모듈과 관련된 끊김 현상이 여러 개있을 수 있습니다. 여기에는 응답하지 않는 외부 서비스가 포함되는 경우가 많습니다 (예 : "Goodbye"이메일을 보내지 만 sendmail (또는 이에 상응하는 항목)이 제대로 설정되지 않음).

당신의 입장에서 나는 시도 할 것입니다.

1) 모든 비 핵심 모듈을 비활성화하고 문제가 지속되는지 확인합니다. 이것이 핵심 모듈에서만 계속 발생한다면 더 깊고 근본적인 문제가있을 수 있습니다 (올바른 PHP 버전?)

2) # 1이 아니라면 contrib 모듈을 하나씩 다시 활성화하고 어떤 것이 문제를 일으키는 지 확인하십시오. 해당 모듈의 hook_user를 검사하면 근본 문제가 무엇인지에 대한 좋은 단서를 얻을 수 있습니다. 대부분의 경우 모듈 중 하나가 응답하지 않는 다른 서비스를 호출하고 있습니다.

4
anschauung

가장 먼저 할 일은 로컬 테스트를 위해 라이브 서버의 복제본으로 로컬 VM)를 설정하는 것입니다. 이상적으로는 dd 또는 비슷한.

hook_user를 구현하는 것이 있는지 확인하십시오. D5-D6 사이트의 경우 사이트 루트에서 재귀 grep ( ack 사용)을 사용하여 이러한 위치를 찾습니다. 이 코드를 제거하고 사이트가 여전히 중단되는지 확인하십시오.

MySQL Slow Query Log 를 사용하여 힌트가 있는지 확인하십시오. ps 및 top을 사용하여 웹 서버에서 실제로 일어나는 일을 확인하십시오.

나는 D5에 잠금이 있다고 생각하지 않습니다 (D6에는 lock_acquirelock.inc )

/ locked/서버를 복구하는 방법을 설명 할 수 있다면 도움이 될 것입니다.

2
Richard Harrison