Uno della nostra applicazione PyQt throwa un errore circa ICEAuthority come qui sotto e uscita -ICE gestore predefinito IO errore fare un'uscita(), pid = 11281, errno = 4
ICE gestore di errore IO di default fare un'uscita(), pid = 11281, errno = 4
a guardare il tracciato, vediamo le seguenti -
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
Questo appare come leggere il file ICEAuthority operazione non è riuscita per riavviare dopo mano ling SIGCHLD per uno dei processi che abbiamo generato dall'app PyQt. Su Google, ci sono molti rapporti sull'errore del file ICEAuthority e le persone suggeriscono di riavviare il sistema, eliminare il file .ICEAuthority o disabilitare SESSION_MANAGER. Per ora, siamo inclini a disabilitare SESSION_MANAGER nella nostra app PyQt. Ma mi piacerebbe capire perché l'operazione non è riuscita a riavviare l'operazione di lettura del file ICEAuthority. Si tratta di un bug nel codice di gnome-session? Qualcuno ne è a conoscenza?
Inoltre, vorrei ricordare che ho provato a impostare SA_RESTART su false per l'handle SIGCHLD per riavviare l'operazione. Questo non funzionava.
A seguire le informazioni di sistema -
Linux nyc-nx-l01.schrodinger.com 2.6.32-358.23.2.el6.x86_64 # 1 SMP Wed 16 ottobre 18:37:12 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
CentOS rilasciare 6.4 (finale)
"SA_RESTART su false per l'handle SIGCHLD per riavviare l'operazione" È necessario impostare tale flag, non cancellarlo, per consentire il riavvio automatico dei syscalls. Potrebbe essere un codice che sovrascrive il tuo gestore di segnale. Sembra che qualche codice non gestisca correttamente EINTR, la domanda è quale codice. – nos