2012-03-15 2 views
3

나는 아주 이상한 버그가있어서 어떤 단서가 필요합니다. 이것을 고려하십시오 :자동 루비/레일 오류로 인해 메모리가 모두 소모되어 서버가 손상됩니다.

class ApplicationController < ActionController::Base 
    before_filter :set_timezone 

    def set_timezone 
    if logged_in? 
     Time.zone = current_user.time_zone 
    end 
    end 

페이팔 통지를 보내려고, 그렇게 같이 온다 : 여기

Started POST "/ipn_subscription_notifications" for 173.0.82.126 at 2012-03-15 04:11:45 -0400 
    Processing by IpnSubscriptionNotificationsController#create as HTML 
    Parameters: {"txn_type"=>"subscr_signup", etc... 

그리고는 전화를 끊었 도착합니다. 루비는 기계가 망가질 때까지 메모리를 씹기 시작합니다.

def set_timezone 
    if current_user 
    Time.zone = current_user.time_zone 
    end 
end 

이의이 logged_in? 살펴 보자 : 수정 논리적으로 동일하다

module AuthenticatedSystem 
    def logged_in? 
    current_user ? true : false 
    end 

이 수정 프로그램입니다.

오류가 발생하여 포착 된 것으로 의심되어 누군가가 요청 프로세스를 다시 시작하고 있습니다. AuthenticatedSystem은 확실히 의심 스럽습니다.

이 개발 환경에서 발생하지 않습니다, 그것은 오류가 발생하고 500을 반환

Started POST "/ipn_subscription_notifications" for 127.0.0.1 at 2012-03-15 15:19:39 -0700 
    Processing by IpnSubscriptionNotificationsController#create as */* 
    Parameters: {"foobar"=>nil} 
Completed 500 Internal Server Error in 9ms 

NoMethodError (undefined method `logged_in?' for #<IpnSubscriptionNotificationsController:0xdfdaaf4>): 
    app/controllers/application_controller.rb:8:in `set_timezone' 

Rendered /usr/local/rvm/gems/[email protected]/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.3ms) 
Rendered /usr/local/rvm/gems/[email protected]/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.0ms) 
Rendered /usr/local/rvm/gems/[email protected]/gems/actionpack-3.1.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (4.8ms) 
[2012-03-15 15:19:40] ERROR Errno::ECONNRESET: Connection reset by peer 
    /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `eof?' 
    /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/httpserver.rb:56:in `run' 
    /usr/local/rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread' 

는 장애를 감지하고 처리하는 것은 적절 내 목표입니다.

아이디어가 있으십니까? 승객 또는 레일 스택의 다른 부분을 계측 할 수 있습니까?

+0

rvm 정보 및 번들 쇼 : http://sync.in/86yKG0Qg2f –

+0

''restful-authentication'을 사용하고 있습니까? 그렇다면 어떤 포크? – jdl

+0

편안한 인증을 사용하지 않고 authlogic (2.1.6 03ed66a) –

답변

0

오류가 정의되지 않았습니다. 메소드 logged_in? 당신의 IpnSubscriptionNotificationsController에서이 컨트롤러는 ApplicationController에서 상속받습니다. ApplicationController에 AuthenticatedSystem 모듈을 포함시켜야합니다. 먼저 시도해보십시오.

관련 문제