Knowledge Base
Troubleshooting ices problems
Jul 16, 2008 01:31 PM
Question:
I'm having problems getting ices to run properly. How can I diagnose this?OR
I'm using ices/ices-cc and my source process occasionally exits without recording anything to the source log. How do I fix this?
Answer:
A crash in ices virtually always means that you're trying to play an MP3 which is badly corrupted. ices is quite good at recovering from bad MP3s, however in rare cases the occasional bad MP3 may cause it to crash.The easiest way to diagnose this (and other ices problems) is to run ices manually, however this needs to be done in a particular way to avoid damaging your filesystem permissions. DO NOT ATTEMPT TO RUN ICES AS ROOT. Instead, please follow these steps:
- Login to the affected Centova Cast account.
- If you are having problems with ices crashing: Start the stream if it is not already started, then click "Deactivate source" in the lefthand column to stop ices.
If you are having problems getting ices to run at all: Edit the stream settings, click the Source tab, and set the server-side source status to "Disabled". Then start the stream. - Login to your server as root via SSH and run the following commands:
su - centovacast -s /bin/bash
cd /home/centovacast/vhosts/USERNAME/
/usr/local/ices/bin/ices -vvv -c etc/source.conf
Replace USERNAME with the username of the appropriate Centova Cast account, of course. - Leave the stream running (and your SSH terminal window open) until ices terminates. ices will continue displaying its progress (including the songs it is attempting to play) on your terminal.
If you are experiencing crashes, this will allow you to determine which MP3 was being played at the time of the crash, and possibly determine what other factors may have been involved in the crash.
Common output from ices
double free or corruption
If you receive an error similar to the following:
*** glibc detected *** /usr/local/ices/bin/ices: double free or corruption
...this typically means one of a few things:
- Your streaming server has reached its source limit. If you're using ShoutCast, this likely means another source is already connected. If you're using IceCast, it likely means that you've reached your "max sources" limit.
- Centova Cast's dynamic playlist system is not working, which would indicate a damaged Centova Cast installation and/or a problem with your PHP CLI installation.
You can test this by checking /home/centovacast/vhosts/USERNAME/etc/source.conf and looking for a line that looks like:
<Module>/home/centovacast/system/runascc/runascc exec ccmanage icesnext username 0123456789abcdef</Module>
Copy the command inside the <Module> tags and run it as a shell command, i.e. for the above example, you might run:
/home/centovacast/system/runascc/runascc exec ccmanage icesnext username 0123456789abcdef
This should output precisely two lines. The first line should be the path to an MP3 file from your media library, and the second line should be the artist and track name for that MP3 file.
If any other lines or errors are displayed, you'll need to determine why and resolve the problem. You may need to refer to the Disaster Recovery article. - Something else is preventing a successful connection to the server. Check that you're using the correct IP address, port, and so-on.



