SophosSAVI Broke?

mikea mikea at MIKEA.ATH.CX
Thu Sep 18 14:51:30 IST 2003


On Thu, Sep 18, 2003 at 08:24:39AM +0100, Julian Field wrote:
> Ah, well done. I agree it shouldn't be needed, but if it solves the problem....
>
> At 19:53 17/09/2003, you wrote:
> >Ok. Now I'm confused.
> >
> >  I've been able to track down the problem to line 321 ("$SAVI = new
> >SAVI();") of SweepViruses.pm.
> >
> >  The children die at this point.
> >
> >  Now for the strange thing.. For whatever reason, everything works fine if I
> >add a print statement right before 'new SAVI();' is called. Even though the
> >print statement doesn't get displayed anywhere, it seems to work when it's
> >there. If I remove it, the children die again.
> >
> ><   $SAVI = new SAVI();
> >---
> > >   print "creating SAVI\n";  $SAVI = new SAVI();
> >
> >
> >  I can't reproduce the problem outside of MailScanner though. Everything
> >works fine in the scan.pl example that's included with the SAVI-Perl package
> >and in some small scripts I wrote to test it out.
> >
> >
> >  I think I'm going crazy.

I rather suspect that it's not *solving* the problem, but *masking*
it temporarily. When I was working as a Student Assistant at the
local uni, I found a lot of people had *just* this sort of problems
with their FORTRAN programs: the program failed, typically because
something wrote off the end of an array; putting some debugging code
into the program moved the array or put something after it that wasn't
in protected storage[1], and so the program didn't blow up.

When something in Perl changes, or something in SAVI changes, or
something in the OS changes, or the weather changes, this problem will
-- and I do mean *WILL* -- come out of hiding and bite you (and us,
too, perhaps) right square in the arse. You can't depend on it staying
gone, and you _can_ depend on it coming back if it went away because
you added a "print" statement.

Hunting this down probably won't be anything like fun, but it's almost
certainly *not* fixed. If it were on an IBM mainframe running any of
the descendants of MFT/MVT/MVS, I'd volunteer my expertise, garnered
over 40 years as a systems programmer. But when it comes to shooting
dumps on *nix/*nux systems, I'm strictly Just Another User, so all I
can do is wish you luck.

[1] IBM S/360 running MFT-II; data goes at the end of the last page of
    user space; everything after it is write-protected.

--
Mike Andrews
mikea at mikea.ath.cx
Tired old sysadmin since 1964



More information about the MailScanner mailing list