Segfault on initial scan
Status: Beta
Brought to you by:
charrea6
If I run "setupdvbstreamer -A ~/.azap/channels.conf" and then start dvbstreamer, I get this:
# dvbstreamer scan
New setup, performing initial scan to fill in missing details.
Initial scan finished.
DVBStreamer>Segmentation fault
This is a Debian testing amd64 system. I'll upload channels.conf, ~/.dvbstreamer/adapter0.db, and a gdb bt full output.
Channels.conf file -- this is a test setup
~/.dvbstreamer/adapter0.db
Strace of initial scan segfault
After the segfault during the initial scan, I can start dvbstreamer and type help to get the list of commands. If I then type 'quit', the app hangs hard and has to be killed with kill -9. The end of the strace looks like this:
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGWINCH, {SIG_DFL, [], SA_RESTORER, 0x7fd495442f60}, {0x7fd494f81d20, [], SA_RESTORER|SA_RESTART, 0x7fd495442f60}, 8) = 0
futex(0x7fd4918989e0, FUTEX_WAIT, 1500, NULL
This is the hard hang. Or if I run scan 1290142521 (a mux number from lsmux), it scans for a second or two and then segfaults:
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
ioctl(0, TIOCGWINSZ, {ws_row=60, ws_col=157, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(0, TIOCSWINSZ, {ws_row=60, ws_col=157, ws_xpixel=0, ws_ypixel=0}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, SNDCTL_TMR_STOP or TCSETSW, {B38400 opost isig -icanon -echo ...}) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig -icanon -echo ...}) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigaction(SIGWINCH, {0x7f2d82109d20, [], SA_RESTORER|SA_RESTART, 0x7f2d825caf60}, {SIG_DFL, [], SA_RESTORER, 0x7f2d825caf60}, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
write(1, "DVBStreamer>", 12DVBStreamer>) = 12
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(0, <unfinished ...>
+++ killed by SIGSEGV +++
Segmentation fault
My version is Debian experimental's 2.0.0rc1-3, that is dvbstreamer - 2.0.0 (Compiled Sep 10 2010 20:06:59).
Hi David, thanks for the bug report any chance you could try the svn version I vaguely remember fixing a hang todo with exiting but I'm not sure what revision debian are using. A gdb bt full would also be most useful.
Thanks.
Adam
Thanks, Adam -- when I tried to run with gdb, I got "no debugging symbols" -- do I need a special build?
The Debian changelog (http://packages.debian.org/changelogs/pool/main/d/dvbstreamer/dvbstreamer_2.0.0rc1-3/changelog) says "dvbstreamer (2.0.0rc1-1) experimental; urgency=low. * New upstream release -- A Mennucc1 <mennucc1@debian.org> Wed, 01 Sep 2010" -- so that's the version I have, with a couple of packaging fixes (rc3).
Where can I find out if I can send the stream captured by dvbstreamer to stout? I need to use tee to duplicate the stream.
Looks like the debian build was created with -g. Any chance you could try the latest version in svn and configure using the command line
CFLAGS=-ggdb ./configure
make
make install
that would enable the debugging info.
DVBStreamer does not output streams to stdout, You could use the pipe://<path> output to direct a service/stream to a named pipe and then read the data out of that.