Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Modules not connecting to Edgehub on Azure ML Compute Instance (Developer Environment)

Aperta
#384 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
32/100
Tipo di issue
Bug
Chiarezza
Da chiarire
Stato di attività
Ferma
Stack tecnologico
azure, docker, python

Direzione di ricerca

Riprodurre il problema in una Azure ML Compute Instance utilizzando l’ambiente di sviluppo e il percorso del modulo Python registrato. Iniziare dalla configurazione di Docker e della rete, quindi tracciare la connessione attraverso paho MQTT e azure.iot.device. Il lavoro è completato quando i moduli si connettono a IoT Hub senza l’errore OSError 99.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

We are trying to get our development environment with iotedgedevhub in running in an Azure ML Compute Instance (because it is already used extensively in our development processes, it offers GPU options we need for our use case and the integration of VS Code is superb).

Unfortunately when we try to debug our solution (which works on many other devices we tested them on) we receive an error: 'Cannot assign request address'. We have the feeling that problem is either Docker Environment or Networking related but are struggling to find the reason.

Logs from module:

SceletonModule                | User's Environment variable:
SceletonModule                | IoT Hub Client for Python
SceletonModule                | Subscribe for input failed.  Not enabling feature
SceletonModule                | ./main.py:38: RuntimeWarning: coroutine 'execute_patch_for_async.<locals>.shutdown' was never awaited
SceletonModule                |   client.shutdown()
SceletonModule                | RuntimeWarning: Enable tracemalloc to get the object allocation traceback
SceletonModule                | Traceback (most recent call last):
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/common/mqtt_transport.py", line 395, in connect
SceletonModule                |     rc = self._mqtt_client.connect(
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 914, in connect
SceletonModule                |     return self.reconnect()
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 1044, in reconnect
SceletonModule                |     sock = self._create_socket_connection()
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/paho/mqtt/client.py", line 3685, in _create_socket_connection
SceletonModule                |     return socket.create_connection(addr, timeout=self._connect_timeout, source_address=source)
SceletonModule                |   File "/usr/lib/python3.8/socket.py", line 807, in create_connection
SceletonModule                |     raise err
SceletonModule                |   File "/usr/lib/python3.8/socket.py", line 796, in create_connection
SceletonModule                |     sock.connect(sa)
SceletonModule                | OSError: [Errno 99] Cannot assign requested address
SceletonModule                |
SceletonModule                | The above exception was the direct cause of the following exception:
SceletonModule                |
SceletonModule                | Traceback (most recent call last):
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/aio/async_clients.py", line 33, in handle_result
SceletonModule                |     return await callback.completion()
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/common/async_adapter.py", line 91, in completion
SceletonModule                |     return await self.future
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/common/pipeline/pipeline_stages_mqtt.py", line 199, in _run_op
SceletonModule                |     self.transport.connect(password=password)
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/common/mqtt_transport.py", line 418, in connect
SceletonModule                |     raise exceptions.ConnectionFailedError(cause=e)
SceletonModule                | azure.iot.device.common.transport_exceptions.ConnectionFailedError: ConnectionFailedError(None) caused by OSError(99, 'Cannot assign requested address')
SceletonModule                |
SceletonModule                | The above exception was the direct cause of the following exception:
SceletonModule                |
SceletonModule                | Traceback (most recent call last):
SceletonModule                |   File "./main.py", line 84, in <module>
SceletonModule                |     main()
SceletonModule                |   File "./main.py", line 57, in main
SceletonModule                |     client = create_client()
SceletonModule                |   File "./main.py", line 35, in create_client
SceletonModule                |     client.on_message_received = receive_message_handler
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/abstract_clients.py", line 875, in on_message_received
SceletonModule                |     self._generic_receive_handler_setter(
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/aio/async_clients.py", line 161, in _generic_receive_handler_setter
SceletonModule                |     fut.result()
SceletonModule                |   File "/usr/lib/python3.8/concurrent/futures/_base.py", line 439, in result
SceletonModule                |     return self.__get_result()
SceletonModule                |   File "/usr/lib/python3.8/concurrent/futures/_base.py", line 388, in __get_result
SceletonModule                |     raise self._exception
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/aio/async_clients.py", line 113, in _enable_feature
SceletonModule                |     await handle_result(callback)
SceletonModule                |   File "/usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/aio/async_clients.py", line 37, in handle_result
SceletonModule                |     raise exceptions.ConnectionFailedError(message="Could not connect to IoTHub", cause=e)
SceletonModule                | azure.iot.device.exceptions.ConnectionFailedError: ConnectionFailedError('Could not connect to IoTHub') caused by ConnectionFailedError(None)
SceletonModule                | Task was destroyed but it is pending!
SceletonModule                | task: <Task pending name='Task-7' coro=<AsyncHandlerManager._receiver_handler_runner() running at /usr/local/lib/python3.8/dist-packages/azure/iot/device/iothub/aio/async_handler_manager.py:43> wait_for=<Future pending cb=[_chain_future.<locals>._call_check_cancel() at /usr/lib/python3.8/asyncio/futures.py:357, <TaskWakeupMethWrapper object at 0x7fbdf2a581f0>()]> cb=[_chain_future.<locals>._call_set_state() at /usr/lib/python3.8/asyncio/futures.py:364]>
SceletonModule                | Task was destroyed but it is pending!
SceletonModule                | task: <Task pending name='Task-8' coro=<_AsyncQueueProxy.get() running at /usr/local/lib/python3.8/dist-packages/janus/__init__.py:552> wait_for=<Future pending cb=[<TaskWakeupMethWrapper object at 0x7fbdf2a4ffa0>()]> cb=[_chain_future.<locals>._call_set_state() at /usr/lib/python3.8/asyncio/futures.py:364]>
Lingua principale
Python
Stelle
91
Fork
38
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

  • Nessun Dockerfile né file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Azure/iotedgehubdev

Tutte le issue di Azure/iotedgehubdev

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.