[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: