<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/python-packages/kazoo.git/kazoo/protocol/connection.py, branch fix/github-action-trigger</title>
<subtitle>github.com: python-zk/kazoo.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/'/>
<entry>
<title>feat(core): make DNS resolution error retriable  (#631)</title>
<updated>2021-01-20T17:05:49+00:00</updated>
<author>
<name>krishna</name>
<email>62157128+ksarabu1@users.noreply.github.com</email>
</author>
<published>2021-01-20T17:05:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=e081024216bceaafc0d5022ce62f702667e2e9b3'/>
<id>e081024216bceaafc0d5022ce62f702667e2e9b3</id>
<content type='text'>
DNS resolution errors were previously not retriable, this commit allows it by changing the value returned when the DNS resolution fails.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
DNS resolution errors were previously not retriable, this commit allows it by changing the value returned when the DNS resolution fails.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): do not allow responses to choke request and ping processing</title>
<updated>2020-12-13T20:28:37+00:00</updated>
<author>
<name>Damien Diederen</name>
<email>dd@crosstwine.com</email>
</author>
<published>2020-11-17T15:16:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=89e0660371df940a4c15f5f6ab4c540bbd109d20'/>
<id>89e0660371df940a4c15f5f6ab4c540bbd109d20</id>
<content type='text'>
Without this patch, a single select event is processed by iteration in
the 'ConnectionHandler' event loop.

In a scenario where the client issues a large number of async requests
with an important amplification factor, e.g. 'get_children_async' on a
large node, it is possible for the 'select' operation to almost always
return a "response ready" socket--as the server is often able to
process, serialize and ship a new reponse while Kazoo processes the
previous one.

That response socket often (always?) ends up at the beginning of the
list returned by 'select'.

As only 'select_result[0]' is processed in the loop, this can cause
the client to ignore the "request ready" FD for a long time, during
which no requests or pings are sent.

In effect, asynchronously "browsing" a large tree of nodes can stretch
that duration to the point where it exceeds the timeout--causing the
client to lose its session.

This patch considers both descriptors after 'select', and also
arranges for pings to be sent in case it encounters an "unending"
stream of responses to requests which were sent earlier.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Without this patch, a single select event is processed by iteration in
the 'ConnectionHandler' event loop.

In a scenario where the client issues a large number of async requests
with an important amplification factor, e.g. 'get_children_async' on a
large node, it is possible for the 'select' operation to almost always
return a "response ready" socket--as the server is often able to
process, serialize and ship a new reponse while Kazoo processes the
previous one.

That response socket often (always?) ends up at the beginning of the
list returned by 'select'.

As only 'select_result[0]' is processed in the loop, this can cause
the client to ignore the "request ready" FD for a long time, during
which no requests or pings are sent.

In effect, asynchronously "browsing" a large tree of nodes can stretch
that duration to the point where it exceeds the timeout--causing the
client to lose its session.

