You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Robbie Gemmell (Updated) (JIRA)" <ji...@apache.org> on 2012/02/26 22:44:49 UTC

[jira] [Updated] (QPID-3237) Python broker tests hang in environments where the available file handles > 1024

     [ https://issues.apache.org/jira/browse/QPID-3237?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robbie Gemmell updated QPID-3237:
---------------------------------

    Component/s: Python Test Suite
    
> Python broker tests hang in environments where the available file handles > 1024
> --------------------------------------------------------------------------------
>
>                 Key: QPID-3237
>                 URL: https://issues.apache.org/jira/browse/QPID-3237
>             Project: Qpid
>          Issue Type: Bug
>          Components: Python Test Suite
>         Environment: As root, append to the /etc/security/limits.conf the following line to assign yourself the ability to open 64k file handles (substitute your login id):
> kpvdr	-	nofile	65536
> then log out/in as yourself.
>            Reporter: Kim van der Riet
>
> When the environment is modified to allow the qpid user to open more than 1024 file handles, then the following python tests fail/hang. The underlying cause seems to be the use of the python call to select(), which uses the underlying unix ::select() call. However, it is a well-known limitation that the unix select() cannot handle more than 1024 file handles. Perhaps switching the tests to using epoll would solve this issue.
> qpid.tests.messaging.endpoints.SetupTests.testOpenCloseResourceLeaks ................................................................................................. start
>   Exception in thread Thread-81:
>   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/kpvdr/mrg/qpid/cpp/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/kpvdr/mrg/qpid/cpp/src/tests/python/commands/qpid-python-test", line 311, in run
>       phase()
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/tests/messaging/endpoints.py", line 86, in testOpenCloseResourceLeaks
>       conn = Connection.establish(self.broker, **self.connection_options())
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 68, in establish
>       conn.open()
>     File "<string>", line 6, in open
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 244, in open
>       self.attach()
>     File "<string>", line 6, in attach
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 262, in attach
>       self._ewait(lambda: self._transport_connected and not self._unlinked())
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 196, in _ewait
>       result = self._wait(lambda: self.error or predicate(), timeout)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 181, in _wait
>       return self._waiter.wait(predicate, timeout=timeout)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/concurrency.py", line 57, in wait
>       self.condition.wait(3)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/concurrency.py", line 96, in wait
>       sw.wait(timeout)
>     File "/home/kpvdr/mrg/qpid/cpp/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/kpvdr/mrg/qpid/cpp/src/tests/python/commands/qpid-python-test", line 311, in run
>       phase()
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/tests/messaging/endpoints.py", line 102, in testOpenFailResourceLeaks
>       conn._wait(lambda: False, timeout=0.001)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/messaging/endpoints.py", line 181, in _wait
>       return self._waiter.wait(predicate, timeout=timeout)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/concurrency.py", line 59, in wait
>       self.condition.wait(timeout - passed)
>     File "/home/kpvdr/mrg/qpid/cpp/src/tests/python/qpid/concurrency.py", line 96, in wait
>       sw.wait(timeout)
>     File "/home/kpvdr/mrg/qpid/cpp/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 ......................................................................................................<hang>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org