The following error happens with urllib3>=1.25, and is not present with urllib<1.25. For what it's worth, this was triggered with the NewRelic Airflow metrics package.
scheduler | [2020-03-02 21:37:22,914] {harvester.py:74} ERROR - New Relic send_batch failed with an exception.
scheduler | Traceback (most recent call last):
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 485, in wrap_socket
scheduler | cnx.do_handshake()
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1934, in do_handshake
scheduler | self._raise_ssl_error(self._ssl, result)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/SSL.py", line 1671, in _raise_ssl_error
scheduler | _raise_current_error()
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
scheduler | raise exception_type(errors)
scheduler | OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]
scheduler |
scheduler | During handling of the above exception, another exception occurred:
scheduler |
scheduler | Traceback (most recent call last):
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
scheduler | chunked=chunked,
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler | return wrapped(*args, **kwargs)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler | return wrapped(*args, **kwargs)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376, in _make_request
scheduler | self._validate_conn(conn)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn
scheduler | conn.connect()
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connection.py", line 360, in connect
scheduler | ssl_context=context,
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 370, in ssl_wrap_socket
scheduler | return context.wrap_socket(sock, server_hostname=server_hostname)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 491, in wrap_socket
scheduler | raise ssl.SSLError("bad handshake: %r" % e)
scheduler | ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)
scheduler |
scheduler | During handling of the above exception, another exception occurred:
scheduler |
scheduler | Traceback (most recent call last):
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic_airflow_plugin/harvester.py", line 67, in _loop
scheduler | response = client.send_batch(items, common=common)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic_telemetry_sdk/client.py", line 170, in send_batch
scheduler | return self._pool.urlopen("POST", self.URL, body=payload, headers=headers)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 720, in urlopen
scheduler | method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/retry.py", line 376, in increment
scheduler | raise six.reraise(type(error), error, _stacktrace)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/packages/six.py", line 734, in reraise
scheduler | raise value.with_traceback(tb)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 672, in urlopen
scheduler | chunked=chunked,
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler | return wrapped(*args, **kwargs)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/newrelic/hooks/external_urllib3.py", line 18, in _nr_wrapper_make_request_
scheduler | return wrapped(*args, **kwargs)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 376, in _make_request
scheduler | self._validate_conn(conn)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connectionpool.py", line 994, in _validate_conn
scheduler | conn.connect()
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/connection.py", line 360, in connect
scheduler | ssl_context=context,
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/util/ssl_.py", line 370, in ssl_wrap_socket
scheduler | return context.wrap_socket(sock, server_hostname=server_hostname)
scheduler | File "/opt/conda/envs/airflow_env/lib/python3.7/site-packages/urllib3/contrib/pyopenssl.py", line 491, in wrap_socket
scheduler | raise ssl.SSLError("bad handshake: %r" % e)
scheduler | urllib3.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)```
The following error happens with urllib3>=1.25, and is not present with urllib<1.25. For what it's worth, this was triggered with the NewRelic Airflow metrics package.