<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/eventlet.git/tests/__init__.py, branch event-wait-timeout</title>
<subtitle>github.com: eventlet/eventlet.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/'/>
<entry>
<title>Travis broke ipv6, allow failure; test against Python 2.7</title>
<updated>2017-12-04T23:15:31+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2017-12-04T20:25:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=73d23bd1b86b24a97f9947f2db077ee431b8d85f'/>
<id>73d23bd1b86b24a97f9947f2db077ee431b8d85f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>patcher: set locked RLocks' owner only when patching existing locks</title>
<updated>2017-05-11T02:32:43+00:00</updated>
<author>
<name>Quan Tian</name>
<email>qtian@vmware.com</email>
</author>
<published>2017-05-09T07:34:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=f72cc96a70f9e9d23fc6e00d994263829b672be0'/>
<id>f72cc96a70f9e9d23fc6e00d994263829b672be0</id>
<content type='text'>
For Python 2, patching existing locks replaces RLock._RLock__owner with current
thread ID no matter the old lock is locked or not and thus an unlocked RLock
would have a non None owner (e.g. &lt;_RLock owner=140106584489808 count=0&gt;).
Then if we acquire the RLock in the same thread, the method RLock.acquire would
not invoke the _RLock__block.acquire() since it treats this is a recursive
acquire by checking current thread ID. And then the following RLock.release
would invoke the _RLock__block.release method resulting in the counter of
Semaphore being improved to 2.

There should be only two states being expected for RLock:
1. owner != None and count &gt; 0
2. owner == None and count == 0

This patch fixs it by only setting locked RLocks' owner during patching.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For Python 2, patching existing locks replaces RLock._RLock__owner with current
thread ID no matter the old lock is locked or not and thus an unlocked RLock
would have a non None owner (e.g. &lt;_RLock owner=140106584489808 count=0&gt;).
Then if we acquire the RLock in the same thread, the method RLock.acquire would
not invoke the _RLock__block.acquire() since it treats this is a recursive
acquire by checking current thread ID. And then the following RLock.release
would invoke the _RLock__block.release method resulting in the counter of
Semaphore being improved to 2.

There should be only two states being expected for RLock:
1. owner != None and count &gt; 0
2. owner == None and count == 0

This patch fixs it by only setting locked RLocks' owner during patching.
</pre>
</div>
</content>
</entry>
<entry>
<title>New timeout error API: .is_timeout=True on exception object</title>
<updated>2017-01-10T17:49:15+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2016-12-22T01:35:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=54be7593ab8a35c9c80683c6d1af0adbe7763fa4'/>
<id>54be7593ab8a35c9c80683c6d1af0adbe7763fa4</id>
<content type='text'>
Please use eventlet.is_timeout(ex) or getattr(ex, 'is_timeout', False)
instead of searching substrings in exception message.

https://github.com/eventlet/eventlet/pull/346
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Please use eventlet.is_timeout(ex) or getattr(ex, 'is_timeout', False)
instead of searching substrings in exception message.

https://github.com/eventlet/eventlet/pull/346
</pre>
</div>
</content>
</entry>
<entry>
<title>test_import_patched_defaults bended to play with pyopenssl&gt;=16.1.0</title>
<updated>2016-12-31T17:50:04+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2016-12-30T03:54:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=b7b357189d7a7a2b740c89c30621f920c83d4c9c'/>
<id>b7b357189d7a7a2b740c89c30621f920c83d4c9c</id>
<content type='text'>
Basically this patch replaces urllib with custom module that is guaranteed not imported before patching.
https://github.com/eventlet/eventlet/issues/362

More general issue here https://github.com/eventlet/eventlet/issues/368
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Basically this patch replaces urllib with custom module that is guaranteed not imported before patching.
https://github.com/eventlet/eventlet/issues/362

More general issue here https://github.com/eventlet/eventlet/issues/368
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: str/bytes typo on run_python timeout</title>
<updated>2016-11-05T19:43:35+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2016-11-05T16:28:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=4872be77001bde7b393f8973779a15c65ce36086'/>
<id>4872be77001bde7b393f8973779a15c65ce36086</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: configurable timeout for run_python/isolated</title>
<updated>2016-08-10T06:22:15+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2016-08-10T06:20:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=db415e58b3bde6786bd565588285924c1f751d89'/>
<id>db415e58b3bde6786bd565588285924c1f751d89</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>patcher: patch existing threading locks; Thanks to Alexis Lee</title>
<updated>2016-04-18T20:07:00+00:00</updated>
<author>
<name>Alexis Lee</name>
<email>github@lxsli.co.uk</email>
</author>
<published>2016-04-18T20:07:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=bbeaa2e3a0b6da26af08f5e6734767e04c187c5b'/>
<id>bbeaa2e3a0b6da26af08f5e6734767e04c187c5b</id>
<content type='text'>
In projects which dynamically determine whether to activate eventlet,
it can be hard not to import a low level module like logging before
eventlet. When logging is imported it initialises a threading.RLock
which it uses to protect the logging configuration. If two
greenthreads attempt to claim this lock, the second one will block the
/native/ thread not just itself. As green systems usually only have
one native thread, this will freeze the whole system.

Search the GC for unsafe RLocks and replace their internal Lock with a
safe one while monkey-patching.

The tests pass, but were they to fail, the test process would never
return. To deal with this, I've added a test dependency on
subprocess32 which is a backport of the stdlib subprocess module from
Python3. This offers a timeout option on Popen#communicate, which I've
arbitrarily set at 30 seconds.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In projects which dynamically determine whether to activate eventlet,
it can be hard not to import a low level module like logging before
eventlet. When logging is imported it initialises a threading.RLock
which it uses to protect the logging configuration. If two
greenthreads attempt to claim this lock, the second one will block the
/native/ thread not just itself. As green systems usually only have
one native thread, this will freeze the whole system.

Search the GC for unsafe RLocks and replace their internal Lock with a
safe one while monkey-patching.

The tests pass, but were they to fail, the test process would never
return. To deal with this, I've added a test dependency on
subprocess32 which is a backport of the stdlib subprocess module from
Python3. This offers a timeout option on Popen#communicate, which I've
arbitrarily set at 30 seconds.</pre>
</div>
</content>
</entry>
<entry>
<title>little clean up</title>
<updated>2016-02-12T15:42:03+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2016-02-11T20:28:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=7f08dfd25077d9044eec361ba2d890bbfd7d3815'/>
<id>7f08dfd25077d9044eec361ba2d890bbfd7d3815</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>travis: Allow more CPU usage</title>
<updated>2016-01-06T23:09:47+00:00</updated>
<author>
<name>Jakub Stasiak</name>
<email>jakub@stasiak.at</email>
</author>
<published>2016-01-06T23:09:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=74f418bcf38ac128cadad641d59d7ecd8f127340'/>
<id>74f418bcf38ac128cadad641d59d7ecd8f127340</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>greenio: socket.recv() could return str; Thanks to jerzyk</title>
<updated>2015-09-06T00:43:42+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2015-09-06T00:43:42+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=001f31f8f8dfc581795f282609027b26c8a31833'/>
<id>001f31f8f8dfc581795f282609027b26c8a31833</id>
<content type='text'>
It must always return bytes.
https://github.com/eventlet/eventlet/issues/245
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It must always return bytes.
https://github.com/eventlet/eventlet/issues/245
</pre>
</div>
</content>
</entry>
</feed>
