diff mbox series

[FFmpeg-devel] configure: remove false positives with valgrind-memcheck

Message ID 20240609005936.5662-1-pal@sandflow.com
State New
Headers show
Series [FFmpeg-devel] configure: remove false positives with valgrind-memcheck | expand

Checks

Context Check Description
andriy/commit_msg_x86 warning Please wrap lines in the body of the commit message between 60 and 72 characters.
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Pierre-Anthony Lemieux June 9, 2024, 12:59 a.m. UTC
From: Pierre-Anthony Lemieux <pal@palemieux.com>

If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
---
 configure | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

James Almer June 9, 2024, 1:13 a.m. UTC | #1
On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
> From: Pierre-Anthony Lemieux <pal@palemieux.com>
> 
> If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.

I can't reproduce this. Tried with both --disable-optimizations and 
without it, on Ubuntu 22.04 x86_64.
How are you getting these false positives?

> ---
>   configure | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/configure b/configure
> index 6c5b8aab9a..c708f2e38c 100755
> --- a/configure
> +++ b/configure
> @@ -4571,7 +4571,7 @@ case "$toolchain" in
>                   target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
>                   ;;
>               valgrind-memcheck)
> -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
>                   ;;
>           esac
>       ;;
Pierre-Anthony Lemieux June 9, 2024, 5:56 a.m. UTC | #2
On Sat, Jun 8, 2024 at 6:13 PM James Almer <jamrial@gmail.com> wrote:
>
> On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
> > From: Pierre-Anthony Lemieux <pal@palemieux.com>
> >
> > If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
>
> I can't reproduce this. Tried with both --disable-optimizations and
> without it, on Ubuntu 22.04 x86_64.
> How are you getting these false positives?

Command and log at https://pastebin.com/3TKk0RF4

>
> > ---
> >   configure | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/configure b/configure
> > index 6c5b8aab9a..c708f2e38c 100755
> > --- a/configure
> > +++ b/configure
> > @@ -4571,7 +4571,7 @@ case "$toolchain" in
> >                   target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
> >                   ;;
> >               valgrind-memcheck)
> > -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> > +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> >                   ;;
> >           esac
> >       ;;
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
James Almer June 9, 2024, 1:41 p.m. UTC | #3
On 6/9/2024 2:56 AM, Pierre-Anthony Lemieux wrote:
> On Sat, Jun 8, 2024 at 6:13 PM James Almer <jamrial@gmail.com> wrote:
>>
>> On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
>>> From: Pierre-Anthony Lemieux <pal@palemieux.com>
>>>
>>> If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
>>
>> I can't reproduce this. Tried with both --disable-optimizations and
>> without it, on Ubuntu 22.04 x86_64.
>> How are you getting these false positives?
> 
> Command and log at https://pastebin.com/3TKk0RF4

But that command is missing all the extra args configure adds to the 
invocation, before and after your patch.

> 
>>
>>> ---
>>>    configure | 2 +-
>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/configure b/configure
>>> index 6c5b8aab9a..c708f2e38c 100755
>>> --- a/configure
>>> +++ b/configure
>>> @@ -4571,7 +4571,7 @@ case "$toolchain" in
>>>                    target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
>>>                    ;;
>>>                valgrind-memcheck)
>>> -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
>>> +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
>>>                    ;;
>>>            esac
>>>        ;;
>> _______________________________________________
>> ffmpeg-devel mailing list
>> ffmpeg-devel@ffmpeg.org
>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>
>> To unsubscribe, visit link above, or email
>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Pierre-Anthony Lemieux June 9, 2024, 4 p.m. UTC | #4
On Sun, Jun 9, 2024 at 6:41 AM James Almer <jamrial@gmail.com> wrote:
>
> On 6/9/2024 2:56 AM, Pierre-Anthony Lemieux wrote:
> > On Sat, Jun 8, 2024 at 6:13 PM James Almer <jamrial@gmail.com> wrote:
> >>
> >> On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
> >>> From: Pierre-Anthony Lemieux <pal@palemieux.com>
> >>>
> >>> If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
> >>
> >> I can't reproduce this. Tried with both --disable-optimizations and
> >> without it, on Ubuntu 22.04 x86_64.
> >> How are you getting these false positives?
> >
> > Command and log at https://pastebin.com/3TKk0RF4
>
> But that command is missing all the extra args configure adds to the
> invocation, before and after your patch.

Full story.

Before the proposed patch, "./configure --toolchain=valgrind-memcheck;
make fate-lavf-asf" results in "Conditional jump or move depends on
uninitialised value(s)" being emitted on my system (gcc (Ubuntu
9.4.0-1ubuntu1~20.04.1) 9.4.0).

