EINPROGRESS?

Posted by asher on 2006-11-27 15:29

ActivePerl 5.8.8.819 doesn't seem willing to use Net::FTP -- if I try...

use Net::FTP; $handle = Net::FTP->new("localhost") or die "Failure!\n";

I get...

No errno EINPROGRESS at C:/Perl/site/lib/Errno.pm line 82

I found this discussed on Google Groups, but all the posts are ancient, and say this was or soon would be fixed. Is it still broken and everyone knows about it but me, or... I don't quite follow this.

It's a bog-standard installation -- I'm using EPIC for Eclipse, but I ran the test snippet outside that environment. For what it's worth, Perl is at least right: there sure isn't an EINPROGRESS in that file.

I sincerely appreciate any help you can give me.

[Edit for clarification: I'm running WinXP, and I've managed to successfully use Mail::IMAPclient, so I can do something networky with this system, at least.]

kevinw
ActiveState Staff
Tue, 2006-11-28 11:28

Hello asher,

I can't reproduce this problem on a WinXP Pro SP2 system using ActivePerl 5.8.8.819. Something I notice is that the error message you give above references C:\Perl\site\lib\Errno.pm -- this file does not exist by default in ActivePerl. Errno.pm is C:\Perl\lib\Errno.pm there. Additionally, Errno.pm in 5.8.8.819 does not have a warn() or die() statement or anything that might generate the EINPROGRESS warning shown above.

EINPROGRESS is a signal that gets sent (on Unix machines, I don't know for sure about Windows) to a process that tries to connect() to a non-blocking socket, so this particular error suggests there's more going on there -- are you doing this as part of a threaded program?

Cheers,

kjw

asher | Tue, 2006-11-28 11:54

Wah-HAH! You tracked it down.

Wasn't threading at all -- seems that some packages I got from ppm (the Mail::Box set) required the "Errno" package, which installed its own custom version of Errno.pm, which invisibly ruined my day. I removed them, and the test now works.

Thanks a lot!

(Now to figure out just how badly I need those packages I removed...)