Azure / azure-iot-cli-extension

Azure IoT extension for Azure CLI
Other
82 stars 65 forks source link

[bug] Azure IoT Hub Monitor on M1 Mac returns "INCOMPATIBLE ARCHITECTURE" error #512

Open codehampster opened 2 years ago

codehampster commented 2 years ago

Describe the bug

Command Name az iot hub monitor-events Extension Name: azure-iot. Version: 0.14.0.

Errors:

The command failed with an unexpected error. Here is the traceback:
dlopen(/Users/XXXX/.azure/cliextensions/azure-iot/uamqp/c_uamqp.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXX/.azure/cliextensions/azure-iot/uamqp/c_uamqp.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))
Traceback (most recent call last):
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/knack/cli.py", line 231, in invoke
    cmd_result = self.invocation.execute(args)
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 658, in execute
    raise ex
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 721, in _run_jobs_serially
    results.append(self._run_job(expanded_arg, cmd_copy))
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 692, in _run_job
    result = cmd_copy(params)
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/__init__.py", line 328, in __call__
    return self.handler(*args, **kwargs)
  File "/opt/homebrew/Cellar/azure-cli/2.36.0/libexec/lib/python3.10/site-packages/azure/cli/core/commands/command_operation.py", line 121, in handler
    return op(**command_args)
  File "/Users/XXXX/.azure/cliextensions/azure-iot/azext_iot/operations/hub.py", line 2958, in iot_hub_monitor_events
    _iot_hub_monitor_events(
  File "/Users/XXXX/.azure/cliextensions/azure-iot/azext_iot/operations/hub.py", line 3071, in _iot_hub_monitor_events
    from azext_iot.monitor.builders import hub_target_builder
  File "/Users/XXXX/.azure/cliextensions/azure-iot/azext_iot/monitor/builders/hub_target_builder.py", line 8, in <module>
    import uamqp
  File "/Users/XXXX/.azure/cliextensions/azure-iot/uamqp/__init__.py", line 12, in <module>
    from uamqp import c_uamqp  # pylint: disable=import-self
ImportError: dlopen(/Users/XXXX/.azure/cliextensions/azure-iot/uamqp/c_uamqp.cpython-310-darwin.so, 0x0002): tried: '/Users/XXXX/.azure/cliextensions/azure-iot/uamqp/c_uamqp.cpython-310-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))

To Reproduce:

Steps to reproduce the behavior. Note that argument values have been redacted, as they may contain sensitive information.

az iot hub monitor-events -n XXXX --login 'HostName= XXXX.azure-devices.net;SharedAccessKeyName= XXXX;SharedAccessKey=XXXX'

Expected Behavior

Environment Summary

macOS-12.3.1-arm64-arm-64bit, Darwin 21.4.0
Python 3.10.2
Installer: HOMEBREW

azure-cli 2.36.0

Extensions:
azure-iot 0.14.0

Dependencies:
msal 1.17.0
azure-mgmt-resource 20.0.0

Additional Context

vilit1 commented 2 years ago

Can you try running the command with repair: az iot hub monitor-events --hub-name {} --device-id {} -r

The uamqp package has issues with certain versions and the repair command will reinstall uamqp with the correct version (that has no issues)

If these issues still persist, please let me know!

lavenderddliu commented 2 years ago

Can you try running the command with repair: az iot hub monitor-events --hub-name {} --device-id {} -r

The uamqp package has issues with certain versions and the repair command will reinstall uamqp with the correct version (that has no issues)

If these issues still persist, please let me know!

Same issue. Tired -r flag, it doesn't work~

lavenderddliu commented 2 years ago

solved in this way #468