Localhost unavailable: WSA error

オープン
#729 コメント 1 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
25/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
python
領域
databases

調査の方向性

まず、示されている FIRESTORE_EMULATOR_HOST の値と、記載されている Python、Windows、エミュレータのバージョンを使って、main.py の失敗を再現します。google.api_core と grpc を通る traceback を読み、その後、Python クライアントのエミュレータ接続処理を、動作しているクラウド設定と比較します。再現可能な SDK または環境の原因を特定し、焦点を絞った回帰テスト、または明確にサポートされた設定ガイダンスを追加できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

api: emulators
[REQUIRED] Step 2: Describe your environment
  • Operating System version: Windows 10
  • Firebase SDK version: 12.4.2
  • Firebase Product: firestore (auth, database, storage, etc)
  • Python version: 3.10.13
  • Pip version: 23.2.1
[REQUIRED] Step 3: Describe the problem

I'm dealing with a Python+Emulator problem. My emulator works in Flutter, but not in Python, and it works in Python on Cloud Firestore. It's only the Python+Emulator combo that is giving me trouble.

It was working earlier today, but so far my backtracking attempts have been unsuccessful.

I've tried restarting my machine, and the emulator, but neither have worked so far.

Steps to reproduce:

What happened? How can we make the problem occur?
This could be a description, log/console output, etc.

Traceback (most recent call last):
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\grpc_helpers.py", line 162, in error_remapped_callable
    return _StreamingResponseIterator(
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\grpc_helpers.py", line 88, in __init__        
    self._stored_first_result = next(self._wrapped)
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\grpc\_channel.py", line 541, in __next__
    return self._next()
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\grpc\_channel.py", line 967, in _next
    raise self
grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
        status = StatusCode.UNAVAILABLE
        details = "DNS resolution failed for http://localhost:8080: UNAVAILABLE: WSA Error"
        debug_error_string = "UNKNOWN:DNS resolution failed for http://localhost:8080: UNAVAILABLE: WSA Error {created_time:"2023-10-07T20:33:00.4853876+00:00", grpc_status:14}"
>

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\retry.py", line 191, in retry_target
    return target()
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\timeout.py", line 120, in func_with_timeout   
    return func(*args, **kwargs)
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\grpc_helpers.py", line 166, in error_remapped_callable
    raise exceptions.from_grpc_error(exc) from exc
google.api_core.exceptions.ServiceUnavailable: 503 DNS resolution failed for http://localhost:8080: UNAVAILABLE: WSA Error        

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "d:\Projects\info_extractor\main.py", line 66, in <module>
    print(doc_ref.get())
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\cloud\firestore_v1\query.py", line 172, in get
    return list(result)
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\cloud\firestore_v1\query.py", line 287, in stream      
    response_iterator, expected_prefix = self._get_stream_iterator(
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\cloud\firestore_v1\query.py", line 221, in _get_stream_iterator
    response_iterator = self._client._firestore_api.run_query(
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\cloud\firestore_v1\services\firestore\client.py", line 
1309, in run_query
    response = rpc(
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\gapic_v1\method.py", line 113, in __call__    
    return wrapped_func(*args, **kwargs)
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\retry.py", line 349, in retry_wrapped_func    
    return retry_target(
  File "D:\Programs\anaconda3\envs\info_extractor\lib\site-packages\google\api_core\retry.py", line 207, in retry_target
    raise exceptions.RetryError(
google.api_core.exceptions.RetryError: Deadline of 300.0s exceeded while calling target function, last exception: 503 DNS resolution failed for http://localhost:8080: UNAVAILABLE: WSA Error

Also, this comes out of one of the emulator processes (unsure which):

Oct 07, 2023 8:54:35 PM io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead
INFO: Detected non-HTTP/2 connection.
Relevant Code:

My .env:

FIRESTORE_EMULATOR_HOST=http://localhost:8080
STORAGE_EMULATOR_HOST=http://localhost:9199

When I remove http:// from the variables, I get instead that no connection adapters are available.

import firebase_admin


def initialize_firestore():
    app = firebase_admin.initialize_app()
    db = firestore.client()
    return app, db


if __name__ == "__main__":
    callback_done = threading.Event()

    app, db =initialize_firestore()
    doc_ref = db.collection('files').where(
        filter=FieldFilter('extractedText', '==', ''))
    print(doc_ref.get())
    print('Statement complete')

Code hangs on the second-to-last statement. It works fine on Google Cloud, it's only on emulator that it doesn't work, which is why I'm posting here.

主要言語
Python
スター
1.2k
フォーク
359
平均マージ
5日 6分
マージ済み PR(30日)
2

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

firebase/firebase-admin-python のほかの issue

firebase/firebase-admin-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。