Ken Giusti created QPID-5588:
--------------------------------

             Summary: Python client fails if socket fd > FD_SETSIZE
                 Key: QPID-5588
                 URL: https://issues.apache.org/jira/browse/QPID-5588
             Project: Qpid
          Issue Type: Bug
          Components: Python Client
    Affects Versions: 0.26, 0.27
            Reporter: Ken Giusti
            Assignee: Ken Giusti
             Fix For: Future


The python client uses select() to wait for socket activity.  select() is used 
because it is available on most platforms.  However, select() has a hard limit 
on the _value_ of an file descriptor.  If a socket is created that has a file 
descriptor > the value of FD_SETSIZE, the following exception is thrown:

  Exception in thread Thread-1:
  Traceback (most recent call last):
    File "/usr/lib64/python2.4/threading.py", line 442, in __bootstrap
      self.run()
    File "/usr/lib64/python2.4/threading.py", line 422, in run
      self.__target(*self.__args, **self.__kwargs)
    File "/usr/lib/python2.4/site-packages/qpid/selector.py", line 119, in run
      rd, wr, ex = select(self.reading, self.writing, (), timeout)
  ValueError: filedescriptor out of range in select()

Note well: this is caused by the _value_ of the fd, not the number of open fds. 
 A process that has many files open, then attempts to create a qpid connection, 
could hit this problem.




--
This message was sent by Atlassian JIRA
(v6.1.5#6160)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to