Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 925 by [email protected]: Can not resrart ibus-daemon from panel if the ibus-daemon executable has been replaced
http://code.google.com/p/ibus/issues/detail?id=925

What version of the product are you using? On what operating system?

OS (Linux distributions, UNIX or ...): Linux (Ubuntu 10.04)
Architecture (i386, x86_64): x86_64
IBus version: git tot

What steps will reproduce the problem?

1. Install ibus, e.g. % sudo dpkg -i ibus_1.2.0.20100130-1~ppa1_amd64.deb
2. Start ibus-daemon: % ibus-daemon
3. Reinstall ibus: % sudo dpkg -i ibus_1.2.0.20100130-1~ppa1_amd64.deb
to overwrite /usr/bin/ibus-daemon with the new one, though the new file is identical to the old one.
4. Click the ibus-daemon icon in systray and click "Restart."

What is the expected output?

ibus-daemon restarts. The systray icon shows up again in a few seconds.

What do you see instead?

ibus-daemon just exits. It does not start.


Please provide any additional information below.

AFAIK, readlink /proc/[pid]/exe returns a path with " (deleted)" suffix if the executable file for the process is already removed or replaced:

% pgrep ibus-daemon
19684
% readlink /proc/19684/exe
/usr/bin/ibus-daemon
# cp -p /usr/bin/ibus-daemon /tmp
# cp -fp /tmp/ibus-daemon /usr/bin/   # overwrite the binary
% readlink /proc/19684/exe
/usr/bin/ibus-daemon (deleted)


I think it'd be nice if bus/ibusimpl.c could handle such case correctly. Attached a tiny patch.


Attachments:
        ibusimpl_proc_exe_deleted.patch  671 bytes

--
You received this message because you are subscribed to the Google
Groups "ibus-devel" group.
iBus project web page: http://code.google.com/p/ibus/
iBus dev group: http://groups.google.com/group/ibus-devel?hl=en

回复