Prelinking interferes with start-stop-daemon functionality?
Hi,
I've got a question for the prelink, the dpkg maintainer, or both.
That's why I send this mail to you together.
Recently I turned on prelinking on my Debian unstable box. Now I've noticed
that start-stop-daemon cannot stop running daemons anymore.
This interferes with upgrading packages as an attempt is made to run two
instances of a daemon at the same time resulting in failure and sometimes
cryptic error messages.
As an example, on my system "/etc/init.d/portmap stop" which does a
"start-stop-daemon --stop --quiet --oknodo --exec /sbin/portmap" does not
work and the portmapper daemon keeps on running. I believe this is because
of the way start-stop-daemon checks for instances of the /sbin/portmap
executable. An "ls -l" of /proc/127 (127 being the pid of the portmapper
daemon) gives:
# ls -l /proc/127
total 0
-r--r--r-- 1 root root 0 Nov 14 06:44 cmdline
lrwxrwxrwx 1 root root 0 Nov 14 06:44 cwd -> //
-r-------- 1 root root 0 Nov 14 06:44 environ
lrwxrwxrwx 1 root root 0 Nov 14 06:44 exe -> /sbin/portmap.#prelink#.II5pc2 (deleted)
dr-x------ 2 root root 0 Nov 14 06:44 fd/
-r--r--r-- 1 root root 0 Nov 14 06:44 maps
-rw------- 1 root root 0 Nov 14 06:44 mem
-r--r--r-- 1 root root 0 Nov 14 06:44 mounts
lrwxrwxrwx 1 root root 0 Nov 14 06:44 root -> //
-r--r--r-- 1 root root 0 Nov 14 06:44 stat
-r--r--r-- 1 root root 0 Nov 14 06:44 statm
-r--r--r-- 1 root root 0 Nov 14 06:44 status
Notice the target of the exe symlink. Is this different target the reason
why start-stop-daemon cannot stop the running portmapper daemon anymore?
If so, what must be changed? I can think of some options:
- Binaries like the portmapper daemon shouldn't be prelinked at all
- The prelinking program is responsible for creating this kind of target
name and should be changed
- The start-stop-daemon program should be changed to cope with this kind of
target name
- The kernel is at fault for creating these target names and should be
patched
What is your opinion in this matter and what actions do you think I should
take?
Thanks in advance,
Arjan
Reply to: