General considerations
Before submitting a new issue, you should have in mind the following things:
- Am I sure that the bug is liquidsoap's fault ?
- Check memory and load on the machine
- Look at exotic things in your script
- Can I reproduce the bug ? Is it deterministic ?
- Try to find a script as minimal as possible that reproduces the issue
- Not all issues are deterministic, however, you should at least experience it regulary.
- If the bug didn't appear before, in what circumstancies did it ?
Did anything external changed before ? Does the bug disapear if I switch
back to the old settings ?
In particular, the daily debian packages repository contains many
old versions, that you can install with:
apt-get install liquidsoap=version
A very interesting information then is the precise version or svn commit where the bug hapened, or, at least, an date interval..
You should also try to give us as much information as possible:
- What version of liquidsoap did you use ?
- How did you install it (debian, gentoo, from source) ?
- Attach a script that reproduces the issue (as minimal as possible)
- Attach the corresponding log
- Explain any details, in particular concerning the topics mentioned above.
All issues should be submited to our trac site at this place: http://savonet.rastageeks.org/newticket
When reporting bugs it is important to attach as much debugging information as possible. Here are a couple situations where you can do something for us.
Exceptions
If one thread aborts with an exception (i.e. you get a message like 2008/02/25 18:07:03 [threads:1] thread "root" aborts with exception Not_found !) the exception backtrace is useful as it leads almost directly to the bug. In order to get it:
- re-configure with --enable-debugging
- fully re-build liquidsoap (make clean and make again)
- try to reproduce your bug by running liquidsoap in a console, not daemonized
- send us the backtrace (a couple lines saying where the exception was raised, what functions it went through, where it was caught and re-raised, etc.)
The first two steps can be done from trunk or the root of a liquidsoap-full tarball, but don't need to: it is enough to re-configure and re-build liquidsoap only.
GDB
Running liq in GDB will bring more info for errors that come from C code. You run liquidsoap under gdb as follows:
~ gdb /path/to/liquidsoap GNU gdb 6.8-debian Copyright (C) 2008 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu"... (gdb) run [ options ] (... liquidsoap crashed ...) (gdb) thread apply all bt
