Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Reauth issue with more than 4 running containers

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

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

評価

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

調査の方向性

まず、指定された Debian 11、Docker、Azure IoT の構成で、4 番目のコンテナーの再認証失敗を再現します。次に、pipeline_stages_base.py の retry_reauthorize と、pipeline_thread.py の _reauthorize パスおよびパイプラインスレッドのアサーションを調査します。完了条件は、トランスポートのタイムアウトの原因を特定し、回帰テストまたは文書化された再現によって動作を確認することです。

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

説明

I have this strange issue, which I only encounter when I have a certain number of running processes.

The setup is VMware ESXi virtual machine running Debian 11 with Docker on top. I am now running devices in docker containers, which basically contains a Azure IoT Device client per container together with a bunch of logic. Three of these containers works fine, but when I startup the fourth container, it connects fine, but after 1 hour when it tries to re-auth it fails (only happens on the last started container):

22-11-22 10:30:02[ERROR] Exception caught in background thread.  Unable to handle.
22-11-22 10:30:02[ERROR] ["azure.iot.device.common.pipeline.pipeline_exceptions.OperationCancelled: OperationCancelled('Transport timeout on connection operation')\n"]
Exception in thread Thread-410:
Traceback (most recent call last):
  File "/usr/local/lib/python3.9/threading.py", line 980, in _bootstrap_inner
    self.run()
  File "/usr/local/lib/python3.9/threading.py", line 1306, in run
    self.function(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.9/site-packages/azure/iot/device/common/pipeline/pipeline_stages_base.py", line 466, in retry_reauthorize
    this._reauthorize()
  File "/usr/local/lib/python3.9/site-packages/azure/iot/device/common/pipeline/pipeline_thread.py", line 192, in wrapper
    assert (
AssertionError:
            Function _reauthorize is not running inside pipeline thread.
            It should be. You should use invoke_on_pipeline_thread(_nowait) to enter the
            pipeline thread before calling this function.  If you're hitting this from
            inside a test function, you may need to add the fake_pipeline_thread fixture to
            your test.  (generally applied on the global pytestmark in a module)
22-11-22 10:31:02[DEBUG] OperationCancelled('Could not complete operation') caused by OperationCancelled('Transport timeout on connection operation')

I am running:

  • azure-iot-device==2.8.0 (Tried version 2.9.0, doesn't help)
  • Docker: Docker version 20.10.21, build baeda1f
主要言語
Python
スター
18
フォーク
24
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

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

Azure/azure-iot-hub-python のほかの issue

Azure/azure-iot-hub-python の issue をすべて見る

似ている issue

Python の issue をもっと見る

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

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