ICE默认IO错误处理程序执行exit(),pid=11281,errno=4

ICE默认IO错误处理程序执行exit(),pid=11281,errno=4,c,linux,unix,centos6,pyqt5,C,Linux,Unix,Centos6,Pyqt5,我们的一个PyQt应用程序出现关于ICEAuthority的错误,如下所示并退出- ICE默认IO错误处理程序执行exit(),pid=11281,errno=4 在查看跟踪时,我们看到以下内容- write(25, "\1\0\3\200\3\0\0\0\3\0\0\0\t\0\0\0\10\0\0\0\1\0\0\0\377rtStyle", 32) = 32 read(25, 0x16a67f0, 8) = ? ERESTARTSYS (To be restarted) — SIGCHLD

我们的一个PyQt应用程序出现关于ICEAuthority的错误,如下所示并退出-

ICE默认IO错误处理程序执行exit(),pid=11281,errno=4

在查看跟踪时,我们看到以下内容-

write(25, "\1\0\3\200\3\0\0\0\3\0\0\0\t\0\0\0\10\0\0\0\1\0\0\0\377rtStyle", 32) = 32
read(25, 0x16a67f0, 8) = ? ERESTARTSYS (To be restarted)
— SIGCHLD (Child exited) @ 0 (0) —
write(6, "\0", 1) = 1
rt_sigreturn(0x2) = -1 EINTR (Interrupted system call)
write(2, "ICE default IO error handler doi"..., 69) = 69
这看起来像是ICEAuthority文件读取操作在为我们从PyQt应用程序派生的进程之一处理SIGCHLD后无法重新启动。在谷歌上,有很多关于ICEAuthority文件失败的报告,人们建议重新启动系统、删除.ICEAuthority文件或取消会话管理器。目前,我们倾向于在PyQt应用程序中取消设置会话管理器。但我想了解为什么操作无法重新启动ICEAuthority文件的读取操作。这是gnome会话代码中的错误吗?有人知道吗

此外,我还想提到,我尝试将SIGCHLD句柄的SA_RESTART设置为false,以重新启动操作。这是行不通的

请在下面找到我们的系统详细信息-

Linux nyc-nx-l01.schrodinger.com 2.6.32-358.23.2.el6.x86#u 64#1 SMP周三10月16日18:37:12 UTC 2013 x86_64 x86_64 GNU/Linux


CentOS 6.4版(最终版)

在Ubuntu上启动“keepassx”时,我收到了相同的错误消息。删除我的~/.ICEauthority文件修复了它。只删除了一次,从此再也没有问题。

在我的linux机器中,USB不可读,然后kile也显示了错误 “ICE默认IO错误处理程序正在执行exit(),pid=11212,errno=0”


删除.ICEauthority文件对我很有效。

我认为删除.ICEauthority文件没有问题。该文件夹保存着torrent cookies,可能来自私人追踪器或其他什么东西。我仍然相信ktorrent是最好的torrent客户端之一,因为它提供了一个暂停torrent并尝试加载活动torrent的超时时间。换句话说,客户端总是试图确保它使用的是活动的torrent源。

“如果要重新启动操作,SIGCHLD handle的SA_RESTART为false”您必须设置该标志,而不是清除该标志,以便自动重新启动系统调用。它可能是覆盖您自己的信号处理程序的其他代码。似乎某个地方的某些代码没有正确处理EINTR,问题是哪个代码。删除
~/.ICEauthority
是否存在任何潜在危险?我不知道。我不知道它是干什么的。我没有注意到任何不良影响。