rommapp / romm

A beautiful, powerful, self-hosted rom manager
https://romm.app
GNU Affero General Public License v3.0
2.05k stars 88 forks source link

[Bug] External Redis not connecting #1232

Open taki-eddine-47 opened 1 week ago

taki-eddine-47 commented 1 week ago

RomM version 3.5.1

Describe the bug Romm connect correctly to an external instance of Redis, but there's some code that it is using localhost instead of the environment variables REDIS_HOST and REDIS_PORT.

To Reproduce Define envvars REDIS_HOST and REDIS_PORT.

Expected behavior All code must connect using these variables.

Screenshots Log:

INFO:     [init][2024-10-11 00:08:59] Starting up, please wait...
INFO:     [RomM][2024-10-11 00:09:08] Connecting to redis in /src/.venv/bin/alembic...
INFO:     [RomM][2024-10-11 00:09:08] Redis connection established in /src/.venv/bin/alembic!
INFO:     [RomM][2024-10-11 00:09:08] Connecting to redis in /src/.venv/bin/alembic...
INFO:     [RomM][2024-10-11 00:09:08] Redis connection established in /src/.venv/bin/alembic!
INFO:     [RomM][alembic.runtime.migration] Context impl MariaDBImpl.
INFO:     [RomM][alembic.runtime.migration] Will assume non-transactional DDL.
INFO:     [init][2024-10-11 00:09:10] starting gunicorn
INFO:     [init][2024-10-11 00:09:10] waiting for gunicorn socket file...
[2024-10-11 00:09:10 +0200] [14] [INFO] Starting gunicorn 22.0.0
[2024-10-11 00:09:10 +0200] [14] [INFO] Listening at: http://0.0.0.0:5000,unix:/tmp/gunicorn.sock (14)
[2024-10-11 00:09:10 +0200] [14] [INFO] Using worker: uvicorn.workers.UvicornWorker
[2024-10-11 00:09:10 +0200] [17] [INFO] Booting worker with pid: 17
INFO:     [init][2024-10-11 00:09:11] gunicorn socket file found
INFO:     [init][2024-10-11 00:09:11] starting nginx
INFO:     [init][2024-10-11 00:09:11] starting watcher.py
INFO:     [init][2024-10-11 00:09:11] starting worker.py
INFO:     [init][2024-10-11 00:09:11] starting scheduler.py
INFO:     [RomM][2024-10-11 00:09:11] Connecting to redis in worker.py...
INFO:     [RomM][2024-10-11 00:09:11] Redis connection established in worker.py!
INFO:     [RomM][2024-10-11 00:09:11] Connecting to redis in worker.py...
INFO:     [RomM][2024-10-11 00:09:11] Redis connection established in worker.py!
00:09:11 Worker rq:worker:da43a36edcea477886c07e904c3c2579 started with PID 29, version 1.16.2
00:09:11 Subscribing to channel rq:pubsub:da43a36edcea477886c07e904c3c2579
00:09:11 *** Listening on high, default, low...
00:09:11 Cleaning registries for queue: high
00:09:11 Cleaning registries for queue: default
00:09:11 Cleaning registries for queue: low
INFO:     [RomM][2024-10-11 00:09:14] Connecting to redis in /src/.venv/bin/gunicorn...
INFO:     [RomM][2024-10-11 00:09:14] Redis connection established in /src/.venv/bin/gunicorn!
INFO:     [RomM][2024-10-11 00:09:14] Connecting to redis in /src/.venv/bin/gunicorn...
INFO:     [RomM][2024-10-11 00:09:14] Redis connection established in /src/.venv/bin/gunicorn!
INFO:     [RomM][2024-10-11 00:09:15] Connecting to redis in watcher.py...
INFO:     [RomM][2024-10-11 00:09:15] Redis connection established in watcher.py!
INFO:     [RomM][2024-10-11 00:09:15] Connecting to redis in watcher.py...
INFO:     [RomM][2024-10-11 00:09:15] Redis connection established in watcher.py!
INFO:     [RomM][2024-10-11 00:09:15] Connecting to redis in scheduler.py...
INFO:     [RomM][2024-10-11 00:09:15] Redis connection established in scheduler.py!
INFO:     [RomM][2024-10-11 00:09:15] Connecting to redis in scheduler.py...
INFO:     [RomM][2024-10-11 00:09:15] Redis connection established in scheduler.py!
INFO:     [RomM][2024-10-11 00:09:15] Watching /romm/library/roms for changes
INFO:     [RomM][2024-10-11 00:09:16] Starting scheduler
[2024-10-11 00:09:16 +0200] [17] [INFO] Started server process [17]
[2024-10-11 00:09:16 +0200] [17] [INFO] Waiting for application startup.
[2024-10-11 00:09:16 +0200] [17] [INFO] Application startup complete.
[2024-10-11 00:09:17 +0200] [17] [INFO] ('10.42.0.1', 0) - "WebSocket /ws/socket.io/?EIO=4&transport=websocket" [accepted]
[2024-10-11 00:09:17 +0200] [17] [INFO] connection open
Unexpected Error in pubsub listening thread
Traceback (most recent call last):
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 274, in connect
    await self.retry.call_with_retry(
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
    return await do()
           ^^^^^^^^^^
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 681, in _connect
    reader, writer = await asyncio.open_connection(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/streams.py", line 48, in open_connection
    transport, _ = await loop.create_connection(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/base_events.py", line 1130, in create_connection
    raise OSError('Multiple exceptions: {}'.format(
OSError: Multiple exceptions: [Errno 111] Connect call failed ('::1', 6379, 0, 0), [Errno 111] Connect call failed ('127.0.0.1', 6379)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/src/.venv/lib/python3.12/site-packages/socketio/async_pubsub_manager.py", line 199, in _thread
    async for message in self._listen():  # pragma: no branch
  File "/src/.venv/lib/python3.12/site-packages/socketio/async_redis_manager.py", line 102, in _listen
    await self.pubsub.subscribe(self.channel)
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/client.py", line 1002, in subscribe
    ret_val = await self.execute_command("SUBSCRIBE", *new_channels.keys())
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/client.py", line 851, in execute_command
    await self.connect()
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/client.py", line 861, in connect
    self.connection = await self.connection_pool.get_connection(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 1083, in get_connection
    await self.ensure_connection(connection)
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 1116, in ensure_connection
    await connection.connect()
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 282, in connect
    raise ConnectionError(self._error_message(e))
redis.exceptions.ConnectionError: Error connecting to localhost:6379. Multiple exceptions: [Errno 111] Connect call failed ('::1', 6379, 0, 0), [Errno 111] Connect call failed ('127.0.0.1', 6379).
Unexpected Error in pubsub listening thread
Traceback (most recent call last):
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 274, in connect
    await self.retry.call_with_retry(
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/retry.py", line 59, in call_with_retry
    return await do()
           ^^^^^^^^^^
  File "/src/.venv/lib/python3.12/site-packages/redis/asyncio/connection.py", line 681, in _connect
    reader, writer = await asyncio.open_connection(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/streams.py", line 48, in open_connection
    transport, _ = await loop.create_connection(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/asyncio/base_events.py", line 1130, in create_connection
    raise OSError('Multiple exceptions: {}'.format(
OSError: Multiple exceptions: [Errno 111] Connect call failed ('::1', 6379, 0, 0), [Errno 111] Connect call failed ('127.0.0.1', 6379)

Desktop (please complete the following information):

Smartphone (please complete the following information):

Additional context The web application works, but no task is being executed (ex: scan).

gantoine commented 1 week ago

Post your env variables and/or docker-compose (hiding any sensitive keys).