Summary: | mail-filter/amavisd-new-2.7.2 with dev-lang/perl-5.16 has truncated incorrect process name | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Tony Vroon (RETIRED) <chainsaw> |
Component: | Current packages | Assignee: | Antivirus Team <antivirus> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | antivirus, idl0r, josh, mjo, net-mail+disabled |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=708945 | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- |
Description
Tony Vroon (RETIRED)
2014-01-28 21:38:18 UTC
The behaviour change happened in Perl 5.14, according to Ben Hutchings: http://us.generation-nt.com/answer/bug-652026-amavisd-new-init-script-not-working-stop-restart-help-205752131.html#205777231 Workaround for now is: $myprogram_name = 'amavisd'; No, that is still insufficient, as unwanted garbage is inserted: 30984 (amavisd (master) S 1 30984 30984 0 -1 4218944 10487 0 4 0 139 9 0 0 20 0 1 0 652271351 218861568 21304 18446744073709551615 1 1 0 0 0 0 0 4224 3227655 0 0 0 17 8 0 0 0 0 0 0 0 0 0 0 0 0 0 A box on which the perl update hasn't been applied clearly shows: 3707 (amavisd) S 7015 7015 7015 0 -1 4202560 55397 42402 20 0 2523 74 154 60 20 0 1 0 6513125065 80019456 13395 4294967295 1 1 0 0 0 0 0 4224 16391 0 0 0 17 1 0 0 0 0 0 Reported upstream as https://gitlab.com/amavis/amavis/issues/36 @chainsaw: The "(master)" string is needed to tell the master daemon (that coordinates the children) apart from its children which do the scanning. For example, # cat /proc/5871/stat 5871 (amavisd (ch1-av) S 13921 13921 13921 0 -1 ... # cat /proc/13921/stat 13921 (amavisd (master) S 1 13921 13921 0 -1 ... Are you unable to monitor the full string "amavisd (master)"? Digging into the amavisd source, it looks like the " (master)" suffix is appended unconditionally: $0 = c('myprogram_name') . ' (master)'; sd_notify(0, "STATUS=Transferring control to Net::Server."); The only other option we'd have is to try to undo the Perl change, by e.g. calling prctl AGAIN in amavisd, to revert the legacy process name to "amavisd" rather than "amavisd (master)". Of course, that's likely to piss off the people who like seeing "(master)" and "(child)" in their ps output. You might also try, $myprogram_name = "amavisd\0" but I think that will set both the POSIX and the legacy process names. It's a clever workaround, but if you'll humour me, I'd like to hear that there's a real problem with "amavisd (master)" before we start documenting hacks like that =) This problem occurred 4 years and 1 monitoring system ago. Sorry, but this is no longer worth working on. (In reply to Tony Vroon from comment #6) > This problem occurred 4 years and 1 monitoring system ago. Sorry, but this > is no longer worth working on. No problem. We'll add some documentation about $myprogram_name to the amavisd.conf file and call it a day. |