qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alan Conway (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (QPID-3922) Python tests fail/hang with ulimit -n 65536
Date Mon, 15 Oct 2012 20:19:03 GMT

    [ https://issues.apache.org/jira/browse/QPID-3922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13476391#comment-13476391
] 

Alan Conway edited comment on QPID-3922 at 10/15/12 8:18 PM:
-------------------------------------------------------------

The problematic code seems to be this in tests/messaging/endpoints.py:
{noformat}
  def use_fds(self):
    fds = []
    try:
      while True:
        fds.append(os.open(getattr(os, "devnull", "/dev/null"), os.O_RDONLY))
    except OSError, e:
      if e.errno != errno.EMFILE:
        raise e
      else:
        return fds
{noformat}
I'm not sure what the intent is here, but if ulimit is set high then select will choke on
the resulting set.

Would a simple fixed-size set do the job for this test? Is there a way to find out the max
set size for selecct at run time?


                
      was (Author: aconway):
    The problematic code seems to be this in tests/messaging/endpoints.py:

  def use_fds(self):
    fds = []
    try:
      while True:
        fds.append(os.open(getattr(os, "devnull", "/dev/null"), os.O_RDONLY))
    except OSError, e:
      if e.errno != errno.EMFILE:
        raise e
      else:
        return fds

I'm not sure what the intent is here, but if ulimit is set high then select will choke on
the resulting set.

Would a simple fixed-size set do the job for this test? Is there a way to find out the max
set size for selecct at run time?


                  
> Python tests fail/hang with ulimit -n 65536
> -------------------------------------------
>
>                 Key: QPID-3922
>                 URL: https://issues.apache.org/jira/browse/QPID-3922
>             Project: Qpid
>          Issue Type: Bug
>          Components: Python Client
>    Affects Versions: 0.17
>            Reporter: Alan Conway
>            Assignee: Rafael H. Schloming
>            Priority: Minor
>
> Some of the python tests fail and hang if run with ulimit -n 65536. To reproduce in a
c++ build go to the src/tests directory and:
> su root -c 'ulimit -n 65536; make check TESTS="start_broker python_tests stop_broker"
PYTHON_TESTS=*endpoints.SetupTests*'
> Several tests fail and then testOpenReconnectURLs hangs as follows:
> qpid.tests.messaging.endpoints.SetupTests.testOpenCloseResourceLeaks ................
start
>   Exception in thread Thread-1:
>   Traceback (most recent call last):
>     File "/usr/lib64/python2.6/threading.py", line 532, in __bootstrap_inner
>       self.run()
>     File "/usr/lib64/python2.6/threading.py", line 484, in run
>       self.__target(*self.__args, **self.__kwargs)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/selector.py", line 119, in run
>       rd, wr, ex = select(self.reading, self.writing, (), timeout)
>   ValueError: filedescriptor out of range in select()
>   
> qpid.tests.messaging.endpoints.SetupTests.testOpenCloseResourceLeaks ................
fail
> Error during test:  Traceback (most recent call last):
>     File "/home/aconway/qpidha/opt/src/tests/python/commands/qpid-python-test", line
340, in run
>       phase()
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/tests/messaging/endpoints.py",
line 86, in testOpenCloseResourceLeaks
>       conn = Connection.establish(self.broker, **self.connection_options())
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
68, in establish
>       conn.open()
>     File "<string>", line 6, in open
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
256, in open
>       self.attach()
>     File "<string>", line 6, in attach
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
274, in attach
>       self._ewait(lambda: self._transport_connected and not self._unlinked())
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
208, in _ewait
>       result = self._wait(lambda: self.error or predicate(), timeout)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
193, in _wait
>       return self._waiter.wait(predicate, timeout=timeout)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/concurrency.py", line 57, in
wait
>       self.condition.wait(3)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/concurrency.py", line 96, in
wait
>       sw.wait(timeout)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/compat.py", line 53, in wait
>       ready, _, _ = select([self], [], [], timeout)
>   ValueError: filedescriptor out of range in select()
> qpid.tests.messaging.endpoints.SetupTests.testOpenFailResourceLeaks .................
fail
> Error during test:  Traceback (most recent call last):
>     File "/home/aconway/qpidha/opt/src/tests/python/commands/qpid-python-test", line
340, in run
>       phase()
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/tests/messaging/endpoints.py",
line 102, in testOpenFailResourceLeaks
>       conn._wait(lambda: False, timeout=0.001)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/messaging/endpoints.py", line
193, in _wait
>       return self._waiter.wait(predicate, timeout=timeout)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/concurrency.py", line 59, in
wait
>       self.condition.wait(timeout - passed)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/concurrency.py", line 96, in
wait
>       sw.wait(timeout)
>     File "/home/aconway/qpidha/opt/src/tests/python/qpid/compat.py", line 53, in wait
>       ready, _, _ = select([self], [], [], timeout)
>   ValueError: filedescriptor out of range in select()
> qpid.tests.messaging.endpoints.SetupTests.testOpenReconnectURLs ....

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message