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

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



reassign 652026 amavisd-new
thanks

On Fri, 16 Dec 2011, Ben Hutchings wrote:
> > What are those changes exactly?
> [...]
> 
> Whatever they are, they're not in the kernel.

Hmm, I noticed /proc/<pid>/stat was different on a 3.0 kernel, but it was a
system that was not yet upgraded to perl 5.14.  I recalled (possibly
incorrectly) some talks about prctl changes in LKML.

Obviously I should have tested this in a up-to-date chroot... I apologise
for that.

> It is possible to change command names stored by the kernel, by writing
> to /proc/<pid>/tasks/<tid>/comm or by calling prctl(PR_SET_NAME, ...)
> within the process.  A quick grep doesn't show amavis using those
> explicitly; it just sets $0.
> 
> Sure enough, this is a documented change in Perl 5.14:
> 
>         Assignment to $0 sets the legacy process name with prctl() on
>         Linux
>         
>         On Linux the legacy process name is now set with prctl(2), in
>         addition to altering the POSIX name via argv[0], as Perl has
>         done since version 4.000. Now system utilities that read the
>         legacy process name such as ps, top, and killall recognize the
>         name you set when assigning to $0. The string you supply is
>         truncated at 16 bytes; this limitation is imposed by Linux.

Hmm, this means we _will_ have to drop the use of --name in amavisd-new, no
way around it.  I wish I could use -u and -g, but that requires actually
parsing the config files the same way amavisd-new does.

Reassiging back to amavisd-new.  I will file a wishlist bug for a --namere
parameter for start-stop-daemon later, if we cannot find a better way to do
it in amavisd-new.

-- 
  "One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie." -- The Silicon Valley Tarot
  Henrique Holschuh


Reply to: