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

Re: Bug#652026: amavisd-new: Init-script not working (stop/restart)



Hi,

On Thu, 15 Dec 2011, Henrique de Moraes Holschuh wrote:
> >     <503 pcew80@reincke:~> ps -aef | grep amavis
> >     amavis    2299     1  0 00:47 ?        00:00:01 amavisd (master)
> >     amavis    2496  2299  0 00:47 ?        00:00:00 amavisd (ch7-avail)
> >     amavis    2497  2299  0 00:47 ?        00:00:00 amavisd (ch7-avail)
> >     amavis    2498  2299  0 00:47 ?        00:00:00 amavisd (ch6-avail)
> >     reincke   7749  7078  0 08:32 pts/1    00:00:00 grep amavis
> > 
> >     <504 pcew80@reincke:~> cat /proc/2299/stat
> >     2299 (amavisd (master) S 1 2299 2299 0 -1 4202560 9771 0 4 0 119 5 0
> >     0 20 0 1 0 22660083 221208576 22204 18446744073709551615 1 1 0 0 0 0
> >     0 4224 81927 18446744073709551615 0 0 17 2 0 0 7 0 0
> 
> Crap.  The kernel has done us in.  Reassigning to dpkg to get some input on
> what should be done.  Raising severity because it will cause some services
> to not be stopped or restarted properly, which has security implications.
> 
> Guys, 3.1 changes /proc/<pid>/stat, and breaks anything using
> start-stop-daemon --name that also messes with the name of the process.  Due
> to the chage in /proc/<pid>/stat, the executable name is not matched
> anymore.

What are those changes exactly?

Because the kernel doesn't seem to always respect the name that the process
sets for itself. I run 3.1.0-1-amd64 here and I have this:
┏rivendell:~/deb/core/dpkg (test-build)
┗(706)$ ps axf|grep 1758
 1758 ?        S      0:00  \_ avahi-daemon: chroot helper
 4660 pts/8    S+     0:00  |   \_ grep 1758 
┏rivendell:~/deb/core/dpkg (test-build)
┗(707)$ sudo cat /proc/1758/stat
1758 (avahi-daemon) S 1756 1754 1754 0 -1 4202560 83 0 1 0 0 0 0 0 20 0 1 0 2639 3158016 21 18446744073709551615 134512640 134630244 4292694960 4292694424 4151297072 0 0 0 0 0 0 0 17 1 0 0 0 0 0

> This probably affects only processes that change their "visible identity"
> (or whatever the string output by ps -aef is called) like amavisd-new does.
> 
> Unfortunately, using --exec is not enough when you're dealing with perl,
> python or other scripts.
> 
> How should we proceed?  Drop use of start-stop-daemon --name in amavisd-new
> and document this kernel ABI issue in start-stop-daemon(8)?  Reassign to the
> kernel on the grounds that it broke the userspace ABI?  Enhance
> start-stop-daemon to take a --namere (regexp) and use that in amavisd-new
> instead?

I would first like to understand the problem because you said "probably"
multiple times and I prefer to decide in full knowledge.

Can anyone from the kernel team say us if there have been relevant changes
here?

Henrique, what lead you to conclude that there was a kernel change?

I tried to look at http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=history;f=fs/proc/array.c;hb=refs/heads/master but did not find any relevant change.

Cheers,
-- 
Raphaël Hertzog ◈ Debian Developer

Pre-order a copy of the Debian Administrator's Handbook and help
liberate it: http://debian-handbook.info/liberation/


Reply to: