我们的一个 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 文件或取消设置 SESSION_MANAGER。我们现在倾向于在 PyQt 应用程序中取消设置 SESSION_MANAGER。但我想了解为什么该操作未能重新启动 ICEAuthority 文件的读取操作。这是 gnome-session 代码中的错误吗?有人知道吗?
另外我想提一下,我尝试将 SA_RESTART 设置为 false 以使 SIGCHLD 句柄重新启动操作。这没有奏效。
请在下面找到我们的系统详细信息 -
Linux nyc-nx-l01.schrodinger.com 2.6.32-358.23.2.el6.x86_64 #1 SMP 10 月 16 日星期三 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
CentOS 6.4 版(最终版)