Hello, I'm experiencing a strange problem. I've enabled FTP access to my Zope instance, but when I try and login it throws an exception: 2009-03-23T11:14:42 INFO ZServer Successful login. ------ 2009-03-23T11:15:07 ERROR ZServer uncaptured python exception, closing channel <ZServer.FTPServer.zope_ftp_channel connected 196.*.*.*:48336 at 0x2a9c0ecd40> (exceptions.AttributeError:'NoneType' object has no attribute '_fileno' [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|read|69] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|handle_read_event|391] [/home/zope/Python-2.4.4/lib/python2.4/asynchat.py|handle_read|89] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|recv|347] [/home/zope/Python-2.4.4/lib/python2.4/asynchat.py|handle_close|156] [/home/zope/instances/www.emss.co.za/parts/zope2/lib/python/ZServer/medusa/ftp_server.py|close|181] [/home/zope/instances/www.emss.co.za/parts/zope2/lib/python/ZServer/medusa/ftp_server.py|close|906] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|close|360] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|del_channel|248] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|__getattr__|366]) I thought it may be a Plone permissions problem as I was using a Plone user account, but even as the Zope admin user it throws the above error. Passive mode throws the exception. Active mode doesn't throw an error, but doesn't show a directory listing either. Zope version: Zope 2.10.6-final OS: Debian Sarge FTP clients used: FileZilla, standard Linux FTP client and Firefox (as a last resort). Regards, Gareth Allen
Gareth Allen wrote at 2009-3-23 12:27 +0200:
I'm experiencing a strange problem. I've enabled FTP access to my Zope instance, but when I try and login it throws an exception:
2009-03-23T11:14:42 INFO ZServer Successful login. ------ 2009-03-23T11:15:07 ERROR ZServer uncaptured python exception, closing channel <ZServer.FTPServer.zope_ftp_channel connected 196.*.*.*:48336 at 0x2a9c0ecd40> (exceptions.AttributeError:'NoneType' object has no attribute '_fileno'
Looks like the FTP server implementation is broken.
[/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|read|69] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|handle_read_event|391] [/home/zope/Python-2.4.4/lib/python2.4/asynchat.py|handle_read|89] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|recv|347] [/home/zope/Python-2.4.4/lib/python2.4/asynchat.py|handle_close|156] [/home/zope/instances/www.emss.co.za/parts/zope2/lib/python/ZServer/medusa/ftp_server.py|close|181] [/home/zope/instances/www.emss.co.za/parts/zope2/lib/python/ZServer/medusa/ftp_server.py|close|906] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|close|360] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|del_channel|248] [/home/zope/Python-2.4.4/lib/python2.4/asyncore.py|__getattr__|366])
The problem is probably in "...ZServer/medusa/ftp_server.py|close". I expect that the order of things is not right or that something redundant is done. A ZServer puts a channel object into 'asyncore's service map. Each element in this map must have a 'fileno' method that tells 'asyncore' which file number is associated. The exception above happens during closing the channel. "ftp_server.close" probably calls the channel's 'close' which calls 'del_channel' which accesses an object that meanwhile in "None" while it is still expected to be an object with a '_fileno' attribute. -- Dieter
participants (2)
-
Dieter Maurer -
Gareth Allen