From: Gary V <mr8...@gm...> - 2010-01-21 04:14:51
|
On 1/18/10, Mark Martinec <Mar...@ij...> wrote: > Felix, > > > > Maybe you get a 'main log entry' only with the first message > > > processed by each child process. > > > > Absolutely... If I have the config value "$max_requests = 1;" then the > > problem is gone. Each message is tagged correctly with the "Blocked > > SPAM" entry in the log file. The question is now why only the the first > > child process generates a full "main log entry"? > > I don't know. Perhaps you should ask on the Maia Mailguard mailing list, > as this is not happening to a native amavisd-new as far as I can tell. > > > I guess the setting "max_requests = 1;" is not a good idea due to > > performance reasons? > > Correct. > > > Ok, system is not under heavy load and has a core7/8GB RAM but nevertheless > > I'd prefer to solve the issue not with this dirty "workaround" ;) > > Certainly. > > The "one_response_for_all <bl...@bl...>: all DISCARD, ..." log entry comes > from the call to one_response_for_all() in: > > $which_section = "delivery-notification"; > my($dsn_needed); > ($smtp_resp, $exit_code, $dsn_needed) = > one_response_for_all($msginfo, $dsn_per_recip_capable, $am_id); > > > The first mails causes 3 more log entries after the entry above: > > Jan 13 17:46:48 anthares amavis[26588]: (26588-01) parse_received: ; = > > Wed, 13 Jan 2010 17:46:47 +0100 (CET)\t(envelope-from bl...@bl...)/Wed, > > The "parse_received:" log entry comes from sub parse_received, which is > most likely called (there are some other less likely possibilities) > while expanding macros in a call to expand(): > > # generate customized log report at log level 0 - this is usually the > # only log entry interesting to administrators during normal operation > $which_section = 'main_log_entry'; > my(%mybuiltins) = %builtins; # make a local copy > { # do a per-mail log entry > my($s) = $spam_status; $s =~ s/^tests=//; my(@s) = split(/,/,$s); > if (@s > 10) { $#s = 9; push(@s,"...") } > $mybuiltins{'T'} = \@s; # macro %T has overloaded semantics, ugly > my($strr) = expand(cr('log_templ'), \%mybuiltins); > for my $logline (split(/[ \t]*\n/, $$strr)) { > do_log(0, $logline) if $logline ne ''; > } > } > > So, somewhere between $which_section="delivery-notification" and the > my($strr)=expand(...) or a do_log that follows it, either program flow > is diverted, or logging somehow disabled. You may try adding a couple of > calls like: do_log(0,"TESTxxx") between the two program locations, > and see where logging starts to disappear. > > Mark > See my post some time ago in the Maia list: http://www.renaissoft.com/pipermail/maia-users/2009-April/013025.html Also, at the end of this thread: http://www.renaissoft.com/pipermail/maia-users/2009-July/013414.html -- Gary V |