The proposed patch only adds  "--expensive-definedness-checks=yes" to
the "valgrind-memcheck" command line -- this was the result of a
discussion on the mailing list.

After the proposed patch, "./configure --toolchain=valgrind-memcheck;
make fate-lavf-asf" does not result in any error being emitted.

The pastebin is intended to isolate the issue/solution. On my system,
adding/removing "--expensive-definedness-checks=yes" to the command
line removes/triggers the issue.

Let me know if you need additional information.

Thanks for reviewing.

>
> >
> >>
> >>> ---
> >>>    configure | 2 +-
> >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/configure b/configure
> >>> index 6c5b8aab9a..c708f2e38c 100755
> >>> --- a/configure
> >>> +++ b/configure
> >>> @@ -4571,7 +4571,7 @@ case "$toolchain" in
> >>>                    target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
> >>>                    ;;
> >>>                valgrind-memcheck)
> >>> -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> >>> +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> >>>                    ;;
> >>>            esac
> >>>        ;;
> >> _______________________________________________
> >> ffmpeg-devel mailing list
> >> ffmpeg-devel@ffmpeg.org
> >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >>
> >> To unsubscribe, visit link above, or email
> >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
Pierre-Anthony Lemieux June 13, 2024, 5 p.m. UTC | #5
On Sun, Jun 9, 2024 at 9:00 AM Pierre-Anthony Lemieux <pal@sandflow.com> wrote:
>
> On Sun, Jun 9, 2024 at 6:41 AM James Almer <jamrial@gmail.com> wrote:
> >
> > On 6/9/2024 2:56 AM, Pierre-Anthony Lemieux wrote:
> > > On Sat, Jun 8, 2024 at 6:13 PM James Almer <jamrial@gmail.com> wrote:
> > >>
> > >> On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
> > >>> From: Pierre-Anthony Lemieux <pal@palemieux.com>
> > >>>
> > >>> If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
> > >>
> > >> I can't reproduce this. Tried with both --disable-optimizations and
> > >> without it, on Ubuntu 22.04 x86_64.
> > >> How are you getting these false positives?
> > >
> > > Command and log at https://pastebin.com/3TKk0RF4
> >
> > But that command is missing all the extra args configure adds to the
> > invocation, before and after your patch.

Quick note to check if I have addressed your comment.

>
> Full story.
>
> Before the proposed patch, "./configure --toolchain=valgrind-memcheck;
> make fate-lavf-asf" results in "Conditional jump or move depends on
> uninitialised value(s)" being emitted on my system (gcc (Ubuntu
> 9.4.0-1ubuntu1~20.04.1) 9.4.0).
>
> The proposed patch only adds  "--expensive-definedness-checks=yes" to
> the "valgrind-memcheck" command line -- this was the result of a
> discussion on the mailing list.
>
> After the proposed patch, "./configure --toolchain=valgrind-memcheck;
> make fate-lavf-asf" does not result in any error being emitted.
>
> The pastebin is intended to isolate the issue/solution. On my system,
> adding/removing "--expensive-definedness-checks=yes" to the command
> line removes/triggers the issue.
>
> Let me know if you need additional information.
>
> Thanks for reviewing.
>
> >
> > >
> > >>
> > >>> ---
> > >>>    configure | 2 +-
> > >>>    1 file changed, 1 insertion(+), 1 deletion(-)
> > >>>
> > >>> diff --git a/configure b/configure
> > >>> index 6c5b8aab9a..c708f2e38c 100755
> > >>> --- a/configure
> > >>> +++ b/configure
> > >>> @@ -4571,7 +4571,7 @@ case "$toolchain" in
> > >>>                    target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
> > >>>                    ;;
> > >>>                valgrind-memcheck)
> > >>> -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> > >>> +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
> > >>>                    ;;
> > >>>            esac
> > >>>        ;;
> > >> _______________________________________________
> > >> ffmpeg-devel mailing list
> > >> ffmpeg-devel@ffmpeg.org
> > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >>
> > >> To unsubscribe, visit link above, or email
> > >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> > > _______________________________________________
> > > ffmpeg-devel mailing list
> > > ffmpeg-devel@ffmpeg.org
> > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> > >
> > > To unsubscribe, visit link above, or email
> > > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
> > _______________________________________________
> > ffmpeg-devel mailing list
> > ffmpeg-devel@ffmpeg.org
> > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> >
> > To unsubscribe, visit link above, or email
> > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
James Almer June 13, 2024, 5:03 p.m. UTC | #6
On 6/13/2024 2:00 PM, Pierre-Anthony Lemieux wrote:
> On Sun, Jun 9, 2024 at 9:00 AM Pierre-Anthony Lemieux <pal@sandflow.com> wrote:
>>
>> On Sun, Jun 9, 2024 at 6:41 AM James Almer <jamrial@gmail.com> wrote:
>>>
>>> On 6/9/2024 2:56 AM, Pierre-Anthony Lemieux wrote:
>>>> On Sat, Jun 8, 2024 at 6:13 PM James Almer <jamrial@gmail.com> wrote:
>>>>>
>>>>> On 6/8/2024 9:59 PM, pal@sandflow.com wrote:
>>>>>> From: Pierre-Anthony Lemieux <pal@palemieux.com>
>>>>>>
>>>>>> If  `--toolchain=valgrind-memcheck` is selected, fate-lavf-asf fails on a false positive.
>>>>>
>>>>> I can't reproduce this. Tried with both --disable-optimizations and
>>>>> without it, on Ubuntu 22.04 x86_64.
>>>>> How are you getting these false positives?
>>>>
>>>> Command and log at https://pastebin.com/3TKk0RF4
>>>
>>> But that command is missing all the extra args configure adds to the
>>> invocation, before and after your patch.
> 
> Quick note to check if I have addressed your comment.
> 
>>
>> Full story.
>>
>> Before the proposed patch, "./configure --toolchain=valgrind-memcheck;
>> make fate-lavf-asf" results in "Conditional jump or move depends on
>> uninitialised value(s)" being emitted on my system (gcc (Ubuntu
>> 9.4.0-1ubuntu1~20.04.1) 9.4.0).
>>
>> The proposed patch only adds  "--expensive-definedness-checks=yes" to
>> the "valgrind-memcheck" command line -- this was the result of a
>> discussion on the mailing list.
>>
>> After the proposed patch, "./configure --toolchain=valgrind-memcheck;
>> make fate-lavf-asf" does not result in any error being emitted.
>>
>> The pastebin is intended to isolate the issue/solution. On my system,
>> adding/removing "--expensive-definedness-checks=yes" to the command
>> line removes/triggers the issue.
>>
>> Let me know if you need additional information.
>>
>> Thanks for reviewing.

