Opened 14 years ago

Closed 14 years ago

Last modified 13 years ago

#986 closed defect (invalid)

mythbackend 8554 freeze/crash - AFD Error

Reported by: anonymous Owned by: Isaac Richards
Priority: minor Milestone: unknown
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

On my newly-updated-from-0.18 backend/frontend combo machine equipped with two DVB receivers, I'm seeing SVN 8554 mythbackend both freezing and dying intermittently. It's probably related to fairly frequent signal errors in the stream caused by a weak antenna. 0.18 used to skip in recordings and complain in the backend log, but run stably. 8554 will die at the same situation. Logs repeat the following error hundreds of times when this is happening, which I take can happen during either commflag or transcode.

[mpeg2video @ 0xf947a4]get_buffer() failed (stride changed) [mpeg2video @ 0xf947a4]get_buffer() failed (stride changed) 2006-01-10 22:16:16.181 AFD Error: Unknown decoding error 2006-01-10 22:16:16.188 AFD Error: Unknown decoding error [mpeg2video @ 0xf947a4]get_buffer() failed (stride changed) [mpeg2video @ 0xf947a4]get_buffer() failed (stride changed) 2006-01-10 22:16:16.208 AFD Error: Unknown decoding error 2006-01-10 22:16:16.212 AFD Error: Unknown decoding error 2006-01-10 22:16:17.012 GetNextFreeFrame?() unable to lock frame 100 times. Discarding Frames.

Sometimes this will repeat indefinitely, sometimes the process dies.

I've been unable to isolate a recording small enough to post to repeat this problem with, but I'll keep trying.

Change History (3)

comment:1 Changed 14 years ago by danielk

Milestone: unknown
Resolution: invalid
Status: newclosed
Version: head

You can cut off a small section of the broken recording using something like the split command.

I'm closing the ticket until you have something that will allow developers to reproduce the bug.

comment:2 Changed 14 years ago by anonymous

Trouble is, how do I isolate the spot in the file in which the error happens? I found a file which repeatedly crashes the master backend with the above error when running mythcommflag on a remote(!) slave backend. But it's a 2 hour recording, and I can't locate the section with the error based on the warning message.

comment:3 Changed 13 years ago by oa@…

I don't see the frontend crashes that much any more, but mythtranscode is eating plenty of memory in the same circumstances (errors in the source file). I checked under a debugger, and most of the time seems to be spent copying audio data around:

(gdb) info threads

3 Thread 25385904 (LWP 4239) 0x00e34402 in kernel_vsyscall () 2 Thread 68516784 (LWP 4240) 0x00e34402 in kernel_vsyscall () 1 Thread -1208583680 (LWP 4233) 0x4f6c586c in memcpy () from /lib/libc.so.6

(gdb) thread 1 [Switching to thread 1 (Thread -1208583680 (LWP 4233))]#0 0x4f6c586c in memcpy

() from /lib/libc.so.6

(gdb) bt #0 0x4f6c586c in memcpy () from /lib/libc.so.6 #1 0x0805fcaa in AudioOutput::SetSourceBitrate? () #2 0x4393a7be in NuppelVideoPlayer::AddAudioData? ()

from /usr/lib/libmythtv-0.19.so.0

#3 0x43977036 in AvFormatDecoder::GetFrame? ()

from /usr/lib/libmythtv-0.19.so.0

#4 0x4394928f in NuppelVideoPlayer::TranscodeGetNextFrame? ()

from /usr/lib/libmythtv-0.19.so.0

#5 0x08057153 in QValueList<QString>::detachInternal () #6 0x08050ebb in ?? () #7 0x4f66ed5f in libc_start_main () from /lib/libc.so.6 #8 0x0804e795 in ?? () (gdb) thread 2 [Switching to thread 2 (Thread 68516784 (LWP 4240))]#0 0x00e34402 in kernel_vsyscall () (gdb) bt #0 0x00e34402 in kernel_vsyscall () #1 0x4f8a4a1c in pthread_cond_timedwait@@GLIBC_2.3.2 ()

from /lib/libpthread.so.0

#2 0x4200c407 in QWaitCondition::wait ()

from /usr/lib/qt-3.3/lib/libqt-mt.so.3

#3 0x437b15a2 in ThreadedFileWriter::SyncLoop? ()

from /usr/lib/libmythtv-0.19.so.0

#4 0x437b15d1 in ThreadedFileWriter::boot_syncer ()

from /usr/lib/libmythtv-0.19.so.0

#5 0x4f8a2b80 in start_thread () from /lib/libpthread.so.0 #6 0x4f7249ce in clone () from /lib/libc.so.6 (gdb) thread 3 [Switching to thread 3 (Thread 25385904 (LWP 4239))]#0 0x00e34402 in kernel_vsyscall () (gdb) bt #0 0x00e34402 in kernel_vsyscall () #1 0x4f8a4a1c in pthread_cond_timedwait@@GLIBC_2.3.2 ()

from /lib/libpthread.so.0

#2 0x4200c407 in QWaitCondition::wait ()

from /usr/lib/qt-3.3/lib/libqt-mt.so.3

#3 0x437b2932 in ThreadedFileWriter::DiskLoop? ()

from /usr/lib/libmythtv-0.19.so.0

#4 0x437b2a21 in ThreadedFileWriter::boot_writer ()

from /usr/lib/libmythtv-0.19.so.0

#5 0x4f8a2b80 in start_thread () from /lib/libpthread.so.0 #6 0x4f7249ce in clone () from /lib/libc.so.6

I stopped the program about a dozen times, and most times its stack trace indicated the same memcpy() routine.

Note: See TracTickets for help on using tickets.