Re: dvbstream reliability issues?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Friday 21 March 2008 01:54:13 Adam Nielsen wrote:
> > I use it for hours, even forgetting that it's recording, without
> > segfaults.
> > Try to run it under gdb (after having compiled it with -g) and
> > see with "bt" where it segfaults, or bugs can't be fixed
>
> What's your reception like?  This particular card (DVico Fusion
> HDTV) seems to be somewhat less sensitive compared to my other
> cards, and I think getting corrupted data coming in is what breaks
> dvbstream.  The recording itself is full of blips as if the
> reception is quite bad.
>
> When the recording just stops (no crash) gdb doesn't seem to reveal
> anything amazing:
>
> <Ctrl+C>
> Program received signal SIGINT, Interrupt.
> 0xffffe410 in __kernel_vsyscall ()
> (gdb) bt
> #0  0xffffe410 in __kernel_vsyscall ()
> #1  0xb7ebf77b in poll () from /lib/libc.so.6
> #2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at
> dvbstream.c:1516 (gdb) fr 2
> #2  0x0804aeeb in main (argc=12, argv=0xbfe38484) at
> dvbstream.c:1516 1516            poll(pfds,1,500);
> (gdb) cont
> Continuing.

poll() is used because the dvr device is opened in O_NONBLOCK mode,
that can be replaced with the usual blocking mode (although if it
makes a difference it's probably an indicator of a bug in the driver)

>
>
> If I kill dvbstream and reload it then all is fine, so it seems
> that maybe the card loses sync with the signal, and either
> dvbstream needs to retune the card, or perhaps the kernel driver
> should do that automatically.
>
> When it crashes it looks like this:
>
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7ee153c in memcpy () from /lib/libc.so.6
> (gdb) bt
> #0  0xb7ee153c in memcpy () from /lib/libc.so.6
> #1  0x08049714 in collect_section (section=0x815bef0, pusi=<value
>      optimized out>, buf=0x3ffff59e <Address 0x3ffff59e out of
> bounds>, len=3221135360) at dvbstream.c:579
> #2  0x0804b21b in main (argc=12, argv=0xbffe8084) at
> dvbstream.c:683

len is so big?? this must be an actual bug

>
> (gdb) fr 1
> #1  0x08049714 in collect_section (section=0x815bef0, pusi=<value
>      optimized out>, buf=0x3ffff59e <Address 0x3ffff59e out of
> bounds>, len=3221135360) at dvbstream.c:579
> 579       memcpy(&(section->buf[section->pos]), buf, len);
>
> (gdb) fr 2
> #2  0x0804b21b in main (argc=12, argv=0xbffe8084) at
> dvbstream.c:683 683       skip = collect_section(&(pmt->section),
> pusi, b, l);
>
>
> It looks like the default CFLAGS do some optimisation - let me know
> if you need me to recompile it without this.
>

fortunately a peaceful easter of coding is coming :)

_______________________________________________
linux-dvb mailing list
linux-dvb@xxxxxxxxxxx
http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux