<分区>
当我尝试从我的应用程序注销(使用设计)时,rails 应用程序挂起并且 ruby 占用 100% 的 CPU,在我重新启动服务器后它仍然卡住(无法加载页面)。只有当我删除并重新创建我的数据库时它才消失。我正在使用 PostgreSQL,试图切换到 MySQL,但没有帮助。使用杂种(也发生在 webrick 上)。 ruby 1.9.2, rails 3.0.9
跟踪
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 上试过,仍然有它。