Обновление (2019-02-07): проблема теперь исправлена, поэтому, если вы все еще сталкиваетесь с этим, попробуйте gcloud components update
.
В какой-то момент за последние несколько месяцев мой инструмент bq
перестал работать.Даже простая вещь показывает эту ошибку:
$ bq show
BigQuery error in show operation: Cannot contact server. Please try again.
Traceback: Traceback (most recent call last):
File "/opt/google-cloud-sdk/platform/bq/bigquery_client.py", line 685, in BuildApiClient
response_metadata, discovery_document = http.request(discovery_url)
File "/opt/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/transport.py", line 176, in new_request
redirections, connection_type)
File "/opt/google-cloud-sdk/platform/bq/third_party/oauth2client_4_0/transport.py", line 283, in request
connection_type=connection_type)
File "/opt/google-cloud-sdk/platform/bq/third_party/httplib2/__init__.py", line 1626, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/opt/google-cloud-sdk/platform/bq/third_party/httplib2/__init__.py", line 1368, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/opt/google-cloud-sdk/platform/bq/third_party/httplib2/__init__.py", line 1288, in _conn_request
conn.connect()
File "/opt/google-cloud-sdk/platform/bq/third_party/httplib2/__init__.py", line 1082, in connect
raise SSLHandshakeError(e)
SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)
Я пробовал следующее:
sudo gcloud components update
(версия 221.0.0). sudo pacman -Syu
(обновление системы), чтобы получить последний набор сертификатов SSL.Это Arch Linux, так что почти всегда он на переднем крае. sudo gcloud components reinstall
. - Удаление
google-cloud-sdk
, удаление оставшихся /opt/google-cloud-sdk
и полная переустановка с AUR . - Добавление
--httplib2_debuglevel=3
(действительные значения не задокументированы, найдено значение 3
здесь ).Это не дает никакого дополнительного вывода. - Добавление одного из
--ca_certificates_file=/etc/ca-certificates/extracted/tls-ca-bundle.pem
, --ca_certificates_file=/etc/ca-certificates/extracted/ca-bundle.trust.crt
и --ca_certificates_file=/etc/ssl/certs/ca-certificates.crt
, один из которых обязательно должен быть комплектом корневых сертификатов в моей системе.Последний из них используется curl, который может нормально общаться с www.googleapis.com
. - Ткнув в исходный код, вы обнаруживаете, что
/opt/google-cloud-sdk/platform/bq/third_party/httplib2/cacerts.txt
- это набор сертификатов, используемый по умолчанию.Если я попробую этот вариант с curl --cacert ...
, он все равно будет работать. - Установка переменной среды
GOOGLE_APPLICATION_CREDENTIALS
в этой оболочке.Как и ожидалось, это также не имеет значения;ошибка SSL возникает до того, как bq
даже успел начать рукопожатие OAuth. - Добавление
--disable_ssl_validation
.Это «работает», но, очевидно, не безопасно.
Кто-нибудь еще видел это, или есть идеи, как отладить / решить?