This patch considers both descriptors after 'select', and also
arranges for pings to be sent in case it encounters an "unending"
stream of responses to requests which were sent earlier.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): handle SSL_WANT_READ/WRITE errors (#619)</title>
<updated>2020-06-27T15:07:45+00:00</updated>
<author>
<name>James E. Blair</name>
<email>corvus@inaugust.com</email>
</author>
<published>2020-06-27T15:07:45+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=cbdc4749edb5879099c1f9b832c055d9eeb52dea'/>
<id>cbdc4749edb5879099c1f9b832c055d9eeb52dea</id>
<content type='text'>
This adds a simple recovery path in case an SSL connection receives
an SSL_WANT_READ or WRITE error.  Either error can occur while
reading or writing.  The error indicates that the underlying
operation should be retried after the socket is once again readable
or writable (per the error code).

Closes #618

Co-authored-by: James E. Blair &lt;jeblair@redhat.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds a simple recovery path in case an SSL connection receives
an SSL_WANT_READ or WRITE error.  Either error can occur while
reading or writing.  The error indicates that the underlying
operation should be retried after the socket is once again readable
or writable (per the error code).

Closes #618

Co-authored-by: James E. Blair &lt;jeblair@redhat.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): improve SASL interface (#546)</title>
<updated>2019-02-12T20:03:43+00:00</updated>
<author>
<name>Charles-Henri de Boysson</name>
<email>ceache@users.noreply.github.com</email>
</author>
<published>2019-02-12T20:03:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=cd49b3fa01136848c5e6bfafb4c241b9704f249d'/>
<id>cd49b3fa01136848c5e6bfafb4c241b9704f249d</id>
<content type='text'>
Move SASL configuration out of auth_data into its own dictionary which exposes more SASL features (e.g. server service name, client principal...). Legacy syntax is still supported for backward compatibilty.
Remove SASL from auth_data and place it between 'connection' and 'zookeeper protocol level authentication' to simplify connection logic and bring code in line with the protocol stack (SASL wraps Zookeeper, not the other way around).
Consistent exception, `AuthFailedError`, raised during authentication failure between SASL and ZK authentication.
New 'SASLException' exception raised in case of SASL intrisinc failures.
Add support for GSSAPI (Kerberos).

Example connection using Digest-MD5:

  client = KazooClient(
      sasl_options={'mechanism': 'DIGEST-MD5',
                    'username': 'myusername',
                    'password': 'mypassword'}
  )

Example connection using GSSAPI (with some optional settings):

  client = KazooClient(
      sasl_options={'mechanism': 'GSSAPI',
                    'service': 'myzk',                  # optional
                    'principal': 'clt@EXAMPLE.COM'}     # optional
  )</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move SASL configuration out of auth_data into its own dictionary which exposes more SASL features (e.g. server service name, client principal...). Legacy syntax is still supported for backward compatibilty.
Remove SASL from auth_data and place it between 'connection' and 'zookeeper protocol level authentication' to simplify connection logic and bring code in line with the protocol stack (SASL wraps Zookeeper, not the other way around).
Consistent exception, `AuthFailedError`, raised during authentication failure between SASL and ZK authentication.
New 'SASLException' exception raised in case of SASL intrisinc failures.
Add support for GSSAPI (Kerberos).

Example connection using Digest-MD5:

  client = KazooClient(
      sasl_options={'mechanism': 'DIGEST-MD5',
                    'username': 'myusername',
                    'password': 'mypassword'}
  )

Example connection using GSSAPI (with some optional settings):

  client = KazooClient(
      sasl_options={'mechanism': 'GSSAPI',
                    'service': 'myzk',                  # optional
                    'principal': 'clt@EXAMPLE.COM'}     # optional
  )</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): reduce timeout for the first Connect() request (#540)</title>
<updated>2018-11-27T11:00:49+00:00</updated>
<author>
<name>Florian Margaine</name>
<email>ralt@users.noreply.github.com</email>
</author>
<published>2018-11-27T11:00:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=2ae392e69c4b2daca5d8e7f0e79b7ce90423e65c'/>
<id>2ae392e69c4b2daca5d8e7f0e79b7ce90423e65c</id>
<content type='text'>
In the case of a zookeeper server under pressure, it will typically try to maintain the quorum rather than handling client requests. In this kind of case, the quorum is maintained, the connection works, but the client is frozen there.

Retrying after a shorter timeout means we can reconnect to another server before losing the session altogether.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In the case of a zookeeper server under pressure, it will typically try to maintain the quorum rather than handling client requests. In this kind of case, the quorum is maintained, the connection works, but the client is frozen there.

Retrying after a shorter timeout means we can reconnect to another server before losing the session altogether.</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): get_children with include_data=True uses GetChildren2 types (#514)</title>
<updated>2018-10-08T21:01:00+00:00</updated>
<author>
<name>Jean-Marc Saffroy</name>
<email>jean.marc.saffroy@scality.com</email>
</author>
<published>2018-07-17T18:20:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=901cba7a40d67ec96c06abe109e3cf51a992b24d'/>
<id>901cba7a40d67ec96c06abe109e3cf51a992b24d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): allow authentification in RO and RW modes</title>
<updated>2018-10-08T17:21:43+00:00</updated>
<author>
<name>Stephen</name>
<email>stephen.sorriaux@gmail.com</email>
</author>
<published>2018-10-08T10:07:05+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=2320ab391f3804a9ddea9c5c86eb86467bb1dbf8'/>
<id>2320ab391f3804a9ddea9c5c86eb86467bb1dbf8</id>
<content type='text'>
Fixes the bug introduced by PR #512 where it is not possible to
connect in RO mode using authentication. Since the SASL
authentification feature, the _session_fallback method should
be called only after the SASL authentification is done. A new
method is added to the ConnectionHandler class in order to
correctly use KeeperState.CONNECTED or KeeperState.CONNECTED_RO.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes the bug introduced by PR #512 where it is not possible to
connect in RO mode using authentication. Since the SASL
authentification feature, the _session_fallback method should
be called only after the SASL authentification is done. A new
method is added to the ConnectionHandler class in order to
correctly use KeeperState.CONNECTED or KeeperState.CONNECTED_RO.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix(core): Use a copy of auth data when reconnecting (#509)</title>
<updated>2018-10-06T08:07:07+00:00</updated>
<author>
<name>arushiagg</name>
<email>arushi987@gmail.com</email>
</author>
<published>2018-10-06T08:07:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=de20be917855713169863b65a7aa0634fb78b698'/>
<id>de20be917855713169863b65a7aa0634fb78b698</id>
<content type='text'>
It is possible to race between processing a new addAuth request(which updates the client.auth_data set) and iterating through it during reconnect. To avoid set changes during iteration, make a copy.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is possible to race between processing a new addAuth request(which updates the client.auth_data set) and iterating through it during reconnect. To avoid set changes during iteration, make a copy.</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): add SASL DIGEST-MD5 support</title>
<updated>2018-10-06T07:14:48+00:00</updated>
<author>
<name>Stephen</name>
<email>stephen.sorriaux@gmail.com</email>
</author>
<published>2018-06-26T20:50:16+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=aa2664b880d1456c3ccf6515c6ca42653047e272'/>
<id>aa2664b880d1456c3ccf6515c6ca42653047e272</id>
<content type='text'>
This adds the possibility to connect to Zookeeper using DIGEST-MD5 SASL.
It uses the pure-sasl library to connect using SASL. In case the library
is missing, connection to Zookeeper will be done without any
authentification and a warning message will be displayed. Tests have
been added for this feature. Documentation also has been updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds the possibility to connect to Zookeeper using DIGEST-MD5 SASL.
It uses the pure-sasl library to connect using SASL. In case the library
is missing, connection to Zookeeper will be done without any
authentification and a warning message will be displayed. Tests have
been added for this feature. Documentation also has been updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(core): Added SSL support (#513)</title>
<updated>2018-09-25T22:03:40+00:00</updated>
<author>
<name>Stephen SORRIAUX</name>
<email>stephen.sorriaux@gmail.com</email>
</author>
<published>2018-09-25T22:03:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/python-packages/kazoo.git/commit/?id=35ce10669ace9d0d7e787793f0d4937d5d389f69'/>
<id>35ce10669ace9d0d7e787793f0d4937d5d389f69</id>
<content type='text'>
* client: Allow SSL use when communicating with Zookeeper, fixes #382

Zookeeper 3.5 supports SSL for client communications, this commit
adds support for it on the Kazoo side.

Note that you need to give the client the key, certificate and CA
files.

Co-Authored-By: Monty Taylor &lt;mordred@inaugust.com&gt;

* Added keyfile password for ssl connection

* Added a way to bypass ssl certification validation

* Added a timeout when using SSL connection
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* client: Allow SSL use when communicating with Zookeeper, fixes #382

Zookeeper 3.5 supports SSL for client communications, this commit
adds support for it on the Kazoo side.

Note that you need to give the client the key, certificate and CA
files.

Co-Authored-By: Monty Taylor &lt;mordred@inaugust.com&gt;

* Added keyfile password for ssl connection

* Added a way to bypass ssl certification validation

* Added a timeout when using SSL connection
</pre>
</div>
</content>
</entry>
</feed>
