FPs and SA 3.2.0
Paul Bijnens
Paul.Bijnens at xplanation.com
Mon May 21 18:28:01 IST 2007
On 2007-05-21 17:10, Julian Field wrote:
>
>
> Paul Bijnens wrote:
>> On 2007-05-16 17:41, Julian Field wrote:
>
>>> I'll put it in the main codebase then. Perl has some very subtle bugs in
>>> it...
>>>
>> I believe I don't need to teach perl to Julian (rather the other way
>> around :-) ), but anyway...
>
>
>>>>>>
>>>>>>
>>>>>>> # JKF 3/10/2005
>>>>>>> my $temp = @HitList;
>>>>>>> $temp = $temp + 0;
>>>>>>> $temp = 0 unless $HitList[0] =~ /a-z/i;
>>>>>>> return ($temp, join(', ', @HitList));
>>>>>>> }
>>>>>>>
>>>>>>> Let's see if that helps. According to the book, the 2 middle lines
>>>>>>> shouldn't be needed at all.
>>>>>>>
>> To me this seems like the array @HitList contains an empty or undef
>> value. The match against "/[a-z]/i" (or was that really intended
>> "/a-z/i"??)
> No, your version would match against any string that contained the
> string "a-z" in it (in upper or lower case).
Excuse me :-) but "/a-z/i" is your version and that will search for
a string "a-z" lower or upper case. My version, "/[a-z]/i", will match
a name with at least one letter in it. Which is what you're trying to
do, I believe.
You're effectively removing any RBL hits now, which is the main reason
why no more FP's got hit by the current beta tester(-s? -- only one
person as far I see had the problem).
http://lists.mailscanner.info/pipermail/mailscanner/2007-May/073331.html
I'm still interested in the exact list of RBLs in his config.
Does it happen when 1 list is added? Two? Some particular list only?
>> just hides the source of the real error: getting an empty
>> value for RBL name.
>
> If I printed the string of @HitList it turned out to have no contents,
How? Something like:
@HitList = ( "" ); # somehow this ended up in the list
$temp = @HitList;
warn("HitList contains $temp entries: '@HitList'\n");
No (visible) contents, but still one element in the array.
> so the scalar of it should have been zero. I have seen the problem of
> "0" not always equaling zero a few other times, hence the addition of
> zero to it to try to fix it, which has normally fixed the problem
You can have that problem with "" or undef, acting as 0 in calculations
but not showing up as a "0" when printed. Indeed fixed by explicitly
converting to number by adding "+ 0".
> elsewhere. The new modification has only been recently needed, the code
> has worked perfectly well for years (the previous version was very old
> code). If it had been needed before, people would have been complaining
> loudly about this for the past few years, and they haven't been. So if
> the start of the list doesn't contain a letter (all RBL names must
> contain at least 1 letter or they wouldn't work) then the list must
> actually be empty, so I force it to return zero.
So we have to find out where the list element comes from that does
not contain a letter, but is empty instead. Instead of covering up the
bug here. (Still not convinced it is a perl bug.)
Maybe most people use some RBLs at the MTA-level to block the incoming
mail completely and/or use other RBLs in SA for scoring, and let the
spam list entry in MailScanner empty. Or the bug happens only on
a timeout, like suggested in the OP problem, or only for certain
combinations of timeout values, etc, etc.
>
>> Now finding out where the empty value is coming from, is -- at my
>> current understanding of the code -- not yet successful.
>
> Yes. I have another demo of a Perl bug which I'll post for you if you
> like. Perl is not bug-free.
Sure not. But, speaking for myself, it's usually in my own
programs, and not in the perl compiler, that I find the bugs. :-)
--
Paul Bijnens, xplanation Technology Services Tel +32 16 397.511
Technologielaan 21 bus 2, B-3001 Leuven, BELGIUM Fax +32 16 397.512
http://www.xplanation.com/ email: Paul.Bijnens at xplanation.com
***********************************************************************
* I think I've got the hang of it now: exit, ^D, ^C, ^\, ^Z, ^Q, ^^, *
* F6, quit, ZZ, :q, :q!, M-Z, ^X^C, logoff, logout, close, bye, /bye, *
* stop, end, F3, ~., ^]c, +++ ATH, disconnect, halt, abort, hangup, *
* PF4, F20, ^X^X, :D::D, KJOB, F14-f-e, F8-e, kill -1 $$, shutdown, *
* init 0, kill -9 1, Alt-F4, Ctrl-Alt-Del, AltGr-NumLock, Stop-A, ... *
* ... "Are you sure?" ... YES ... Phew ... I'm out *
***********************************************************************
More information about the MailScanner
mailing list