Xfce Forum

Sub domains
 

You are not logged in.

#1 2024-01-10 13:52:56

puneet336
Member
Registered: 2024-01-10
Posts: 3

XFCE session - ICE default IO error handler doing an exit(), pid = XXX

Hi All,
I am having an issue while running an application called kdirstat4 https://kdirstat.sourceforge.net/, i get following error on terminal
ICE default IO error handler doing an exit(), pid = 221074, errno = 32

The kdirstat command was triggered using xfce4-terminal from  XFCE VNC session on server1.
OS is CentOS7 .

i attempted a to get a stacktrace and i got following -

open("/run/udev/data/b8:2", O_RDONLY|O_CLOEXEC) = 25
fstat(25, {st_mode=S_IFREG|0644, st_size=1287, ...}) = 0
fstat(25, {st_mode=S_IFREG|0644, st_size=1287, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f90a1609000
read(25, "S:disk/by-id/scsi-35002538a4824b"..., 4096) = 1287
read(25, "", 4096)                      = 0
close(25)                               = 0
munmap(0x7f90a1609000, 4096)            = 0
getrandom("\xd9\xb0\x9a\xde\xeb\x24\xa6\xdd\xf8\x4b\x47\x7b\x6b\xe7\xee\x7c", 16, GRND_NONBLOCK) = 16
getrandom("\x1b\x8c\xb6\xf9\xb7\x17\x1c\x9e\x0a\x3f\xb5\x85\xc7\x16\xf8\x6e", 16, GRND_NONBLOCK) = 16
getrandom("\x7d\x7e\x2d\x9e\xe2\xb4\xae\xec\xa7\x31\x8c\x79\xe9\xfb\x73\x23", 16, GRND_NONBLOCK) = 16
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
read(15, "\1\3\0\1\1\0\0\0", 8)         = 8
read(15, "\1\0\0\0002588", 8)           = 8
write(15, "\1\f\1\0\10\0\0\0\1\0\0\0\0\0\0\0\7\0\0\0Program\0\0\0\0\0"..., 72) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4166, si_uid=5516} ---
write(2, "ICE default IO error handler doi"..., 69ICE default IO error handler doing an exit(), pid = 4166, errno = 32
) = 69
sendmsg(16, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\1\1j\0\0\0\22\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/fre"..., iov_len=144}, {iov_base="e\0\0\0type='signal',path='/KIO/Sch"..., iov_len=106}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 250
sendmsg(16, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\1\1\1m\0\0\0\23\0\0\0\177\0\0\0\1\1o\0\25\0\0\0/org/fre"..., iov_len=144}, {iov_base="h\0\0\0type='signal',path='/KIO/Sch"..., iov_len=109}], msg_iovlen=2, msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 253
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
write(4, "\1\0\0\0\0\0\0\0", 8)         = 8
inotify_rm_watch(19, 1)                 = 0

here is the problematic part-

write(15, "\1\f\1\0\10\0\0\0\1\0\0\0\0\0\0\0\7\0\0\0Program\0\0\0\0\0"..., 72) = -1 EPIPE (Broken pipe)
--- SIGPIPE {si_signo=SIGPIPE, si_code=SI_USER, si_pid=4166, si_uid=5516} ---
write(2, "ICE default IO error handler doi"..., 69ICE default IO error handler doing an exit(), pid = 4166, errno = 32
) = 69

on rerun i found that fd 15 is a socket
Netid  State      Recv-Q Send-Q Local Address:Port                 Peer Address:Port
u_str  ESTAB      16     0       * 315970545             * 0

So it seems write to socket file was attempted and this leads to application's termination.


Now from a different server (server2) (having identical OS, processor and NFS mounted HOME directory) i started new XFCE VNC session . As the both servers have same NFS mounted HOME directory, the XFCE config files should be same.

So from the new session the kdirstat command went fine, and with strace i noticed that the write to the fd 15 was never attempted by application.

Can anyone please help me get some insights into how should i debug this further to find out the root cause?.
Please do let me know if any further information is required from my end.

Last edited by puneet336 (2024-01-11 03:28:32)

Offline

#2 2024-02-01 06:52:12

puneet336
Member
Registered: 2024-01-10
Posts: 3

Re: XFCE session - ICE default IO error handler doing an exit(), pid = XXX

Hi All,
I was able to identify the root cause.
the apparent root cause is documented here -
https://discuss.kde.org/t/kde-applicati … xxx/9737/6

It seems  - if the KDE applications are take longer time to communicate with the xfce-session binary over the ICE protocol, then the xfce-session binary closes its end of connection due to "SAVE TIMEOUT" setting

when the KDE application tried to write to its end of socket, KDE application gets SIGPIPE error.

here is what xfce-session process reports -
write(14, "TRACE[xfsm-manager.c:1607] xfsm_manager_save_timeout(): Client id = 2a3d69b9c-99e3-4b71-b777-e453754cafab, received SAVE TIMEOUT\n   Client will be disconnected now.\n\n", 166) = 166

Is there a way to increase SAVE TIMEOUT value so that we can make xfce-session binary wait for a longer duration?

Last edited by puneet336 (2024-02-01 06:52:56)

Offline

#3 2024-02-01 11:59:15

puneet336
Member
Registered: 2024-01-10
Posts: 3

Re: XFCE session - ICE default IO error handler doing an exit(), pid = XXX

If i unset the SESSION_MANAGER variable from the environment, then it seems the communication with the XFCE session manager is by passed and applications are able to launch fine.
Any idea what i am going to trade off if i keep "unset SESSION_MANAGER" in my environment/.bashrc?

Last edited by puneet336 (2024-02-01 11:59:44)

Offline

Board footer

Powered by FluxBB