Uploaded image for project: 'Qpid'
  1. Qpid
  2. QPID-5588

Python client fails if socket fd > FD_SETSIZE

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.26, 0.27
    • 0.28
    • Python Client
    • None

    Description

      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.

      Attachments

        Activity

          People

            kgiusti Ken Giusti
            kgiusti Ken Giusti
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: