<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/eventlet.git, branch master</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>tests: getaddrinfo(host, 0) is not supported on OpenIndiana platform</title>
<updated>2023-03-27T19:07:15+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2023-03-27T19:07:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=dd2f0ea32d6b6d064be52fe8e27fca275985cdc4'/>
<id>dd2f0ea32d6b6d064be52fe8e27fca275985cdc4</id>
<content type='text'>
https://github.com/eventlet/eventlet/issues/791
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/issues/791
</pre>
</div>
</content>
</entry>
<entry>
<title>dep: greenlet&gt;=1.0 removing unused clear_sys_exc_info stub</title>
<updated>2023-03-27T16:16:48+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2023-01-22T04:10:35+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=84f9c875571a5c3935397c00b107f8d4d88a0a45'/>
<id>84f9c875571a5c3935397c00b107f8d4d88a0a45</id>
<content type='text'>
fixes https://github.com/eventlet/eventlet/issues/763
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes https://github.com/eventlet/eventlet/issues/763
</pre>
</div>
</content>
</entry>
<entry>
<title>build: include tox.ini and repo docs in PyPI package</title>
<updated>2023-03-01T07:10:17+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2023-03-01T07:10:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=aaa871e445e9b9edeafdd1d079742ebc6523e1b4'/>
<id>aaa871e445e9b9edeafdd1d079742ebc6523e1b4</id>
<content type='text'>
fixes https://github.com/eventlet/eventlet/issues/790
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes https://github.com/eventlet/eventlet/issues/790
</pre>
</div>
</content>
</entry>
<entry>
<title>wsgi: Allow keepalive option to be a timeout</title>
<updated>2023-02-22T20:04:01+00:00</updated>
<author>
<name>Tim Burke</name>
<email>tim.burke@gmail.com</email>
</author>
<published>2023-02-11T01:57:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=6893078d04fa5d46b53269691202e0f709be905a'/>
<id>6893078d04fa5d46b53269691202e0f709be905a</id>
<content type='text'>
Sometimes the server pool fills up; all max_size greenthreads are
already in use with other connections. One more connection gets
accept()ed, but then has to wait for a slot to open up to actually be
handled.

This works out fine if your clients tend to make a single request then
close the connection upon receiving a response. It works out OK-ish when
clients are continually pipelining requests; the new connection still
has to wait, but at least there's plenty of work getting processed --
it's defensible. It can work out pretty terribly if clients tend to hold
on to connections "just in case" -- we're ignoring fresh work from a new
client just so we can be ready-to-go if an existing connection wakes up.

There are a couple existing tunings we can use, but they can each have
downsides:

- Increasing max_size is nice for dealing with idle connections, but can
  cause hub contention and high latency variance when all those
  connections are actually busy.
- socket_timeout can be used to limit the idle socket time, but it
  *also* impacts send/recv operations while processing a request, which
  may not be desirable.
- keepalive can be set to False, disabling request pipelining entirely.

Change the keepalive option to wsgi.server so it can be the timeout to
use while waiting for a new request, separate from socket_timeout. By
default, socket_timeout continues to be used.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sometimes the server pool fills up; all max_size greenthreads are
already in use with other connections. One more connection gets
accept()ed, but then has to wait for a slot to open up to actually be
handled.

This works out fine if your clients tend to make a single request then
close the connection upon receiving a response. It works out OK-ish when
clients are continually pipelining requests; the new connection still
has to wait, but at least there's plenty of work getting processed --
it's defensible. It can work out pretty terribly if clients tend to hold
on to connections "just in case" -- we're ignoring fresh work from a new
client just so we can be ready-to-go if an existing connection wakes up.

There are a couple existing tunings we can use, but they can each have
downsides:

- Increasing max_size is nice for dealing with idle connections, but can
  cause hub contention and high latency variance when all those
  connections are actually busy.
- socket_timeout can be used to limit the idle socket time, but it
  *also* impacts send/recv operations while processing a request, which
  may not be desirable.
- keepalive can be set to False, disabling request pipelining entirely.

Change the keepalive option to wsgi.server so it can be the timeout to
use while waiting for a new request, separate from socket_timeout. By
default, socket_timeout continues to be used.
</pre>
</div>
</content>
</entry>
<entry>
<title>dns: support host as bytes in getaddrinfo, resolve</title>
<updated>2023-02-02T02:00:37+00:00</updated>
<author>
<name>Gorka Eguileor</name>
<email>geguileo@redhat.com</email>
</author>
<published>2020-02-12T12:05:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=f724f4ac0a6ed01c6a882412963b088e6c588a54'/>
<id>f724f4ac0a6ed01c6a882412963b088e6c588a54</id>
<content type='text'>
Relevant traceback:

```
  File "dns/resolver.py", line 858, in query
    if qname.is_absolute():
AttributeError: 'bytes' object has no attribute 'is_absolute'
```

Fixes https://github.com/eventlet/eventlet/issues/599

Co-authored-by: Sergey Shepelev &lt;temotor@gmail.com&gt;
Co-authored-by: Tim Burke &lt;tim.burke@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Relevant traceback:

```
  File "dns/resolver.py", line 858, in query
    if qname.is_absolute():
AttributeError: 'bytes' object has no attribute 'is_absolute'
```

Fixes https://github.com/eventlet/eventlet/issues/599

Co-authored-by: Sergey Shepelev &lt;temotor@gmail.com&gt;
Co-authored-by: Tim Burke &lt;tim.burke@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>green.http: collections.Iterable alias removed in Python 3.10, CI 3.10, drop non-essential CI against 2.7 to 3.6</title>
<updated>2023-01-22T04:35:32+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2023-01-22T01:52:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=0e46f0410205ac7a60f9a5d3be401677eab97e03'/>
<id>0e46f0410205ac7a60f9a5d3be401677eab97e03</id>
<content type='text'>
fixes https://github.com/eventlet/eventlet/issues/740

related to https://github.com/eventlet/eventlet/pull/715
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
fixes https://github.com/eventlet/eventlet/issues/740

related to https://github.com/eventlet/eventlet/pull/715
</pre>
</div>
</content>
</entry>
<entry>
<title>hubs: drop pyevent hub</title>
<updated>2023-01-22T00:26:31+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2018-02-17T19:41:37+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=80b7cfaf86e9d787250c1a3924248a22c8b6baad'/>
<id>80b7cfaf86e9d787250c1a3924248a22c8b6baad</id>
<content type='text'>
https://github.com/eventlet/eventlet/pull/657
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/pull/657
</pre>
</div>
</content>
</entry>
<entry>
<title>doc: fix sys.path for shared sphinx-build</title>
<updated>2023-01-20T16:33:09+00:00</updated>
<author>
<name>Tomasz Kłoczko</name>
<email>kloczek@github.com</email>
</author>
<published>2023-01-20T16:33:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=3740657dd7f01f0630a8753f9d7434bff3875d82'/>
<id>3740657dd7f01f0630a8753f9d7434bff3875d82</id>
<content type='text'>
https://github.com/eventlet/eventlet/issues/785

Signed-off-by: Sergey Shepelev &lt;temotor@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/eventlet/eventlet/issues/785

Signed-off-by: Sergey Shepelev &lt;temotor@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: CI upgrades, pycodestyle fix 2 empty lines after class/def</title>
<updated>2023-01-18T05:55:02+00:00</updated>
<author>
<name>Sergey Shepelev</name>
<email>temotor@gmail.com</email>
</author>
<published>2023-01-17T21:58:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=d05b2a9dde875eece42c8c09c7a793dd43407cc3'/>
<id>d05b2a9dde875eece42c8c09c7a793dd43407cc3</id>
<content type='text'>
- github actions ubuntu-latest switched to 22.04 with python3&gt;=3.7
- tool: pep8 was renamed and upgraded to pycodestyle 2.1, fixed 2 empty lines after class/def
- common github actions upgrade to v3 https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- github actions ubuntu-latest switched to 22.04 with python3&gt;=3.7
- tool: pep8 was renamed and upgraded to pycodestyle 2.1, fixed 2 empty lines after class/def
- common github actions upgrade to v3 https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/
</pre>
</div>
</content>
</entry>
<entry>
<title>Change ssl to return a socket.timeout exception on timeout instead of an SSLError</title>
<updated>2023-01-18T01:02:49+00:00</updated>
<author>
<name>Bas Zoetekouw</name>
<email>bas.zoetekouw@surf.nl</email>
</author>
<published>2022-12-21T08:32:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/eventlet.git/commit/?id=caf9f9983a43c537efff5c4c9ff1d543af6e1220'/>
<id>caf9f9983a43c537efff5c4c9ff1d543af6e1220</id>
<content type='text'>
Back in Python 3.2, ssl.SSLError used to be a subclass of socket.error (see
https://docs.python.org/3/library/ssl.html#exceptions), so timeouts on
monkeypatched ssl sockets would be properly caught by socket.timeout
excpetion handlers in applications.  However, since Python 3.3 ssl.SSLerror
is a subclass of OSError, which signifies a different (typically fatal)
type of error that is usually not handled gracefully by applications.

By changing the timeout excpetion back to socket.timeout, libraries such
as pymysql and redis will again properly support TLS-connections in
monkeypatched apoplications.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Back in Python 3.2, ssl.SSLError used to be a subclass of socket.error (see
https://docs.python.org/3/library/ssl.html#exceptions), so timeouts on
monkeypatched ssl sockets would be properly caught by socket.timeout
excpetion handlers in applications.  However, since Python 3.3 ssl.SSLerror
is a subclass of OSError, which signifies a different (typically fatal)
type of error that is usually not handled gracefully by applications.

By changing the timeout excpetion back to socket.timeout, libraries such
as pymysql and redis will again properly support TLS-connections in
monkeypatched apoplications.
</pre>
</div>
</content>
</entry>
</feed>
