Ticket #309 (closed Bugs: fixed)
liquidsoap crashes on wrong data sent to input.harbor
| Reported by: | romeodeepmind | Owned by: | admin |
|---|---|---|---|
| Priority: | 1 | Milestone: | NEAR FUTURE |
| Component: | Liquidsoap | Version: | 0.9.1+svn |
| Keywords: | Cc: | ||
| Mac OSX: | yes | Linux: | yes |
| NetBSD: | yes | Other Operating System: | yes |
| FreeBSD: | yes |
Description
Hi, Savonet Team!
I'm experiencing such kind of problem:
when some client connects to input.harbor with wrong stream format (or maybe it wrong protocol format?) liuidsoap crashes after some attempts to start live.
one abnormal thing here. at the end of log note that harbor return 401 on mount point request. it seems that harbor forgets about this mount.
2009/09/24 08:31:40 [harbor:3] Adding source on mountpoint '/live.ogg' with type 'application/ogg'. 2009/09/24 08:31:40 [harbor:3] Returned 401 for '/live.ogg'. 2009/09/24 08:31:40 [threads:1] Thread "non-blocking queue #1" aborts with exception Unix.Unix_error(31, "write", "")! 2009/09/24 08:31:40 [main:3] Shutdown started!
this is my config:
#!/usr/bin/liquidsoap
%include "/home/vko/misc/settings.liq"
set("server.telnet",true)
set("server.telnet.port",8091)
set("harbor.bind_addr","0.0.0.0")
set("harbor.port",8090)
set("harbor.password", playlistPasswd)
system("/home/vko/misc/live.sh")
################### [Callbacks] ###################
def liveStart(headers)
log("[LIVE-START]: live source goes up! Switching from playlist...")
system("/home/vko/misc/live.sh " ^
quote(headers["ice-name"]) ^ " " ^
quote(headers["ice-description"]) ^ " " ^
quote(headers["ice-genre"]) ^ " " ^
quote(headers["ice-url"]) ^ " " ^
quote(headers["ice-bitrate"]) ^ " " ^
quote(headers["ice-audio-info"]) ^ " " ^
quote(headers["content-type"]) ^ " " ^
quote(headers["user-agent"]))
title = headers["ice-name"] ^ " | " ^
headers["ice-description"] ^ " | " ^
headers["ice-genre"]
log("Live-meta: " ^ title)
ignore(server.execute("liveMeta.insert title=\"#{title}\""))
end
def liveEnd()
log("[LIVE-END]: live source goes down! Switching to playlist...")
system("/home/vko/misc/live.sh")
end
def playlistStart(headers)
log("[PLAYLIST-START]: playlist source goes up! Switching from noise...")
end
def playlistEnd()
log("[PLAYLIST-END]: playlist source goes down! Switching to noise...")
end
################### [Live Sources] ###################
#Live Sources
liveInput = input.harbor( id="live",
"live.ogg",
buffer=2.,
password=livePasswd,
on_connect=liveStart,
on_disconnect=liveEnd)
liveInput = insert_metadata(id="liveMeta", liveInput)
################### [Playlists] ###################
playlistInput = input.harbor(id="playlist",
"playlist.ogg",
buffer=10.,
password=playlistPasswd,
on_connect=playlistStart,
on_disconnect=playlistEnd)
################### [Noise] ###################
noiseInput = noise(id="noise")
noiseInput = amplify(id="noiseAmp", 0.05, noiseInput)
noiseInput = rewrite_metadata([("title","no signal")], noiseInput)
################### [Master Input] ###################
#Master Input
input=fallback( id="mainFallback",
track_sensitive=false,
[liveInput, playlistInput, noiseInput])
################### [Mount Points] ###################
output.icecast.vorbis(
id="oVorbis",
input,
restart=true,
password=omegaRelayPasswd,
mount="rvk.ogg",
name=streamTitle,
genre=streamGenre,
url=streamUrl,
description=streamDescr,
quality=4.
)
and this is what happens
2009/09/24 07:47:22 [harbor:3] New client: 89.179.203.185
2009/09/24 07:47:22 [harbor:4] Header: CONTENT-TYPE, value: application/ogg.
2009/09/24 07:47:22 [harbor:4] Header: ICE-NAME, value: Dj Armative Mixsession.
2009/09/24 07:47:22 [harbor:4] Header: ICE-URL, value: http://radiovkontakte.net.ru.
2009/09/24 07:47:22 [harbor:4] Header: ICE-GENRE, value: House.
2009/09/24 07:47:22 [harbor:4] Header: ICE-BITRATE, value: 192.
2009/09/24 07:47:22 [harbor:4] Header: ICE-PRIVATE, value: 0.
2009/09/24 07:47:22 [harbor:4] Header: ICE-PUBLIC, value: 1.
2009/09/24 07:47:22 [harbor:4] Header: ICE-DESCRIPTION, value: Live.
2009/09/24 07:47:22 [harbor:4] Header: ICE-AUDIO-INFO, value: ice-samplerate=44100;ice-bitrate=192;ice-channels=2.
2009/09/24 07:47:22 [harbor:4] Client logged in.
2009/09/24 07:47:22 [harbor:3] SOURCE request on /live.ogg.
2009/09/24 07:47:22 [harbor:3] Adding source on mountpoint '/live.ogg' with type 'application/ogg'.
2009/09/24 07:47:22 [lang:3] [LIVE-START]: live source goes up! Switching from playlist...
2009/09/24 07:47:22 [lang:3] Live-meta: Dj Armative Mixsession | Live | House
2009/09/24 07:47:22 [live:3] Decoding...
2009/09/24 07:47:22 [threads:3] Created thread "harbor source feeding" (3 total).
2009/09/24 07:47:22 [ogg.demuxer:5] Couldn't find a decoder for page in stream c5e
2009/09/24 07:47:22 [live:2] Feeding stopped: Ogg_demuxer.Invalid_stream
2009/09/24 07:47:22 [lang:3] [LIVE-END]: live source goes down! Switching to playlist...
2009/09/24 07:47:22 [threads:3] Thread "harbor source feeding" exited (2 remaining).
2009/09/24 07:47:40 [harbor:3] New client: 89.179.203.185
2009/09/24 07:47:40 [harbor:4] Header: USER-AGENT, value: (Mozilla Compatible).
2009/09/24 07:47:40 [harbor:3] GET request on /admin/metadata.
2009/09/24 07:47:40 [harbor:4] GET Arg: mount, value: /live.ogg.
2009/09/24 07:47:40 [harbor:4] GET Arg: mode, value: updinfo.
2009/09/24 07:47:40 [harbor:4] GET Arg: pass, value: 56rvk75.
2009/09/24 07:47:40 [harbor:3] Request to update metadata for mount /live.ogg
2009/09/24 07:47:40 [harbor:4] Client logged in.
2009/09/24 07:47:40 [harbor:3] Returned 401 for '/admin/metadata?pass=56rvk75&mode=updinfo&mount=/live.ogg&song=': Source is not mp3.
2009/09/24 07:53:03 [ogg.demuxer:4] Reached last page of logical stream cf07d
2009/09/24 07:53:03 [ogg.demuxer:4] Found a ogg logical stream, serial: bd0f3
2009/09/24 07:53:03 [ogg.demuxer:4] Trying ogg/vorbis format
2009/09/24 07:53:03 [playlist:3] New metadata chunk "Bastian Harper -- Horny Night (Bastian Harper & Daniel Pele Club Mix)"
2009/09/24 07:53:12 [ogg.encoder:4] oVorbis: Setting end of track 858ad97.
2009/09/24 07:53:12 [ogg.encoder:4] oVorbis: Every ogg logical tracks have ended: setting end of stream.
2009/09/24 07:53:12 [ogg.encoder:4] oVorbis: Starting new sequentialized ogg stream.
2009/09/24 07:53:12 [ogg.encoder:4] oVorbis: Starting all streams
2009/09/24 07:59:09 [ogg.demuxer:4] Reached last page of logical stream bd0f3
2009/09/24 08:30:43 [ogg.demuxer:4] Found a ogg logical stream, serial: 17044
2009/09/24 08:30:43 [ogg.demuxer:4] Trying ogg/vorbis format
2009/09/24 08:30:43 [playlist:3] New metadata chunk "Gadjo -- It's Alright (Alex Gaudino Remix)"
2009/09/24 08:30:50 [ogg.encoder:4] oVorbis: Setting end of track 3a4f32b3.
2009/09/24 08:30:50 [ogg.encoder:4] oVorbis: Every ogg logical tracks have ended: setting end of stream.
2009/09/24 08:30:50 [ogg.encoder:4] oVorbis: Starting new sequentialized ogg stream.
2009/09/24 08:30:50 [ogg.encoder:4] oVorbis: Starting all streams
2009/09/24 08:31:40 [harbor:3] New client: 89.179.203.185
2009/09/24 08:31:40 [harbor:4] Header: CONTENT-TYPE, value: application/ogg.
2009/09/24 08:31:40 [harbor:4] Header: ICE-NAME, value: Dj Armative Mixsession.
2009/09/24 08:31:40 [harbor:4] Header: ICE-URL, value: http://radiovkontakte.net.ru.
2009/09/24 08:31:40 [harbor:4] Header: ICE-GENRE, value: House.
2009/09/24 08:31:40 [harbor:4] Header: ICE-BITRATE, value: 192.
2009/09/24 08:31:40 [harbor:4] Header: ICE-PRIVATE, value: 0.
2009/09/24 08:31:40 [harbor:4] Header: ICE-PUBLIC, value: 1.
2009/09/24 08:31:40 [harbor:4] Header: ICE-DESCRIPTION, value: Live.
2009/09/24 08:31:40 [harbor:4] Header: ICE-AUDIO-INFO, value: ice-samplerate=44100;ice-bitrate=192;ice-channels=2.
2009/09/24 08:31:40 [harbor:4] Client logged in.
2009/09/24 08:31:40 [harbor:3] SOURCE request on /live.ogg.
2009/09/24 08:31:40 [harbor:3] Adding source on mountpoint '/live.ogg' with type 'application/ogg'.
2009/09/24 08:31:40 [harbor:3] Returned 401 for '/live.ogg'.
2009/09/24 08:31:40 [threads:1] Thread "non-blocking queue #1" aborts with exception Unix.Unix_error(31, "write", "")!
2009/09/24 08:31:40 [main:3] Shutdown started!
2009/09/24 08:31:40 [main:3] Waiting for threads to terminate...
2009/09/24 08:31:40 [root:3] Shutting down sources...
2009/09/24 08:31:40 [source:4] oVorbis gets down
2009/09/24 08:31:40 [ogg.encoder:4] oVorbis: Setting end of track 23c3ffe8.
2009/09/24 08:31:41 [ogg.encoder:4] oVorbis: Every ogg logical tracks have ended: setting end of stream.
2009/09/24 08:31:41 [source:4] mainFallback gets down
2009/09/24 08:31:41 [source:4] liveMeta gets down
2009/09/24 08:31:41 [source:4] live gets down
2009/09/24 08:31:41 [live:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [liveMeta:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [playlist:4] Activations changed: static=[mainFallback:oVorbis:oVorbis], dynamic=[].
2009/09/24 08:31:41 [source:4] src_5366 gets down
2009/09/24 08:31:41 [source:4] noiseAmp gets down
2009/09/24 08:31:41 [source:4] noise gets down
2009/09/24 08:31:41 [noise:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [noiseAmp:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [src_5366:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [source:4] playlist gets down
2009/09/24 08:31:41 [lang:3] [PLAYLIST-END]: playlist source goes down! Switching to noise...
2009/09/24 08:31:41 [playlist:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [mainFallback:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [oVorbis:4] Activations changed: static=[], dynamic=[].
2009/09/24 08:31:41 [threads:3] Thread "root" exited (1 remaining).
2009/09/24 08:31:41 [playlist:2] Feeding stopped: Failure("relaying stopped")
2009/09/24 08:31:41 [threads:3] Thread "harbor source feeding" exited (0 remaining).
2009/09/24 08:31:41 [main:3] Cleaning downloaded files...
2009/09/24 08:31:41 >>> LOG END
Attachments
Change History
Note: See
TracTickets for help on using
tickets.

