[Spambayes] New web training interface for pop3proxy
Paul Moore
lists@morpheus.demon.co.uk
Sat Nov 23 15:49:16 2002
"Moore, Paul" <Paul.Moore@atosorigin.com> writes:
> (This is from memory, as it happened on my home setup and I'm at
> work now, so I apologise if it's a bit vague).
It's just happened again. So I can diagnose a bit better...
>> It's "no". 8-) Like I say, no-one's reported it locking before, and
>> I've never seen it. You usually get a traceback when something goes
>> wrong. So your console says something like:
>>
>> Loading database... Done BayesProxyListener listening on port 110 .
>> UserInterfaceListener listening on port 8880 .
Console screenshot:
Loading database... Done.
BayesProxyListener listening on port 8110.
UserInterfaceListener listening on port 8880.
>> and nothing else, and the process is still running, but you can't
>> get a page served to your browser? What error message do you get
>> from the browser? If it's one of those pointless IE error pages,
>> could you try telnetting to port 8880 and saying "GET / HTTP/1.0"?
>> Can you even connect with telnet? How about port 110?
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.
Python is running at 90%+ CPU. Looks like it's in a loop somewhere.
> I can't do a telnet at the moment to check.
Telnet isn't responding. The thing's almost certainly in a loop.
> It was a dbm file.
>
> The command line was pop3proxy.py -d -l 8110 localhost
>
> (proxying a local POP server on port 110 with the proxy on port 8110
> using a DBM file). Working directory was the directory of the program.
> No bayescustomize.ini file.
The UI showed the database as having 0 ham and 0 spam, but it was
doing this yesterday, and everything worked fine then. Looks like some
sort of database corruption, but a subtle one...
OK, I ran it with Corpus.Verbose = True, and it seems to be locking up
just after printing "training with" in Bayes.Trainer.train
Further checking... it's in self._add_msg(wordstream, is_spam) in
classifier.Bayes. Best I can locate, it's locking up trying to store a
None in self.wordinfo. 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 :-))
I can post my hammie.db, but it's 1.4M (360K zipped) so I won't bother
unless someone thinks it's going to help significantly... (BTW, some
sort of dumper of a spambayes database file might be helpful in
diagnosing problems like this - at least a structure validator. I
don't know how possible this is, and as this area is changing rapidly
right now, I'll just put it on the TODO list for the moment.
Paul.
--
This signature intentionally left blank
More information about the Spambayes
mailing list