Found nn messages in the processing-messages database
Rick Cooper
rcooper at dwford.com
Thu Apr 23 20:57:41 IST 2009
> -----Original Message-----
> From: mailscanner-bounces at lists.mailscanner.info
> [mailto:mailscanner-bounces at lists.mailscanner.info] On Behalf
> Of Mark Sapiro
> Sent: Thursday, April 23, 2009 2:29 PM
> To: MailScanner List
> Subject: Re: Found nn messages in the processing-messages database
>
> Julian Field wrote:
> >
> >On 23/04/2009 15:12, Mark Sapiro wrote:
> >> On Thu, Apr 23, 2009 at 09:31:45AM +0100, Julian Field wrote:
> >>
> >>>
> >>> On 23/04/2009 02:57, Mark Sapiro wrote:
> >>>
> >>>> I have looked a bit more clusely at the messages that
> were left in the
> >>>> database. and it is not only that the id is all-decimal;
> the entropy
> >>>> fragment must also be all-decimal or contain only a
> single 'E', so in
> >>>> every case, they are being interpred as a floating point
> number rather
> >>>> than a string.
> >>>>
> >>>>
> >>> Which is a Perl bug. Perl should carry them around as
> both a number and
> >>> a string, and the final destination type is a string
> (that's the type of
> >>> the field in the SQL query), so someone is squashing it
> to just a number
> >>> before checking the destination type. That's either a bug
> in Perl or in
> >>> the implementation of DBD::SQLite.
> >>>
> >>>> E.g., the latest list from running for a while with the
> >>>>
> >>>> $sth->execute("$id");
> >>>>
> >>>> patch is
> >>>>
> >>>> 74221690410.052E4
> >>>> 36888690435.06105
> >>>> 73061690441.05915
> >>>> 15461690460.09210
> >>>>
> >>>> all of which are valid floating point number
> representations. If you
> >>>> look at the lists in the messages I previously posted such as at
> >>>>
> <http://lists.mailscanner.info/pipermail/mailscanner/2009-Apri
> l/091022.html>,
> >>>> you will see that those too are all decimal to the left
> of the period
> >>>> and all decimal or contain at most one 'E' to the right
> of the period
> >>>> so they are all valid floating point number
> representations, and were
> >>>> apparently treated as floating point numbers when passed to the
> >>>> statement handler method with perl-DBD-SQLite-1.21, but
> apparently not
> >>>> with the prior perl-DBD-SQLite-1.13.
> >>>>
> >>>>
> >>> Well diagnosed, sir :-)
> >>> So an alternative solution would be to put a "P" (for
> Postfix, but is
> >>> arbitrary) on the front of the message id.
> >>> Would you like me to do that, or just live with the
> slight inefficiency
> >>> in the database deletion?
> >>>
> >>
> >> I had an idea, and I am trying
> >>
> >> $sth->execute("\'$id\'");
> >>
> >That shouldn't work, as you are trying to delete the message
> id, not the
> >message id with quotes around it.
>
>
> You are correct. That doesn't work at all.
>
> I then tried installing MailScanner 4.76.17-1, but that seems to have
> some other problem in that it is not picking up new messages from
> Postfix at all. Postfix receives messages and puts them in the Hold
> queue, and they just stay there. MailScanner doesn't pick them up and
> doesn't log anything.
>
> So I have reverted to 4.76.15-1 with the additional replacement of
>
> $sth->execute($id);
>
> with
>
> $MailScanner::ProcDBH->do("DELETE FROM processing WHERE
> (id='$id')");
>
Wouldn't
my $sth = $MailScanner::ProcDBH->prepare(q{DELETE FROM processing
WHERE (id='?')});
Then
$sth->execute($id);
Work?
Rick
--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
More information about the MailScanner
mailing list