2011-11-09 37 views
3

當即時通訊嘗試從我的應用程序(使用devise)登出應用程序掛起和紅寶石吃了100%的CPU,重新啓動服務器後,它stil frezeed(無法加載頁面)。它只有當我下降並重新創建我的數據庫。我使用PostgreSQL,試圖切換到MySQL,沒有幫助。使用雜種(與webrick一起發生)。紅寶石1.9.2,軌3.0.9紅寶石進程吃100%cpu

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 

控制檯輸出:

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 

林真的不知道會發生什麼呢?

UPD *這是凍結不僅發生在註銷,這是發生隨機:(也可以在Mac其他開發商還沒有這個問題,即時運行Ubuntu 11.10,試穿了10.04,仍然有它。

+2

100%cpu聽起來像某種無限循環,並且有無數的可能的罪魁禍首是什麼可能導致這種情況。在'after_save'鉤子中保存模型是一個,無限重定向是另一個。是其中之一,但它也可能是其他東西完全(甚至不一定是一個無限循環,對於這件事)。 – Frost

+0

我檢查兩次,沒有無限循環掛鉤 –

+1

你可以嗎?用戶模型的模型代碼如何?你給我們的東西還不足以讓我們甚至開始查明錯誤來自哪裏。 –

回答

0

嘗試打開cache_classes在發展中.rb