Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

raise exceptions.from_grpc_error(exc) from exc google.api_core.exceptions.Unknown: None Stream removed

未關閉
#633 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
18/100
Issue 類型
缺陷
描述清晰度
需要釐清
活躍度
停滯
技術堆疊
django, firebase, grpc, python
領域
api, backend, databases

研究方向

未識別出 firebase-admin-python 中的儲存庫檔案、測試或進入點;報告指向使用者的 views.py、FirestoreManager.py 和 Firestore 查詢串流。先使用列出的套件版本重現 idle-then-GET 情況,並檢查 Firestore 串流處理路徑。要視為完成,必須確認存在 SDK 缺陷、完成範圍明確的修正,並加入回歸測試。

由索引模型根據 Issue 內容生成。

描述

needs-triage

I am developing a web project with Django.

I use Firebase's Firestore as my database.

Look at the views.py "def mail(request)" you can see I get data from firestore and render to 'mail.html'

And I go to http://127.0.0.1:8000/resource/mail/ is normal.

But if I do nothing lasts 5 minutes and reorganize this page,
I will get this error on my web.

I think my problem like this https://stackoverflow.com/questions/70446165/firestore-stream-removed-error-after-3-minutes-doing-nothing
,although it is .NET and my project is python.

Anyway the website is very normal at first,but after maybe 3~5 minutes it get error.

    Unknown at /resource/mail/
    None Stream removed
    Request Method:	GET
    Request URL:	http://127.0.0.1:8000/resource/mail/
    Django Version:	4.0.6
    Exception Type:	Unknown
    Exception Value:	
    None Stream removed
    Exception Location:	C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py, line 144, in error_remapped_callable
    Python Executable:	C:\Users\USER\.conda\envs\Backstage\python.exe
    Python Version:	3.9.12
    Python Path:	
    ['C:\\Users\\USER\\Desktop\\官網+後台\\Backstage',
    'C:\\Users\\USER\\.conda\\envs\\Backstage\\python39.zip',
    'C:\\Users\\USER\\.conda\\envs\\Backstage\\DLLs',
    'C:\\Users\\USER\\.conda\\envs\\Backstage\\lib',
    'C:\\Users\\USER\\.conda\\envs\\Backstage',
    'C:\\Users\\USER\\.conda\\envs\\Backstage\\lib\\site-packages']
    Server time:	Fri, 05 Aug 2022 17:01:33 +0800


    Traceback Switch to copy-and-paste view
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py, line 140, in error_remapped_callable
                return _StreamingResponseIterator( …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py, line 66, in __init__
                    self._stored_first_result = next(self._wrapped) …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\grpc\_channel.py, line 426, in __next__
            return self._next() …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\grpc\_channel.py, line 826, in _next
                        raise self …
    Local vars
    The above exception (<_MultiThreadedRendezvous of RPC that terminated with: status = StatusCode.UNKNOWN details = "Stream removed" debug_error_string = "{"created":"@1659690093.393000000","description":"Error received from peer ipv4:172.217.163.42:443","file":"src/core/lib/surface/call.cc","file_line":967,"grpc_message":"Stream removed","grpc_status":2}" >) was the direct cause of the following exception:
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\django\core\handlers\exception.py, line 55, in inner
                    response = get_response(request) …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\django\core\handlers\base.py, line 197, in _get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) …
    Local vars
    C:\Users\USER\Desktop\官網+後台\Backstage\myproject\views\resource.py, line 36, in mail
        for doc in docs: …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\query.py, line 273, in stream
            response_iterator, expected_prefix = self._get_stream_iterator( …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\query.py, line 218, in _get_stream_iterator
            response_iterator = self._client._firestore_api.run_query( …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\services\firestore\client.py, line 1237, in run_query
            response = rpc( …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\gapic_v1\method.py, line 154, in __call__
            return wrapped_func(*args, **kwargs) …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\retry.py, line 283, in retry_wrapped_func
                return retry_target( …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\retry.py, line 190, in retry_target
                return target() …
    Local vars
    C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py, line 144, in error_remapped_callable
                raise exceptions.from_grpc_error(exc) from exc …
    Local vars

urls.py:

    from django.contrib import admin
    from django.urls import path
    from myproject.views import *

    urlpatterns = [
        path('admin/', admin.site.urls),
        path('signup/', signup,name='signup'),#註冊
        path('login/', login),#登入
        path('index/', index),#主頁
        path('tradeQuery/', tradequery),#交易狀態查詢
        path('resource/mail/', mail),#送禮系統


]

views.py:

    def mail(request):
      docs=FirestoreManager.getDocsWhereTime("BackendLog-Mail") 
      for doc in docs:
          print(doc.to_dict())
      return render(request, 'mail.html', locals())

FirestoreManager.py:

    def getDocsWhereTime(*args): # 傳入參數為 collection_name,start_time,end_time
      if len(args)>0:
          collection_name=args[0]
      if len(args)>1:
          start_time=args[1]
      else:
          start_time=datetime(2022,8,1).astimezone(timezone(offset=timedelta(hours=8)))
      if len(args)>2:
          end_time=args[2]
      else:
          end_time=datetime.now(tz=timezone(timedelta(hours=8)))
      docs = db.collection(collection_name).where("CreateTime", '>=', start_time).where("CreateTime", "<", end_time).stream()
      return docs

requirements.txt:

    Django==4.0.6
    firebase-admin==5.1.0
    google-api-core==2.8.2
    google-api-python-client==2.55.0
    google-auth==2.9.1
    google-auth-httplib2==0.1.0
    google-cloud-core==2.3.2
    google-cloud-firestore==2.6.0
    google-cloud-storage==2.4.0
    google-crc32c==1.3.0
    google-resumable-media==2.3.3
    googleapis-common-protos==1.56.4
    grpcio==1.47.0

cmd console:

    Internal Server Error: /resource/mail/
    Traceback (most recent call last):
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py", line 140, in error_remapped_callable
        return _StreamingResponseIterator(
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py", line 66, in __init__
        self._stored_first_result = next(self._wrapped)
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\grpc\_channel.py", line 426, in __next__
        return self._next()
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\grpc\_channel.py", line 826, in _next
        raise self
    grpc._channel._MultiThreadedRendezvous: <_MultiThreadedRendezvous of RPC that terminated with:
            status = StatusCode.UNKNOWN
            details = "Stream removed"
            debug_error_string = "{"created":"@1659690093.393000000","description":"Error received from peer ipv4:172.217.163.42:443","file":"src/core/lib/surface/call.cc","file_line":967,"grpc_message":"Stream removed","grpc_status":2}"
    >
    
    The above exception was the direct cause of the following exception:
    
    Traceback (most recent call last):
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\django\core\handlers\exception.py", line 55, in inner
        response = get_response(request)
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\django\core\handlers\base.py", line 197, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "C:\Users\USER\Desktop\官網+後台\Backstage\myproject\views\resource.py", line 36, in mail
        for doc in docs:
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\query.py", line 273, in stream
        response_iterator, expected_prefix = self._get_stream_iterator(
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\query.py", line 218, in _get_stream_iterator
        response_iterator = self._client._firestore_api.run_query(
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\cloud\firestore_v1\services\firestore\client.py", line 1237, in run_query
        response = rpc(
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\gapic_v1\method.py", line 154, in __call__
        return wrapped_func(*args, **kwargs)
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\retry.py", line 283, in retry_wrapped_func
        return retry_target(
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\retry.py", line 190, in retry_target
        return target()
      File "C:\Users\USER\.conda\envs\Backstage\lib\site-packages\google\api_core\grpc_helpers.py", line 144, in error_remapped_callable
        raise exceptions.from_grpc_error(exc) from exc
    google.api_core.exceptions.Unknown: None Stream removed
    [05/Aug/2022 17:01:33] "GET /resource/mail/ HTTP/1.1" 500 125693

主要語言
Python
星號
1.2k
分支
359
平均合併
3 天 9 小時
30 天內合併 PR
3

貢獻指南

開啟貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

firebase/firebase-admin-python 的其他 Issue

查看 firebase/firebase-admin-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。