[mythtv-users] Backend crash with malloc(): memory corruption (fast)

Ben Lancaster mail at benlancaster.co.uk
Thu May 7 14:19:03 UTC 2009


On 6 Feb 2009, at 04:10, Allen Edwards wrote:

> Thu, Feb 5, 2009 at 7:13 PM, tim dennis <tdennis.sub at gmail.com> wrote:
>> Another day another Malloc Bug. The diagnostic message that is  
>> printed to
>> the stderr when using MALLOC_CHECK_=3 function is the same basic  
>> message
>> that appears in the mythtv backend log:
>>
>> Example Diagnostic output:
>>
>> *** glibc detected *** mythbackend: malloc(): memory corruption  
>> (fast):
>> 0x00000000028c8e8f ***
>>
>> Example Mythbackend log:
>>
>> *** glibc detected *** /usr/bin/mythbackend: malloc(): memory  
>> corruption
>> (fast): 0x0000000001c6713f ***
>>
>>
>> There seems to be no particular reason that causes the malloc bug  
>> to occur.
>>
>> "Crashes  in  malloc(),  calloc(), realloc(), or free() are almost
>> always related to heap corruption, such as overflowing an allocated
>> chunk or freeing the same pointer twice."
>>
>> So is this what the backend is doing?
>>
>> Any ideas anybody?
>>
>> t.dennis
>>
>>
>> On Tue, Feb 3, 2009 at 10:18 PM, tim dennis <tdennis.sub at gmail.com>  
>> wrote:
>>>
>>> After the third Malloc Bug today I have started the backend in a  
>>> terminal
>>> with the following command:
>>>
>>> MALLOC_CHECK_=3 mythbackend
>>>
>>> Will report back with result when it occurs next
>>>
>>> t.dennis
>>>
>>>
>>>
>>> On Sun, Feb 1, 2009 at 10:23 AM, Andrew Burgess <aab at cichlid.com>  
>>> wrote:
>>>>
>>>>> *** glibc detected *** /usr/bin/mythbackend: malloc(): memory
>>>> corruption (fast): 0xa895a507 ***
>>>>
>>>> man malloc reveals:
>>>>
>>>> Crashes  in  malloc(),  calloc(), realloc(), or free() are almost
>>>> always related to heap corruption, such as overflowing an allocated
>>>> chunk or freeing the same pointer twice.
>>>>      Recent versions of Linux libc (later than 5.4.23) and glibc  
>>>> (2.x)
>>>> include a malloc() implementation which is tunable via environment
>>>> variables.   When
>>>> MALLOC_CHECK_  is  set, a special (less efficient) implementation  
>>>> is
>>>> used which is designed to be tolerant against simple errors, such  
>>>> as
>>>> double calls
>>>> of free() with the same argument, or overruns of a single byte
>>>> (off-by-one bugs).  Not all such errors can be protected against,
>>>> however,  and  memory
>>>> leaks  can  result.   If  MALLOC_CHECK_ is set to 0, any detected  
>>>> heap
>>>> corruption is silently ignored; if set to 1, a diagnostic message  
>>>> is
>>>> printed on
>>>> stderr; if set to 2, abort(3) is called immediately; if set to 3, a
>>>> diagnostic message is printed on stderr and  the  program  is   
>>>> aborted.
>>>> Using  a
>>>> nonzero  MALLOC_CHECK_  value  can  be useful because otherwise a  
>>>> crash
>>>> may happen much later, and the true cause for the problem is then  
>>>> very
>>>> hard to
>>>> track down.
>>>>
>>>> ---------------------------------
>>>>
>>>> so try starting mythbackend like this:
>>>>
>>>> MALLOC_CHECK_=3 /usr/local/bin/mythbackend <other args>
>>>>
>>>> probably by editing the script in /etc/rc.d/init.d (or wherever  
>>>> yours
>>>> is)
>>>> so you keep the other arguments
>>>>
>>>> HTH
>>>>
>>
> I wonder why mine crashes once in 2 months and yours crashes every
> day.  My system is on all the time.  I only watch TV with it and it is
> ATSC only.  There must be some difference in our systems that would be
> a clue.
>
> Allen

I get exactly the same problem a few times a day, even when I'm not  
watching/recording anything.

Is this related to Avenard's VDPAU backport packages, or "vanilla"  
mythtv? I never used to get these when I was running MythDora, but  
they're frequent on my MythBuntu installation.

Ben




More information about the mythtv-users mailing list