First, I know it's widely known that Pyzor "doesn't work on Windows".
But, you've probably seen enough of my postings to know I'm not always
satisfied with that reponse. So... I put a little effort into it this
week and it does work on Windows if you run SA from the command line,
but not if you use the class to call it from a perl program.

The output from SpamAssassin --lint -D looks like this:

[2140] dbg: plugin: registering glue method for check_pyzor
(Mail::SpamAssassin::Plugin::Pyzor=HASH(0x2d7b754))
[2140] dbg: pyzor: pyzor is available: c:\python24\pyzor.bat
[2140] dbg: info: entering helper-app run mode
[2140] dbg: pyzor: opening pipe: c:\python24\pyzor.bat  check <
C:\DOCUME~1\BRET~1.MIL\LOCALS~1\Temp\.spamassassin2140AYICIitmp
[2140] dbg: util: c:\python24\pyzor.bat check
<"C:\DOCUME~1\BRET~1.MIL\LOCALS~1\Temp\.spamassassin2140AYICIitmp"
[2140] dbg: pyzor: [1236] finished:  exit=0x0100
[2140] dbg: pyzor: got response: 66.250.40.33:24441_(200, 'OK')_0_0
[2140] dbg: info: leaving helper-app run mode

Indicating it was quite successful.

But the debug output when called from the perl app looks like this:

[2508] dbg: plugin: registering glue method for check_pyzor
(Mail::SpamAssassin::Plugin::Pyzor=HASH(0x19aa2a0))
[2508] dbg: pyzor: pyzor is available: c:\python24\pyzor.bat
[2508] dbg: info: entering helper-app run mode
[2508] dbg: pyzor: opening pipe: c:\python24\pyzor.bat  check <
C:\DOCUME~1\BRET~1.MIL\LOCALS~1\Temp\.spamassassin2508BZLMJutmp
[2508] dbg: util: c:\python24\pyzor.bat check
<"C:\DOCUME~1\BRET~1.MIL\LOCALS~1\Temp\.spamassassin2508BZLMJutmp"
[2508] dbg: info: leaving helper-app run mode
pyzor: check failed: Bad file descriptor

Indicating that it was not so successful.

Anyone have any idea what "Bad file descriptor" means and why you'd get
that when calling the SA class from a perl app and not when you run SA
from the command line?

I could post this to BZ if that's preferrable. Just wasn't sure
something was a bug when it's widely advertised not to work to begin
with. To me, this doesn't look like pyzor not working (since it works
quite well from the command line itself, and when called by SA from the
command line), but rather SA's calling of pyzor that's not working when
SA is called as a class under another app. Whether that's a problem with
SA, ActivePerl, ActivePython, the other perl app (CGPSA), or Windows is
something that's a bit over my head.

I will probably do a bit more testing with my own simple perl app to see
if it's failing all the time, or just from CGPSA.

Bret



Reply via email to