From 84846a2eef868d599b8600b25568088a0322ccae Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Tue, 27 Nov 2018 14:01:19 -0500 Subject: [PATCH 1/8] Closes issue #1549 Fix SSL connection testing in Python 3.7 --- kafka/conn.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/kafka/conn.py b/kafka/conn.py index 471bae7ed..db0cefb45 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -357,6 +357,10 @@ def connect(self): ret = self._sock.connect_ex(self._sock_addr) except socket.error as err: ret = err.errno + except ValueError: + # Python 3.7 and higher rasies ValueError if a socket + # is already connected + ret = None # Connection succeeded if not ret or ret == errno.EISCONN: From 0ded82205d6a045c02639f8e5ee14d119b426286 Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 10:10:35 -0500 Subject: [PATCH 2/8] Only ignore ValueError on SSL connection if Python >=3.7 --- .gitignore | 1 + kafka/conn.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f3cd082fa..3c5aec99f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ docs/_build integration-test/ tests-env/ .pytest_cache/ +venv/ diff --git a/kafka/conn.py b/kafka/conn.py index db0cefb45..0165b950e 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -357,10 +357,13 @@ def connect(self): ret = self._sock.connect_ex(self._sock_addr) except socket.error as err: ret = err.errno - except ValueError: - # Python 3.7 and higher rasies ValueError if a socket + except ValueError as err: + # Python 3.7 and higher raises ValueError if a socket # is already connected - ret = None + if sys.version_info[0] >= 3 and sys.version_info[1] >= 7: + ret = None + else: + raise err # Connection succeeded if not ret or ret == errno.EISCONN: From 699cbf557445f38889e3e1f3d07a79ff8db21520 Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 10:28:14 -0500 Subject: [PATCH 3/8] Have TravisCI test Python 3.7 and Kafka 2.0.0-2.1.0 --- .travis.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.travis.yml b/.travis.yml index 9eda77c47..cb64d5811 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ python: - 3.4 - 3.5 - 3.6 + - 3.7 - pypy env: @@ -13,6 +14,9 @@ env: - KAFKA_VERSION=0.10.2.1 - KAFKA_VERSION=0.11.0.2 - KAFKA_VERSION=1.1.1 + - KAFKA_VERSION=2.0.0 + - KAFKA_VERSION=2.0.1 + - KAFKA_VERSION=2.1.0 sudo: false From ad8e31e058dbdf18098254f0b620920946b876ca Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 11:27:57 -0500 Subject: [PATCH 4/8] Fix build for Kafka 2.1.0 --- build_integration.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/build_integration.sh b/build_integration.sh index c6df0b26b..c287bd543 100755 --- a/build_integration.sh +++ b/build_integration.sh @@ -54,6 +54,9 @@ pushd servers fi echo echo "Extracting kafka ${kafka} binaries" + if [ ! -d ../$kafka ]; then + mkdir ../$kafka + fi tar xzvf ${KAFKA_ARTIFACT} -C ../$kafka/ rm -rf ../$kafka/kafka-bin mv ../$kafka/${KAFKA_ARTIFACT/%.t*/} ../$kafka/kafka-bin From 4e8fa5c0c0ebd329214189781ce35074bd40b6e6 Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 11:34:44 -0500 Subject: [PATCH 5/8] Remove Kafka 2.0.0+ from tests --- .travis.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index cb64d5811..a8892d02c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,9 +14,6 @@ env: - KAFKA_VERSION=0.10.2.1 - KAFKA_VERSION=0.11.0.2 - KAFKA_VERSION=1.1.1 - - KAFKA_VERSION=2.0.0 - - KAFKA_VERSION=2.0.1 - - KAFKA_VERSION=2.1.0 sudo: false From 6dca97d6af6855a4840bb6507fe7de037d9bf41a Mon Sep 17 00:00:00 2001 From: silentben Date: Fri, 30 Nov 2018 12:48:30 -0500 Subject: [PATCH 6/8] Update kafka/conn.py Co-Authored-By: seanthegeek --- kafka/conn.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kafka/conn.py b/kafka/conn.py index 0165b950e..cdd6ca45e 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -360,7 +360,7 @@ def connect(self): except ValueError as err: # Python 3.7 and higher raises ValueError if a socket # is already connected - if sys.version_info[0] >= 3 and sys.version_info[1] >= 7: + if sys.version_info >= (3, 7): ret = None else: raise err From 2f5d358048811f0e067e399cb54a7be91f5fa366 Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 13:04:28 -0500 Subject: [PATCH 7/8] Fix Python 3.7 TravisCI build --- .travis.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a8892d02c..88d5b483e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,9 +5,17 @@ python: - 3.4 - 3.5 - 3.6 - - 3.7 - pypy +# Enable 3.7 without globally enabling sudo and dist: xenial for other build jobs +# See https://github.com/travis-ci/travis-ci/issues/9069#issuecomment-425720905 +matrix: + include: + - python: 3.7 + dist: xenial + sudo: required + + env: - KAFKA_VERSION=0.8.2.2 - KAFKA_VERSION=0.9.0.1 From 165ac85d1fbe74c4d37853e3a310f170735139ad Mon Sep 17 00:00:00 2001 From: Sean Whalen Date: Fri, 30 Nov 2018 14:36:05 -0500 Subject: [PATCH 8/8] Remove python 3.7 test --- .travis.yml | 9 --------- 1 file changed, 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 88d5b483e..9eda77c47 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,15 +7,6 @@ python: - 3.6 - pypy -# Enable 3.7 without globally enabling sudo and dist: xenial for other build jobs -# See https://github.com/travis-ci/travis-ci/issues/9069#issuecomment-425720905 -matrix: - include: - - python: 3.7 - dist: xenial - sudo: required - - env: - KAFKA_VERSION=0.8.2.2 - KAFKA_VERSION=0.9.0.1