I am running pyftpdlib under Centos 6 (using default python2.6.6) in a VMWare environment doing file I/O to an EXT3 local disk.
The server is handling a dozen or so connections from one source of 700x 16MB files with currently three clients retrieving the same data via directory soft-links.
The writer is saving a temporary file, attempting to delete the final filename then renaming the temporary file to the final filename.
The reader is reading single named files.
Occasionally ioloop, line 487 in modify is returning IOError: No such file or directory.
My current log has 3 instances all within the same hour:
1. Writer to home directory writing temporary file
2. Reader from client directory via softlink (same file successfully read 5 minutes earlier and 2 minutes later)
3. Writer to home directory writing temporary file
Traceback (most recent call last):
File "/usr/lib64/python2.6/asyncore.py", line 78, in read
obj.handle_read_event()
File "/usr/lib64/python2.6/asyncore.py", line 428, in handle_read_event
self.handle_read()
File "/usr/lib64/python2.6/asynchat.py", line 158, in handle_read
self.found_terminator()
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1322, in found_terminator
self.pre_process_command(line, cmd, arg)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1428, in pre_process_command
self.process_command(cmd, arg, **kwargs)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1439, in process_command
method(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 2220, in ftp_STOR
self.data_channel.enable_receiving(self._current_type, cmd)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 655, in enable_receiving
self.ioloop.modify(self._fileno, self.ioloop.READ)
File "/usr/lib/python2.6/site-packages/pyftpdlib/ioloop.py", line 487, in modify
self._poller.modify(fd, events)
IOError: [Errno 2] No such file or directory
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1658, in push_dtp_data
self.data_channel.push_with_producer(data)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 592, in push_with_producer
self.ioloop.modify(self._fileno, self.ioloop.WRITE)
File "/usr/lib/python2.6/site-packages/pyftpdlib/ioloop.py", line 487, in modify
self._poller.modify(fd, events)
IOError: [Errno 2] No such file or directory
Traceback (most recent call last):
File "/usr/lib64/python2.6/asyncore.py", line 78, in read
obj.handle_read_event()
File "/usr/lib64/python2.6/asyncore.py", line 428, in handle_read_event
self.handle_read()
File "/usr/lib64/python2.6/asynchat.py", line 158, in handle_read
self.found_terminator()
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1322, in found_terminator
self.pre_process_command(line, cmd, arg)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1428, in pre_process_command
self.process_command(cmd, arg, **kwargs)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 1439, in process_command
method(*args, **kwargs)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 2220, in ftp_STOR
self.data_channel.enable_receiving(self._current_type, cmd)
File "/usr/lib/python2.6/site-packages/pyftpdlib/handlers.py", line 655, in enable_receiving
self.ioloop.modify(self._fileno, self.ioloop.READ)
File "/usr/lib/python2.6/site-packages/pyftpdlib/ioloop.py", line 487, in modify
self._poller.modify(fd, events)
IOError: [Errno 2] No such file or directory