Preload Error: Broken Pipe while sending command

When a scheduled stream was going to be preloaded an exception was thrown in client.py:314-send().

Logs & configuration

  • Configuration: steering, tank and playout run on the same machine

  • No special configuration, the .env template was in use

Engine Logs

Click to expand logs from engine.log engine.log
engine                 | 2024-11-11 14:44:45,130:engine:INFO - === preload('PlaylistItem [14:45:00 - 15:00:00 | 900.00sec | Source: ...//212.89.182.114:8008/frf]') === - [scheduler.py:179-do_preload()]
engine                 | 2024-11-11 14:44:45,131:engine:INFO - Got free 'http' channel 'in_stream_0' - [mixer.py:160-get_free_channel()]
engine                 | 2024-11-11 14:44:45,131:engine:INFO - Assign channel [2 : in_stream_0] to item - [engine.py:316-preload()]
engine                 | 2024-11-11 14:44:45,143:engine:INFO - Broken Pipe while sending command - [client.py:314-send()]
engine                 | Exception in thread PRELOAD#af3d76bc-b261-4a95-87f3-a806875dbb75:do_preload:2024-11-11_14:44:45:
engine                 | Traceback (most recent call last):
engine                 |   File "/srv/src/aura_engine/core/client.py", line 310, in send
engine                 |     self.socket.sendall(command.encode())
engine                 | BrokenPipeError: [Errno 32] Broken pipe
engine                 |
engine                 | During handling of the above exception, another exception occurred:
engine                 |
engine                 | Traceback (most recent call last):
engine                 |   File "/srv/src/aura_engine/core/client.py", line 121, in exec
engine                 |     response = self.conn.send(command)
engine                 |                ^^^^^^^^^^^^^^^^^^^^^^^
engine                 |   File "/srv/src/aura_engine/core/client.py", line 316, in send
engine                 |     raise CoreConnectionError(msg)
engine                 | aura_engine.core.client.CoreConnectionError: Broken Pipe while sending command
engine                 |
engine                 | During handling of the above exception, another exception occurred:
engine                 |
engine                 | Traceback (most recent call last):
engine                 |   File "/usr/local/lib/python3.11/threading.py", line 1045, in _bootstrap_inner
engine                 |     self.run()
engine                 |   File "/usr/local/lib/python3.11/threading.py", line 1401, in run
engine                 |     self.function(*self.args, **self.kwargs)
engine                 |   File "/srv/src/aura_engine/control.py", line 164, in wrapper_func
engine                 |     self.func(
engine                 |   File "/srv/src/aura_engine/scheduling/scheduler.py", line 180, in do_preload
engine                 |     self.engine.player.preload(items[0])
engine                 |   File "/srv/src/aura_engine/engine.py", line 318, in preload
engine                 |     is_ready = item.play.channel.load(uri, metadata=metadata)
engine                 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engine                 |   File "/srv/src/aura_engine/core/channels.py", line 450, in load
engine                 |     self.stop()
engine                 |   File "/srv/src/aura_engine/base/lang.py", line 74, in wrapper
engine                 |     return member(*args, **kwargs)
engine                 |            ^^^^^^^^^^^^^^^^^^^^^^^
engine                 |   File "/srv/src/aura_engine/core/channels.py", line 510, in stop
engine                 |     response = self.mixer.client.exec(self.name, "stop")
engine                 |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
engine                 |   File "/srv/src/aura_engine/base/lang.py", line 49, in wrapper
engine                 |     raise e
engine                 |   File "/srv/src/aura_engine/base/lang.py", line 45, in wrapper
engine                 |     result = member(*args, **kwargs)
engine                 |              ^^^^^^^^^^^^^^^^^^^^^^^
engine                 |   File "/srv/src/aura_engine/core/client.py", line 126, in exec
engine                 |     raise CoreConnectionError(msg, e)
engine                 | aura_engine.core.client.CoreConnectionError: ('Error while issuing command to Liquidsoap', CoreConnectionError('Broken Pipe while sending command'))
engine                 | 2024-11-11 14:45:00,125:engine:INFO - === on_timeslot_start('ID#af3d76bc-b261-4a95-87f3-a806875dbb75: 14:45:00 - 15:00:00 [Show#1: Musikprogramm]') === - [scheduler.py:104-do_start_timeslot()]
engine                 | 2024-11-11 14:45:00,129:engine:INFO - === play('PlaylistItem [14:45:00 - 15:00:00 | 900.00sec | Source: ...//212.89.182.114:8008/frf]') === - [scheduler.py:201-do_play()]
engine                 | 2024-11-11 14:45:00,131:engine:CRITICAL - PLAY: Item(s) not yet ready (PlaylistItem [14:45:00 - 15:00:00 | 900.00sec | Source: ...//212.89.182.114:8008/frf]) - [scheduler.py:209-do_play()]

Docker Compose

  • The output of docker compose ps --all:
aura-playout-engine-api-postgres-1   postgres:14                          "docker-entrypoint.s…"   engine-api-postgres   2 days ago   Up 2 days (healthy)   5432/tcp
engine                               autoradio/engine:1.0.0-alpha5        "make run"               engine                2 days ago   Up 2 days
engine-api                           autoradio/engine-api:1.0.0-alpha5    "make run.gunicorn"      engine-api            2 days ago   Up 2 days (healthy)   0.0.0.0:8008->8008/tcp, :::8008->8008/tcp
engine-core                          autoradio/engine-core:1.0.0-alpha5   "/usr/bin/env ./entr…"   engine-core           2 days ago   Up 2 days             0.0.0.0:1234->1234/tcp, :::1234->1234/tcp

Environment

Ubuntu 24.04.1 in a virtual machine.

Edited by David Trattnig