[Spambayes] New web training interface for pop3proxy

Richie Hindle richie@entrian.com
Sat Nov 23 22:51:24 2002

[Paul on his pop3proxy hang]
> The browser shows "Training..." and nothing more. The status bar shows
> "Opening page http://localhost:8880/review..." and the progress bar is
> part way across and stuck.

I just had this myself, and in my case I'm convinced it's a bug in my vius
scanner, McAfee 6.02.  The POP3 proxy had cached a virus message to disk,
the virus checker had popped up, and I'd hit "Exclude".  A few seconds
later I hit Train and the browser locked.  Messages were still arriving
over the the active POP3 link - I let that finish, tried to kill the hung
browser, and saw that the virus checker was flagged as "Not responding" in
the Close Program dialog.  I tried to kill it and the operating system
exploded (nothing unusual there with Windows 98).

Judging by the rest of what you say, this isn't what's happening to you,
but I mention it for two reasons - to ask whether anyone else has had a
similar problem, and to point out that caching emails to disk can have
unwanted side effects.  The POP3 proxy can already use Tim Stone's
GzipFileMessageFactory to store the messages in compressed form, by
enabling pop3proxy_cache_use_gzip, which is off by default because it slows
things down a bit - perhaps it should be enabled by default.  Or when (if?)
we switch to ZODB, we should probably store the messages in there.

> Specifically,
>     # Needed to tell a persistent DB that the content changed.
>     wordinfo[word] = record
> locks up with record = None (and word = electronics, but I doubt
> that's relevant :-))

Um?  That code says:

>             if record is None:
>                 record = self.WordInfoClass(now)
>             if is_spam:
>                 record.spamcount += 1
>             else:
>                 record.hamcount += 1
>             # Needed to tell a persistent DB that the content changed.
>             wordinfo[word] = record

So by the time it gets to the offending line, record can't be None...

Anyhow, I'm using a pickle rather than a DBM, which might explain why I
haven't seen your problem in the same way you have.  Does Paul's
description ring any bells with people who use/maintain the DBM code?  I'll
start running the code with a DBM and see what happens.

Richie Hindle

More information about the Spambayes mailing list