ansible / awx

AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.
Other
14.01k stars 3.42k forks source link

No module named 'aioredis' #15599

Open jean-christophe-manciot opened 1 day ago

jean-christophe-manciot commented 1 day ago

Please confirm the following

Bug Summary

When installing AWX using docker-compose, if I replace make docker-compose-build with docker pull ghcr.io/ansible/awx_devel:release_4.6, a missing dependency appears.

This does not prevent AWX from starting, but awx-wsrelay keeps restarting.

AWX version

24.6.1

Select the relevant components

Installation method

docker development environment

Modifications

no

Ansible version

2.17.5

Operating system

CentOS stream 9

Web browser

No response

Steps to reproduce

git clone -b 24.6.1 https://github.com/ansible/awx.git git-awx && cd git-awx
git switch -c release_4.6
docker pull ghcr.io/ansible/awx_devel:release_4.6
make docker-compose &

Expected results

No errors

Actual results

 Traceback (most recent call last):
   File "/usr/local/bin/awx-manage", line 18, in <module>
     load_entry_point('awx', 'console_scripts', 'awx-manage')()
   File "/awx_devel/awx/__init__.py", line 177, in manage
     execute_from_command_line(sys.argv)
   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
     utility.execute()
   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
     self.fetch_command(subcommand).run_from_argv(self.argv)
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 275, in fetch_command
     klass = load_command_class(app_name, subcommand)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/var/lib/awx/venv/awx/lib64/python3.11/site-packages/django/core/management/__init__.py", line 48, in load_command_class
     module = import_module("%s.management.commands.%s" % (app_name, name))
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/lib64/python3.11/importlib/__init__.py", line 126, in import_module
     return _bootstrap._gcd_import(name[level:], package, level)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
   File "/awx_devel/awx/main/management/commands/run_wsrelay.py", line 20, in <module>
     from awx.main.wsrelay import WebSocketRelayManager
   File "/awx_devel/awx/main/wsrelay.py", line 11, in <module>
     import aioredis
 ModuleNotFoundError: No module named 'aioredis'
 2024-10-24 14:46:30,801 WARN exited: awx-wsrelay (exit status 1; not expected)
 [pid: 560|app: 0|req: 45/247] 172.18.0.1 () {40 vars in 481 bytes} [Thu Oct 24 14:46:31 2024] GET / => generated 2148 bytes in 23 msecs (HTTP/1.1 200) 7 headers in 261 bytes (1 switches on core 0)
 2024-10-24 14:46:31,440 INFO spawned: 'awx-wsrelay' with pid 1343
 [pid: 559|app: 0|req: 45/248] 172.18.0.1 () {40 vars in 481 bytes} [Thu Oct 24 14:46:32 2024] GET / => generated 2148 bytes in 39 msecs (HTTP/1.1 200) 7 headers in 261 bytes (1 switches on core 0)
 2024-10-24 14:46:33,347 INFO success: awx-wsrelay entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

... endlessly repeated

Additional information

No response

jean-christophe-manciot commented 1 day ago

@fosterseth Any thoughts?