Liquidsoap не может записать данные на хост: ошибка сломанного канала при записи ()
Мой аудиопоток liquidsoap только что перестал воспроизводить это сообщение об ошибке каждые несколько запросов.
Error while sending data: could not write data to host: Broken pipe in write()!
Кажется, все быстро исправляется, и я могу возобновить игру, но перерыв раздражает.
Скрипт liquidsoap, который я использую, довольно прост и берет некоторые песни из базы данных.
Вот сценарий.
def apply_metadata(m) =
title = m["title"]
artist = m["artist"]
log("Now playing: #{title} by #{artist}")
end
def apply_track(m) =
get_process_lines("curl http://localhost/api/v1/liquidsoap/playing")
log("actually playing")
end
def get_request() =
uri = list.hd(default="",get_process_lines("curl http://localhost/api/v1/liquidsoap/next"))
request.create(uri)
end
def my_safe(s) =
security = sine()
fallback(track_sensitive=false,[s,security])
end
s = request.dynamic(id="s",timeout=60.0,get_request)
s = on_metadata(apply_metadata,s)
s = on_track(apply_track,s)
s = crossfade(s)
s = my_safe(s)
# We output the stream to an icecast
# server, in ogg/vorbis format.
output.icecast(
%mp3(id3v2=true,bitrate=128,samplerate=44100),
host = "localhost",
port = 8000,
mount = "ogr",
s
)
Вот журнал жидкого мыла.
2018/09/15 17:23:04 [lang:3] Now playing: La Sirena by Banyan
2018/09/15 17:23:17 [lang:3] actually playing
2018/09/15 17:23:17 [ogr:3] Metadata update may have failed with error: 400, Bad Request (HTTP/1.0)
2018/09/15 17:23:17 [clock.wallclock_main:2] We must catchup 13.88 seconds!
2018/09/15 17:23:17 [ogr:2] Error while sending data: could not write data to host: Broken pipe in write()!
2018/09/15 17:23:17 [ogr:3] Closing connection...
2018/09/15 17:23:17 [ogr:3] Will try to reconnect in 3.00 seconds.
2018/09/15 17:23:18 [clock.wallclock_main:2] We must catchup 7.12 seconds (we've been late for 100 rounds)!
2018/09/15 17:23:21 [ogr:3] Connecting mount ogr for source@localhost...
2018/09/15 17:23:21 [ogr:3] Connection setup was successful.
Я не уверен, почему он начал это делать, так как он долгое время работал идеально, и я не внес никаких изменений.
Любые предложения или помощь очень ценятся, так как мое понимание жидкого мыла является очень простым.
Благодарю.
1 ответ
В случае, если кто-то еще сталкивался с этим сообщением об ошибке в моем случае, проблема была не в самом жидком мыле, а в том, что запрос API занимал слишком много времени и вызывал сбой планирования.