I still can't reproduce this issue. Valgrind does not complain about 
this test at all for me no matter what settings do i use.

The name --expensive-definedness-checks=yes implies that Valgrind will 
do extra work that will slow the process even more than it already is. 
I'd like someone else's opinion about it (Andreas maybe, since he 
suggested this change).

>>
>>>
>>>>
>>>>>
>>>>>> ---
>>>>>>     configure | 2 +-
>>>>>>     1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>>
>>>>>> diff --git a/configure b/configure
>>>>>> index 6c5b8aab9a..c708f2e38c 100755
>>>>>> --- a/configure
>>>>>> +++ b/configure
>>>>>> @@ -4571,7 +4571,7 @@ case "$toolchain" in
>>>>>>                     target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
>>>>>>                     ;;
>>>>>>                 valgrind-memcheck)
>>>>>> -                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
>>>>>> +                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
>>>>>>                     ;;
>>>>>>             esac
>>>>>>         ;;
>>>>> _______________________________________________
>>>>> ffmpeg-devel mailing list
>>>>> ffmpeg-devel@ffmpeg.org
>>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>>
>>>>> To unsubscribe, visit link above, or email
>>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel@ffmpeg.org
>>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>> To unsubscribe, visit link above, or email
>>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
>>> _______________________________________________
>>> ffmpeg-devel mailing list
>>> ffmpeg-devel@ffmpeg.org
>>> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>
>>> To unsubscribe, visit link above, or email
>>> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
diff mbox series

Patch

diff --git a/configure b/configure
index 6c5b8aab9a..c708f2e38c 100755
--- a/configure
+++ b/configure
@@ -4571,7 +4571,7 @@  case "$toolchain" in
                 target_exec_args="--tool=massif --alloc-fn=av_malloc --alloc-fn=av_mallocz --alloc-fn=av_calloc --alloc-fn=av_fast_padded_malloc --alloc-fn=av_fast_malloc --alloc-fn=av_realloc_f --alloc-fn=av_fast_realloc --alloc-fn=av_realloc"
                 ;;
             valgrind-memcheck)
-                target_exec_args="--error-exitcode=1 --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
+                target_exec_args="--error-exitcode=1 --expensive-definedness-checks=yes --malloc-fill=0x2a --track-origins=yes --leak-check=full --gen-suppressions=all --suppressions=$source_path/tests/fate-valgrind.supp"
                 ;;
         esac
     ;;