有时 Deluge 会毫无原因地达到 100% CPU(没有活动的种子)。如果我重新启动它,CPU 会降到 0% 左右
还有其他人遇到过这种情况吗?
编辑:
哈哈,终于解决了这个错误(经过一番调查)。简而言之,它似乎是由于 Deluge 在主循环中使用 twisted.internet.run() 而不是 gtk.main(),然后使用 twisted.internet.run() 造成的调用 gobject.threads_init()它会在内部设置一个 SIGCHLD 处理程序,最终归结为PyGtk 中的错误解决的是此补丁:
diff --git a/gtk/gtk.override b/gtk/gtk.override
index 75018f4..94309a6 100644
--- a/gtk/gtk.override
+++ b/gtk/gtk.override
@@ -1151,9 +1151,10 @@ pygtk_main_watch_check(GSource *source)
#ifdef HAVE_PYSIGNAL_SETWAKEUPFD
PySignalWatchSource *real_source = (PySignalWatchSource *)source;
GPollFD *poll_fd = &real_source->fd;
- int data_size = 0;
+ unsigned char dummy;
+ gssize ret;
if (poll_fd->revents & G_IO_IN)
- data_size = read(poll_fd->fd, 0, 1);
+ ret = read(poll_fd->fd, &dummy, 1);
#endif
state = pyg_gil_state_ensure();
现在 Deluge 运行良好,而且我知道这个补丁也修复了其他使用 PyGtk 的程序中的类似错误。
答案1
我相信这是 Deluge 开发人员归咎于他们用于显示文件的 GTK+ 控件的一个错误。简而言之,解决方法就是不使用文件窗格,也不使用“打开文件夹”上下文菜单选项。
deluge-web
有一个单独的错误,也会导致 CPU 过高,但这已在最新版本中得到官方修复。他们的网站。
答案2
Deluge 论坛上有关于此问题的更多详细信息,其中包括错误报告链接以及针对 Natty 和 Maverick 的修补 deb。
http://forum.deluge-torrent.org/viewtopic.php?p=152813#p152813