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/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 diff --git a/kafka/conn.py b/kafka/conn.py index 471bae7ed..cdd6ca45e 100644 --- a/kafka/conn.py +++ b/kafka/conn.py @@ -357,6 +357,13 @@ def connect(self): ret = self._sock.connect_ex(self._sock_addr) except socket.error as err: ret = err.errno + except ValueError as err: + # Python 3.7 and higher raises ValueError if a socket + # is already connected + if sys.version_info >= (3, 7): + ret = None + else: + raise err # Connection succeeded if not ret or ret == errno.EISCONN: