[mythtv] Call for testing branch devel/ffmpeg-resync (mpegts-harmonize)
John Pilkington
johnpilk222 at gmail.com
Tue Jul 26 14:03:46 UTC 2022
On 26/07/2022 13:13, John Pilkington wrote:
> On 26/07/2022 11:04, John Pilkington wrote:
>> On 26/07/2022 01:09, Scott Theisen wrote:
>>> On 7/25/22 15:20, Paul Harrison wrote:
>>>> On 25/07/2022 13:37, John Pilkington wrote:
>>>>
>>>>> On 25/07/2022 12:03, Klaas de Waal wrote:
>>>>>> FYI, Fedora in itself does not cause the additional boundary
>>>>>> checks on std::array.
>>>>>> This happens in the RPMFusion package builds because they define a
>>>>>> special GCC preprocessor symbol -D_GLIBCXX_ASSERTIONS.
>>>>>> If you define this symbol in an Ubuntu build then I expect it will
>>>>>> do the boundary checking as well.
>>>>>> The backtrace itself does not indicate a boundary check so I think
>>>>>> this is a different problem.
>>>>>>
>>>>>> Klaas.
>>>>>>
>>>>>>
>>>>>> On Mon, 25 Jul 2022 at 12:39, Paul Harrison <mythtv at mythqml.net
>>>>>> <mailto:mythtv at mythqml.net>> wrote:
>>>>>>
>>>>>> On 24/07/2022 18:42, John Pilkington wrote:
>>>>>>
>>>>>> > On 24/07/2022 16:57, Paul Harrison wrote:
>>>>>> >>
>>>>>> >> I wonder if this could be related to the other Fedora crash
>>>>>> reported
>>>>>> >> recently in Issue #589. It seems by default there is more
>>>>>> bounds
>>>>>> >> checking being done in Fedora which can cause aborts.
>>>>>> >>
>>>>>> >> https://github.com/MythTV/mythtv/issues/589
>>>>>> <https://github.com/MythTV/mythtv/issues/589>
>>>>>> >>
>>>>>> >>
>>>>>> >> If you can get a backtrace it may be possible to track down
>>>>>> where the
>>>>>> >> problem is.
>>>>>> >>
>>>>>> >>
>>>>>> >> Paul H.
>>>>>> >
>>>>>> > It's certainly true that my update from the
>>>>>> > devel/ffmpeg-resync/morelogs branch to yesterday's
>>>>>> devel/ffmpeg-resync
>>>>>> > was accompanied by what appeared to be a big update of F35,
>>>>>> icluding a
>>>>>> > new kernel.
>>>>>> >
>>>>>> > gdb output attached.
>>>>>> >
>>>>>> >
>>>>>>
>>>>>> The backtrace appears to show the abort on shutting down the
>>>>>> preview
>>>>>> generator which is consistent with the abort on playback end.
>>>>>> It looks
>>>>>> like something has changed that is causing an abort when closing
>>>>>> playback down. The crash is in FFMpeg but it could be
>>>>>> something we are
>>>>>> doing to cause it. Maybe Scott has a better idea what has
>>>>>> changed to
>>>>>> cause this. It could also be that the bug was already there in
>>>>>> previous
>>>>>> versions and the extra bounds checking in Fedora is
>>>>>> highlighting the
>>>>>> problem.
>>>>>>
>>>>>>
>>>>>> Can you reproduce this if you revert back to plain master
>>>>>> without the
>>>>>> ffmpeg-resync changes?
>>>>>>
>>>>>>
>>>>>> Try to keep your testing as simple as possible. If you have to
>>>>>> use
>>>>>> external scripts then that is not really helpful. We need to
>>>>>> be able to
>>>>>> reproduce the problem in stock MythTV if possible.
>>>>>>
>>>>>>
>>>>>> Paul H.
>>>>>>
>>>>>
>>>>> The last builds I have of master before resync are 32Pre509 from 3
>>>>> July. There was no hint of this then, or with resyncs before the
>>>>> batch on 23 July. I don't expect difficulty in building current
>>>>> master for F35, but I haven't done it yet.
>>>>>
>>>>> Attached is gdb output for mythcommflag --rebuild on a BBC ONE
>>>>> DVB-T raw fragment.
>>>>>
>>>>> John P
>>>>>
>>>>
>>>> That looks like same as the other abort in malloc_consolidate() you
>>>> reported so it's consistent at least :) Any chance you can run it
>>>> under valgrind?
>>>>
>>>>
>>>> Paul H.
>>>
>>> I second running under valgrind. "malloc_consolidate(): unaligned
>>> fastbin chunk detected" and "double free or corruption (fasttop)"
>>> tell me heap corruption is likely the culprit.
>>>
>>> I did change the PMT exporting from the transport stream (used for
>>> subtitles) to use AVBufferRef instead of a bare pointer. In order to
>>> do further harmonization, it now exports every PMT. Also, I
>>> converted/copied the functions to replace the deprecated AVPacket API.
>>>
>>> Perhaps the extra, more frequent, heap turnover from the PMT export
>>> is revealing a preexisting heap corruption issue, but without running
>>> under valgrind we can't say where the corruption is occurring.
>>>
>>> Regards,
>>>
>>> Scott Theisen
>>>
>> OK, I ran valgrind --leak-check=yes mythcommflag --rebuild --file
>> 20001_20220725112900.ts
>>
>> with master, and waited... It feels quicker on a re-run but
>> specifying the --log-file=filepath seems broken. I have screen copies
>> of around 80 KiB, but I suppose I should now reinstall the resync
>> branch to get somethig more useful.
>>
>> ==185969== LEAK SUMMARY:
>> ==185969== definitely lost: 107,589 bytes in 62 blocks
>> ==185969== indirectly lost: 8,434 bytes in 140 blocks
>> ==185969== possibly lost: 672 bytes in 2 blocks
>> ==185969== still reachable: 98,484 bytes in 780 blocks
>> ==185969== suppressed: 0 bytes in 0 blocks
>>
>>
>
> valgrind log from ffpmpeg-resync on another F35 box, using
>
> valgrind mythcommflag --rebuild --file <filename> 2>&1 | tee logfile
>
> HTH
It was too big. Compressed version instead.
>
> John
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: valgrind_4core_ffresync.log.tar.gz
Type: application/gzip
Size: 8061 bytes
Desc: not available
URL: <http://lists.mythtv.org/pipermail/mythtv-dev/attachments/20220726/ce63ed24/attachment.gz>
More information about the mythtv-dev
mailing list