You are not logged in.

Dear visitor, welcome to KDE-Forum.org. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

1

Thursday, June 7th 2007, 8:00pm

kdesktop holds .desktop file open

I've got an environment with some shared users with NFS home directories that are working with some KDE 3.1 installations.

We're seeing a problem with file access that appears to be from kdesktop. But I don't understand what's happening.

On initial login everything seems okay. But after some period of time, the kdesktop process has the Desktop/.directory file open via mmap. The problem comes when (because the account is shared) it is deleted on another machine.

# lsof -p 2677 | grep esk
kdeinit 2677 user mem DEL 0,10 1032869 /home/user/Desktop/.directory (nfsserv4:/vol/homedir2/user)
kdeinit 2677 user mem REG 104,2 515584 4490297 /usr/lib64/kdesktop.so
kdeinit 2677 user 10u unix 0x0000010bfb3d37c0 988309 /tmp/ksocket-user/kdesktopXs5ALb.slave-socket

Because I don't see this mapping (or open file) at all immediately after the login, I'm having a lot of trouble tracking down what is causing the file to be opened and mapped later.

Any suggestions for why this could be occuring or how I might track down what triggers this to be open?

Thanks,
--
Darren

2

Thursday, June 7th 2007, 8:53pm

RE: kdesktop holds .desktop file open

Oh, I forgot to mention. The reason I'm concerned about this process is that it seems to be stuck in a signal loop of some sort, and it's doing I/O while this is happening. I *think* that the mmaped file is being read directly (so no read() call appears in strace), and when the file isn't found, it causes a SIGBUS.

> strace-p 2677
Process 2677 attached - interrupt to quit
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
--- SIGBUS (Bus error) @ 0 (0) ---
write(2, "SIGBUS\n", 7) = 7
rt_sigaction(SIGBUS, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, 8) = 0
rt_sigreturn(0x35003a0045434152 <unfinished ...>
--- SIGBUS (Bus error) @ 0 (0) ---
<... rt_sigreturn resumed> ) = -1 ENOSYS (Function not implemented)
rt_sigaction(SIGBUS, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, 8) = 0
rt_sigreturn(0x35003a0045434152 <unfinished ...>
--- SIGBUS (Bus error) @ 0 (0) ---
<... rt_sigreturn resumed> ) = -1 ENOSYS (Function not implemented)
rt_sigaction(SIGBUS, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, {0x2a961b8570, [BUS], SA_RESTORER|SA_RESTART, 0x2a980f0720}, 8) = 0
rt_sigreturn(0x35003a0045434152 <unfinished ...>
--- SIGBUS (Bus error) @ 0 (0) ---

[...]

Thanks,
--
Darren