I've confirmed that using the reload param for playlist() causes my
script to crash, under specific circumstances.

I've read the debugging page and I'm afraid it's a little beyond my
means digest right now, so I hope it will suffice to describe what I've
observed here.

I've broken my main script up into individual scripts - one for each
stream. That way, if one fails, only that script should fail, allowing
the other streams to continue. This turns out to not be the case, as I
will mention.

Liquidsoap crashes when I use reload in a particular script, which
causes all .liq scripts to fail. The other scripts use reload but they
do not cause liquidsoap to crash. I'm guessing reload has trouble with
remote files whose URL's do not end with an audio file extension, such
as download.php?id=12345.

Here are my scripts:

----------------------------

#!/usr/local/bin/liquidsoap

set("log.file.path","/usr/local/etc/liquidsoap/ambient.log")
set("log.level",4)

playlist = playlist(timeout=3600., conservative=true, length=400.,
reload=600)

output.icecast(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128),
host = "localhost",
        port = 8000, password = "lazysusan", mount = "ambient.ogg",
        description="Synthetronica Radio: Ambient", genre="Ambient",
        url="http://audiodef:8000/ambient.ogg";, name="Ambient",
       
fallback([normalize(playlist("/usr/local/etc/liquidsoap/ambient.m3u")),
        single("/var/www/audiodef/htdocs/audio/dc3.ogg")]))

---------------------

#!/usr/local/bin/liquidsoap

set("log.file.path","/usr/local/etc/liquidsoap/downtempo.log")
set("log.level",4)

playlist = playlist(timeout=3600., conservative=true, length=400.,
reload=600)

output.icecast(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128),
host = "localhost",
        port = 8000, password = "lazysusan", mount = "downtempo.ogg",
        description="Synthetronica Radio: Downtempo", genre="Downtempo",
        url="http://audiodef:8000/downtempo.ogg";, name="Downtempo",
       
fallback([normalize(playlist("/usr/local/etc/liquidsoap/downtempo.m3u")),
        single("/var/www/audiodef/htdocs/audio/dc3.ogg")]))

---------------------

#!/usr/local/bin/liquidsoap

set("log.file.path","/usr/local/etc/liquidsoap/techno.log")
set("log.level",4)

playlist = playlist(timeout=3600., conservative=true, length=400.,
reload=600)

output.icecast(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128),
host = "localhost",
        port = 8000, password = "lazysusan", mount = "techno.ogg",
        description="Synthetronica Radio: Techno", genre="Techno",
        url="http://audiodef:8000/techno.ogg";, name="Techno",
       
fallback([normalize(playlist("/usr/local/etc/liquidsoap/techno.m3u")),
        single("/var/www/audiodef/htdocs/audio/dc3.ogg")]))

-------------------

#!/usr/local/bin/liquidsoap

set("log.file.path","/usr/local/etc/liquidsoap/trance.log")
set("log.level",4)

playlist = playlist(timeout=3600., conservative=true, length=400.,
reload=600)

output.icecast(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128), 
host = "localhost",
        port = 8000, password = "lazysusan", mount = "trance.ogg",
        description="Synthetronica Radio: Trance", genre="Trance",
        url="http://audiodef:8000/trance.ogg";, name="Trance",
       
fallback([normalize(playlist("/usr/local/etc/liquidsoap/trance.m3u")),
        single("/var/www/audiodef/htdocs/audio/dc3.ogg")]))

-------------------

#!/usr/local/bin/liquidsoap

set("log.file.path","/usr/local/etc/liquidsoap/test.log")
set("log.level",4)

playlist = playlist(timeout=3600., conservative=true, length=400.)

output.icecast(%vorbis.cbr(samplerate=44100, channels=2, bitrate=128),
host = "localhost",
        port = 8000, password = "lazysusan", mount = "test.ogg",
        description="Synthetronica Radio: Test Stream", genre="Testing",
        url="http://audiodef:8000/test.ogg";, name="Test Stream",
        fallback([normalize(playlist("/usr/local/etc/liquidsoap/test.m3u")),
        single("/var/www/audiodef/htdocs/audio/dc3.ogg")]))

-----------------------

Note that the last one, the test stream, does not have reload. If I add
the reload parameter to the test stream, it causes all streams to fail
after finishing their current playlists. This test stream is the one
whose playlist consists of download.php?id=12345 type URL's. All other
scripts have playlists consisting of URL's ending with .ogg or .mp3.

There are no lines in the log files about what happens - they appear to
simply finish up and stop.

Please let me know what other info I can provide.



On 09/30/11 12:58, Audiodef Online wrote:
> David,
>
> I think this may be related to the reload param of playlist. I'm running
> one more test, but basically, yesterday, I ran a script with reload and
> it crashed. I then ran it without reload and it ran all night. I'm now
> running the script again with reload, and if it crashes, I'll know I've
> spotted a culprit, and will post a backtrace as you requested. :-)
>
> Damien
>
> On 09/30/11 06:29, David Baelde wrote:
>> Damien,
>>
>> We're close to the release but if we get the right information, we
>> might be able to spot one more bug. But we need a precise view on how
>> liquidsoap crashes (you're still unsure that it is a segfault). Please
>> follow the steps at http://wiki.sourcefabric.org/display/LS/Debugging
>> and send us backtraces if you do get a segfault.
>>
>> Thanks,
>
> ------------------------------------------------------------------------------
> All of the data generated in your IT infrastructure is seriously valuable.
> Why? It contains a definitive record of application performance, security
> threats, fraudulent activity, and more. Splunk takes this data and makes
> sense of it. IT sense. And common sense.
> http://p.sf.net/sfu/splunk-d2dcopy2
> _______________________________________________
> Savonet-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/savonet-users
>


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
Savonet-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-users

Reply via email to