<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/trollius.git/tests/test_selector_events.py, branch remove-joinable-queue</title>
<subtitle>bitbucket.org: Obsolete (use python-packages/trollius-git)
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/'/>
<entry>
<title>Close transports in tests</title>
<updated>2015-01-15T13:23:32+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T13:23:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=e70e384fcebeb63a4fc0e690e47b4d24437a5c95'/>
<id>e70e384fcebeb63a4fc0e690e47b4d24437a5c95</id>
<content type='text'>
* Use test_utils.run_briefly() to execute pending calls to really close
  transports
* sslproto: mock also _SSLPipe.shutdown(), it's need to close the transport
* pipe test: the test doesn't close explicitly the PipeHandle, so ignore
  the warning instead
* test_popen: use the context manager ("with p:") to explicitly close pipes
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Use test_utils.run_briefly() to execute pending calls to really close
  transports
* sslproto: mock also _SSLPipe.shutdown(), it's need to close the transport
* pipe test: the test doesn't close explicitly the PipeHandle, so ignore
  the warning instead
* test_popen: use the context manager ("with p:") to explicitly close pipes
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #23243: Close explicitly transports in tests</title>
<updated>2015-01-15T12:08:17+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T12:08:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=f20d9b867e1bf0da4d9b453c6eb3d5c5135069ab'/>
<id>f20d9b867e1bf0da4d9b453c6eb3d5c5135069ab</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #23243: Close explicitly event loops in tests</title>
<updated>2015-01-15T12:10:31+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-15T12:10:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=419ebd1308cd5086bc8bcb5199a4051b905ae9c0'/>
<id>419ebd1308cd5086bc8bcb5199a4051b905ae9c0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Tests: explicitly close event loops and transports</title>
<updated>2015-01-14T21:58:14+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-14T21:58:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=3d5d99c4a3bbcedb1e338cdc3daa33aa0d09a122'/>
<id>3d5d99c4a3bbcedb1e338cdc3daa33aa0d09a122</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #23197: On SSL handshake failure, check if the waiter is cancelled</title>
<updated>2015-01-14T15:51:38+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-14T15:51:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=715607db3f5c67e8d3ca7a5e0e03e2316e232c9b'/>
<id>715607db3f5c67e8d3ca7a5e0e03e2316e232c9b</id>
<content type='text'>
before setting its exception.

Add unit tests for this case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
before setting its exception.

Add unit tests for this case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #22560: New SSL implementation based on ssl.MemoryBIO</title>
<updated>2015-01-13T23:15:15+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2015-01-13T23:15:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=83a22207da266446d00f45930fa2d38ad26d3a33'/>
<id>83a22207da266446d00f45930fa2d38ad26d3a33</id>
<content type='text'>
The new SSL implementation is based on the new ssl.MemoryBIO which is only
available on Python 3.5. On Python 3.4 and older, the legacy SSL implementation
(using SSL_write, SSL_read, etc.) is used. The proactor event loop only
supports the new implementation.

The new asyncio.sslproto module adds _SSLPipe, SSLProtocol and
_SSLProtocolTransport classes. _SSLPipe allows to "wrap" or "unwrap" a socket
(switch between cleartext and SSL/TLS).

Patch written by Antoine Pitrou. sslproto.py is based on gruvi/ssl.py of the
gruvi project written by Geert Jansen.

This change adds SSL support to ProactorEventLoop on Python 3.5 and newer!

It becomes also possible to implement STARTTTLS: switch a cleartext socket to
SSL.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The new SSL implementation is based on the new ssl.MemoryBIO which is only
available on Python 3.5. On Python 3.4 and older, the legacy SSL implementation
(using SSL_write, SSL_read, etc.) is used. The proactor event loop only
supports the new implementation.

The new asyncio.sslproto module adds _SSLPipe, SSLProtocol and
_SSLProtocolTransport classes. _SSLPipe allows to "wrap" or "unwrap" a socket
(switch between cleartext and SSL/TLS).

Patch written by Antoine Pitrou. sslproto.py is based on gruvi/ssl.py of the
gruvi project written by Geert Jansen.

This change adds SSL support to ProactorEventLoop on Python 3.5 and newer!

It becomes also possible to implement STARTTTLS: switch a cleartext socket to
SSL.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix pyflakes warnings: remove unused imports and variables</title>
<updated>2014-12-19T21:20:44+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-12-19T21:20:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=7020608553aa29f0a6075482d6b99c0c7f26d9d3'/>
<id>7020608553aa29f0a6075482d6b99c0c7f26d9d3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Python issue #22921: Don't require OpenSSL SNI to pass hostname to ssl</title>
<updated>2014-11-25T16:23:22+00:00</updated>
<author>
<name>Benjamin Peterson</name>
<email>benjamin@python.org</email>
</author>
<published>2014-11-25T16:23:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=28f244972289daba3fae766a6354ef4064288392'/>
<id>28f244972289daba3fae766a6354ef4064288392</id>
<content type='text'>
functions. Patch by Donald Stufft.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
functions. Patch by Donald Stufft.
</pre>
</div>
</content>
</entry>
<entry>
<title>Tulip issue #205: Fix a race condition in BaseSelectorEventLoop.sock_connect()</title>
<updated>2014-08-31T13:06:28+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-08-31T13:06:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=83bf2d5f2b45a4e2f27c57a96288cc97c52d9e85'/>
<id>83bf2d5f2b45a4e2f27c57a96288cc97c52d9e85</id>
<content type='text'>
There is a race condition in create_connection() used with wait_for() to have a
timeout. sock_connect() registers the file descriptor of the socket to be
notified of write event (if connect() raises BlockingIOError). When
create_connection() is cancelled with a TimeoutError, sock_connect() coroutine
gets the exception, but it doesn't unregister the file descriptor for write
event. create_connection() gets the TimeoutError and closes the socket.

If you call again create_connection(), the new socket will likely gets the same
file descriptor, which is still registered in the selector. When sock_connect()
calls add_writer(), it tries to modify the entry instead of creating a new one.

This issue was originally reported in the Trollius project, but the bug comes
from Tulip in fact (Trollius is based on Tulip):
https://bitbucket.org/enovance/trollius/issue/15/after-timeouterror-on-wait_for

This change fixes the race condition. It also makes sock_connect() more
reliable (and portable) is sock.connect() raises an InterruptedError.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a race condition in create_connection() used with wait_for() to have a
timeout. sock_connect() registers the file descriptor of the socket to be
notified of write event (if connect() raises BlockingIOError). When
create_connection() is cancelled with a TimeoutError, sock_connect() coroutine
gets the exception, but it doesn't unregister the file descriptor for write
event. create_connection() gets the TimeoutError and closes the socket.

If you call again create_connection(), the new socket will likely gets the same
file descriptor, which is still registered in the selector. When sock_connect()
calls add_writer(), it tries to modify the entry instead of creating a new one.

This issue was originally reported in the Trollius project, but the bug comes
from Tulip in fact (Trollius is based on Tulip):
https://bitbucket.org/enovance/trollius/issue/15/after-timeouterror-on-wait_for

This change fixes the race condition. It also makes sock_connect() more
reliable (and portable) is sock.connect() raises an InterruptedError.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't log expected errors in unit tests</title>
<updated>2014-07-30T13:52:28+00:00</updated>
<author>
<name>Victor Stinner</name>
<email>victor.stinner@gmail.com</email>
</author>
<published>2014-07-30T13:52:28+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/trollius.git/commit/?id=f0528c3da86c2df819211bc3ca0829fcdf079a39'/>
<id>f0528c3da86c2df819211bc3ca0829fcdf079a39</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
