2011-11-09 6 views
3

내 응용 프로그램 (devise 사용)에서 레일즈 응용 프로그램이 멈추고 루비가 CPU를 100 % 먹을 때 서버를 다시 시작한 후 frezeed (캔트로드 페이지)입니다. 메신저를 삭제하고 데이터베이스를 다시 만들 때만 사라졌습니다. PostgreSQL을 사용하여 MySQL로 전환하려고 시도했지만 도움이되지 않았습니다. mongrel을 사용하십시오 (webrick에서도 발생 함). 거기에 무슨 일Ruby 프로세스가 100 % CPU를 사용합니다

Started GET "/signout" for 127.0.0.1 at 2011-11-09 10:11:13 +0200 
    SQL (1.0ms) SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull 
FROM pg_attribute a LEFT JOIN pg_attrdef d 
ON a.attrelid = d.adrelid AND a.attnum = d.adnum 
WHERE a.attrelid = '"jokes"'::regclass 
AND a.attnum > 0 AND NOT a.attisdropped 
ORDER BY a.attnum 
    Processing by SessionsController#destroy as HTML 
Redirected to http://localhost:3000/ 
Completed 302 Found in 1ms 

임 정말 확실하지 : 루비 1.9.2, 3.0.9

strace를

futex(0xe1be68, FUTEX_WAKE_PRIVATE, 1) = 1 
futex(0xe1c3fc, FUTEX_WAIT_PRIVATE, 1, NULL) = ? ERESTARTSYS (To be restarted) 
--- SIGINT (Interrupt) @ 0 (0) --- 
rt_sigreturn(0x2)      = -1 EINTR (Interrupted system call) 
futex(0xe1c3fc, FUTEX_WAIT_PRIVATE, 1, NULL) = 0 
futex(0xe1c458, FUTEX_WAKE_PRIVATE, 1) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable) 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 
futex(0xe1be68, FUTEX_WAIT_PRIVATE, 2, NULL) = 0 

콘솔 출력 레일?

UPD *이이 무작위로 발생이다 :(또한 Mac에서 다른 개발자가이 문제를를 havent 10.04에 노력 우분투 11.10 실행, 메신저, 동결뿐만 아니라 로그 아웃에서 발생하고, 여전히있다.

+2

100 % cpu는 무한 루프처럼 들릴 수 있으며 그 원인을 막론하고 수많은 원인이있을 수 있습니다. 'after_save' 후크에서 모델 저장은 하나이며, 무한 리디렉션은 다른 것입니다. 그 중 하나가 될 수도 있지만 완전히 다른 것일 수도 있습니다. (심지어 무한 루프 일 필요는 없습니다.) – Frost

+0

두 번 확인하고 후크에 무한 루프가 없습니다. –

+1

Can s 우리가 어떻게 사용자 모델을위한 모델 코드가 되었습니까? 당신이 우리에게 준 것은 오류가 어디에서오고 있는지 정확히 찾아 내기조차 힘듭니다. –

답변

0

을 cache_classes 켜보십시오 in development.rb

관련 문제