#67 Segfault on initial scan

v2.0.0rc1
open
nobody
None
5
2010-11-19
2010-11-19
David Liontooth
No

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.

Discussion

  • Channels.conf file -- this is a test setup

     
    Attachments
  • ~/.dvbstreamer/adapter0.db

     
    Attachments
  • Strace of initial scan segfault

     
    Attachments
    • milestone: --> v2.0.0rc1
     
  • 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).

     
  • Adam Charrett
    Adam Charrett
    2010-11-19

    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.

     
  • Adam Charrett
    Adam Charrett
    2010-11-21

    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.