diff --git a/.gitignore b/.gitignore index e20b3037..3b1e0f43 100644 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,3 @@ riak.egg-info/ .eggs/ #*# *~ -*.ps1 diff --git a/README.md b/README.md index ba773034..529b7a20 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ Contributors * Mark Phillips * Mathias Meyer * Matt Heitzenroder +* [Matt Lohier](https://github.com/aquam8) * Mikhail Sobolev * Reid Draper * Russell Brown diff --git a/make.ps1 b/make.ps1 new file mode 100644 index 00000000..6d3c4181 --- /dev/null +++ b/make.ps1 @@ -0,0 +1,20 @@ +Set-StrictMode -Version Latest +$ErrorActionPreference = 'Stop' + +$env:RIAK_TEST_HOST = 'riak-test' +$env:RIAK_TEST_PROTOCOL = 'pbc' +$env:RIAK_TEST_PB_PORT = 10017 +$env:RUN_DATATYPES = 1 +$env:RUN_INDEXES = 1 +$env:RUN_POOL = 1 +$env:RUN_YZ = 1 + +flake8 --exclude=riak/pb riak commands.py setup.py version.py +if ($LastExitCode -ne 0) { + throw 'flake8 failed!' +} + +python setup.py test +if ($LastExitCode -ne 0) { + throw 'python tests failed!' +} diff --git a/riak/transports/tcp/connection.py b/riak/transports/tcp/connection.py index aabcb52e..054889ad 100644 --- a/riak/transports/tcp/connection.py +++ b/riak/transports/tcp/connection.py @@ -160,7 +160,14 @@ def _ssl_handshake(self): raise SecurityError(e) def _recv_msg(self): - msgbuf = self._recv_pkt() + try: + msgbuf = self._recv_pkt() + except socket.timeout as e: + # A timeout can leave the socket in an inconsistent state because + # it might still receive the data later and mix up with a + # subsequent request. + # https://github.com/basho/riak-python-client/issues/425 + raise BadResource(e) mv = memoryview(msgbuf) msg_code, = struct.unpack("B", mv[0:1]) data = mv[1:].tobytes()