* [PATCH-for-5.1 0/2] fuzz: broken build fixes @ 2020-07-08 20:01 Alexander Bulekov 2020-07-08 20:01 ` [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing Alexander Bulekov 2020-07-08 20:01 ` [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork Alexander Bulekov 0 siblings, 2 replies; 12+ messages in thread From: Alexander Bulekov @ 2020-07-08 20:01 UTC (permalink / raw) To: qemu-devel; +Cc: liq3ea, philmd, Alexander Bulekov Hi, These fix build-breaking problems with --enable-fuzzing The first patch prevents --enable-fuzzing from overwriting CFLAGS. The second patch adds a missing header to fuzz.c -Alex Alexander Bulekov (2): configure: do not clobber CFLAGS with --enable-fuzzing fuzz: add missing header for rcu_enable_atfork configure | 2 +- tests/qtest/fuzz/fuzz.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) -- 2.26.2 ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing 2020-07-08 20:01 [PATCH-for-5.1 0/2] fuzz: broken build fixes Alexander Bulekov @ 2020-07-08 20:01 ` Alexander Bulekov 2020-07-08 23:49 ` Li Qiang 2020-07-09 5:01 ` Philippe Mathieu-Daudé 2020-07-08 20:01 ` [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork Alexander Bulekov 1 sibling, 2 replies; 12+ messages in thread From: Alexander Bulekov @ 2020-07-08 20:01 UTC (permalink / raw) To: qemu-devel; +Cc: liq3ea, philmd, Alexander Bulekov When configuring with --enable-fuzzing, we overwrote the CFLAGS added by all the preceding checks. Instead of overwriting CFLAGS, append the ones we need. Fixes: adc28027ff ("fuzz: add configure flag --enable-fuzzing") Reported-by: Li Qiang <liq3ea@163.com> Signed-off-by: Alexander Bulekov <alxndr@bu.edu> --- configure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure b/configure index ee6c3c6792..078ebaa9f3 100755 --- a/configure +++ b/configure @@ -7898,7 +7898,7 @@ if test "$fuzzing" = "yes" ; then if test "$have_fuzzer" = "yes"; then FUZZ_LDFLAGS=" -fsanitize=address,fuzzer" FUZZ_CFLAGS=" -fsanitize=address,fuzzer" - CFLAGS=" -fsanitize=address,fuzzer-no-link" + CFLAGS="$CFLAGS -fsanitize=address,fuzzer-no-link" else error_exit "Your compiler doesn't support -fsanitize=address,fuzzer" exit 1 -- 2.26.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing 2020-07-08 20:01 ` [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing Alexander Bulekov @ 2020-07-08 23:49 ` Li Qiang 2020-07-09 5:01 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 12+ messages in thread From: Li Qiang @ 2020-07-08 23:49 UTC (permalink / raw) To: Alexander Bulekov Cc: Philippe Mathieu-Daudé, 李强, Qemu Developers Alexander Bulekov <alxndr@bu.edu> 于2020年7月9日周四 上午4:02写道: > > When configuring with --enable-fuzzing, we overwrote the CFLAGS > added by all the preceding checks. Instead of overwriting CFLAGS, append > the ones we need. > > Fixes: adc28027ff ("fuzz: add configure flag --enable-fuzzing") > Reported-by: Li Qiang <liq3ea@163.com> > Signed-off-by: Alexander Bulekov <alxndr@bu.edu> Tested-by: Li Qiang <liq3ea@gmail.com> Reviewed-by: Li Qiang <liq3ea@gmail.com> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index ee6c3c6792..078ebaa9f3 100755 > --- a/configure > +++ b/configure > @@ -7898,7 +7898,7 @@ if test "$fuzzing" = "yes" ; then > if test "$have_fuzzer" = "yes"; then > FUZZ_LDFLAGS=" -fsanitize=address,fuzzer" > FUZZ_CFLAGS=" -fsanitize=address,fuzzer" > - CFLAGS=" -fsanitize=address,fuzzer-no-link" > + CFLAGS="$CFLAGS -fsanitize=address,fuzzer-no-link" > else > error_exit "Your compiler doesn't support -fsanitize=address,fuzzer" > exit 1 > -- > 2.26.2 > > ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing 2020-07-08 20:01 ` [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing Alexander Bulekov 2020-07-08 23:49 ` Li Qiang @ 2020-07-09 5:01 ` Philippe Mathieu-Daudé 1 sibling, 0 replies; 12+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-09 5:01 UTC (permalink / raw) To: Alexander Bulekov, qemu-devel; +Cc: liq3ea On 7/8/20 10:01 PM, Alexander Bulekov wrote: > When configuring with --enable-fuzzing, we overwrote the CFLAGS > added by all the preceding checks. Instead of overwriting CFLAGS, append > the ones we need. > > Fixes: adc28027ff ("fuzz: add configure flag --enable-fuzzing") > Reported-by: Li Qiang <liq3ea@163.com> > Signed-off-by: Alexander Bulekov <alxndr@bu.edu> > --- > configure | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/configure b/configure > index ee6c3c6792..078ebaa9f3 100755 > --- a/configure > +++ b/configure > @@ -7898,7 +7898,7 @@ if test "$fuzzing" = "yes" ; then > if test "$have_fuzzer" = "yes"; then > FUZZ_LDFLAGS=" -fsanitize=address,fuzzer" > FUZZ_CFLAGS=" -fsanitize=address,fuzzer" > - CFLAGS=" -fsanitize=address,fuzzer-no-link" > + CFLAGS="$CFLAGS -fsanitize=address,fuzzer-no-link" > else > error_exit "Your compiler doesn't support -fsanitize=address,fuzzer" > exit 1 > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-08 20:01 [PATCH-for-5.1 0/2] fuzz: broken build fixes Alexander Bulekov 2020-07-08 20:01 ` [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing Alexander Bulekov @ 2020-07-08 20:01 ` Alexander Bulekov 2020-07-09 5:03 ` Philippe Mathieu-Daudé 2020-07-09 5:18 ` Thomas Huth 1 sibling, 2 replies; 12+ messages in thread From: Alexander Bulekov @ 2020-07-08 20:01 UTC (permalink / raw) To: qemu-devel Cc: Laurent Vivier, Thomas Huth, liq3ea, Alexander Bulekov, Bandan Das, Stefan Hajnoczi, Paolo Bonzini, philmd In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced in d6919e4cb6. I added a call to rcu_enable_atfork after the call to qemu_init in fuzz.c, but forgot to include the corresponding header, breaking --enable-fuzzing --enable-werror builds. Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") Signed-off-by: Alexander Bulekov <alxndr@bu.edu> --- tests/qtest/fuzz/fuzz.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c index a36d9038e0..0b66e43409 100644 --- a/tests/qtest/fuzz/fuzz.c +++ b/tests/qtest/fuzz/fuzz.c @@ -19,6 +19,7 @@ #include "sysemu/runstate.h" #include "sysemu/sysemu.h" #include "qemu/main-loop.h" +#include "qemu/rcu.h" #include "tests/qtest/libqtest.h" #include "tests/qtest/libqos/qgraph.h" #include "fuzz.h" -- 2.26.2 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-08 20:01 ` [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork Alexander Bulekov @ 2020-07-09 5:03 ` Philippe Mathieu-Daudé 2020-07-09 5:09 ` Philippe Mathieu-Daudé 2020-07-09 5:18 ` Thomas Huth 1 sibling, 1 reply; 12+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-09 5:03 UTC (permalink / raw) To: Alexander Bulekov, qemu-devel Cc: Laurent Vivier, Thomas Huth, liq3ea, Bandan Das, Stefan Hajnoczi, Paolo Bonzini On 7/8/20 10:01 PM, Alexander Bulekov wrote: > In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced > in d6919e4cb6. I added a call to rcu_enable_atfork after the > call to qemu_init in fuzz.c, but forgot to include the corresponding > header, breaking --enable-fuzzing --enable-werror builds. > > Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") > Signed-off-by: Alexander Bulekov <alxndr@bu.edu> > --- > tests/qtest/fuzz/fuzz.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c > index a36d9038e0..0b66e43409 100644 > --- a/tests/qtest/fuzz/fuzz.c > +++ b/tests/qtest/fuzz/fuzz.c > @@ -19,6 +19,7 @@ > #include "sysemu/runstate.h" > #include "sysemu/sysemu.h" > #include "qemu/main-loop.h" > +#include "qemu/rcu.h" > #include "tests/qtest/libqtest.h" > #include "tests/qtest/libqos/qgraph.h" > #include "fuzz.h" > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-09 5:03 ` Philippe Mathieu-Daudé @ 2020-07-09 5:09 ` Philippe Mathieu-Daudé 2020-07-09 5:15 ` Thomas Huth 0 siblings, 1 reply; 12+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-09 5:09 UTC (permalink / raw) To: Alexander Bulekov, qemu-devel Cc: Laurent Vivier, Thomas Huth, liq3ea, Bandan Das, Stefan Hajnoczi, Paolo Bonzini On 7/9/20 7:03 AM, Philippe Mathieu-Daudé wrote: > On 7/8/20 10:01 PM, Alexander Bulekov wrote: >> In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced >> in d6919e4cb6. I added a call to rcu_enable_atfork after the >> call to qemu_init in fuzz.c, but forgot to include the corresponding >> header, breaking --enable-fuzzing --enable-werror builds. >> >> Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") >> Signed-off-by: Alexander Bulekov <alxndr@bu.edu> >> --- >> tests/qtest/fuzz/fuzz.c | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c >> index a36d9038e0..0b66e43409 100644 >> --- a/tests/qtest/fuzz/fuzz.c >> +++ b/tests/qtest/fuzz/fuzz.c >> @@ -19,6 +19,7 @@ >> #include "sysemu/runstate.h" >> #include "sysemu/sysemu.h" >> #include "qemu/main-loop.h" >> +#include "qemu/rcu.h" >> #include "tests/qtest/libqtest.h" >> #include "tests/qtest/libqos/qgraph.h" >> #include "fuzz.h" >> > > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > Please add the include to softmmu/vl.c too. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-09 5:09 ` Philippe Mathieu-Daudé @ 2020-07-09 5:15 ` Thomas Huth 2020-07-09 13:15 ` Philippe Mathieu-Daudé 0 siblings, 1 reply; 12+ messages in thread From: Thomas Huth @ 2020-07-09 5:15 UTC (permalink / raw) To: Philippe Mathieu-Daudé, Alexander Bulekov, qemu-devel Cc: Laurent Vivier, Paolo Bonzini, Bandan Das, liq3ea, Stefan Hajnoczi On 09/07/2020 07.09, Philippe Mathieu-Daudé wrote: > On 7/9/20 7:03 AM, Philippe Mathieu-Daudé wrote: >> On 7/8/20 10:01 PM, Alexander Bulekov wrote: >>> In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced >>> in d6919e4cb6. I added a call to rcu_enable_atfork after the >>> call to qemu_init in fuzz.c, but forgot to include the corresponding >>> header, breaking --enable-fuzzing --enable-werror builds. >>> >>> Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") >>> Signed-off-by: Alexander Bulekov <alxndr@bu.edu> >>> --- >>> tests/qtest/fuzz/fuzz.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c >>> index a36d9038e0..0b66e43409 100644 >>> --- a/tests/qtest/fuzz/fuzz.c >>> +++ b/tests/qtest/fuzz/fuzz.c >>> @@ -19,6 +19,7 @@ >>> #include "sysemu/runstate.h" >>> #include "sysemu/sysemu.h" >>> #include "qemu/main-loop.h" >>> +#include "qemu/rcu.h" >>> #include "tests/qtest/libqtest.h" >>> #include "tests/qtest/libqos/qgraph.h" >>> #include "fuzz.h" >>> >> >> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> > > Please add the include to softmmu/vl.c too. Why? Did you run into compile problems here, too? Thomas ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-09 5:15 ` Thomas Huth @ 2020-07-09 13:15 ` Philippe Mathieu-Daudé 0 siblings, 0 replies; 12+ messages in thread From: Philippe Mathieu-Daudé @ 2020-07-09 13:15 UTC (permalink / raw) To: Thomas Huth, Alexander Bulekov, qemu-devel Cc: Laurent Vivier, Paolo Bonzini, Bandan Das, liq3ea, Stefan Hajnoczi On 7/9/20 7:15 AM, Thomas Huth wrote: > On 09/07/2020 07.09, Philippe Mathieu-Daudé wrote: >> On 7/9/20 7:03 AM, Philippe Mathieu-Daudé wrote: >>> On 7/8/20 10:01 PM, Alexander Bulekov wrote: >>>> In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced >>>> in d6919e4cb6. I added a call to rcu_enable_atfork after the >>>> call to qemu_init in fuzz.c, but forgot to include the corresponding >>>> header, breaking --enable-fuzzing --enable-werror builds. >>>> >>>> Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") >>>> Signed-off-by: Alexander Bulekov <alxndr@bu.edu> >>>> --- >>>> tests/qtest/fuzz/fuzz.c | 1 + >>>> 1 file changed, 1 insertion(+) >>>> >>>> diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c >>>> index a36d9038e0..0b66e43409 100644 >>>> --- a/tests/qtest/fuzz/fuzz.c >>>> +++ b/tests/qtest/fuzz/fuzz.c >>>> @@ -19,6 +19,7 @@ >>>> #include "sysemu/runstate.h" >>>> #include "sysemu/sysemu.h" >>>> #include "qemu/main-loop.h" >>>> +#include "qemu/rcu.h" >>>> #include "tests/qtest/libqtest.h" >>>> #include "tests/qtest/libqos/qgraph.h" >>>> #include "fuzz.h" >>>> >>> >>> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> >> >> Please add the include to softmmu/vl.c too. > > Why? Did you run into compile problems here, too? No, because it is unexpectedly pulled by "exec/memory.h". You are right however this is unrelated to 45222b9a90, it comes from 73c6e4013b ("rcu: completely disable pthread_atfork callbacks as soon as possible"), so I'll send a separate patch. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-08 20:01 ` [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork Alexander Bulekov 2020-07-09 5:03 ` Philippe Mathieu-Daudé @ 2020-07-09 5:18 ` Thomas Huth 2020-07-09 13:38 ` Alexander Bulekov 1 sibling, 1 reply; 12+ messages in thread From: Thomas Huth @ 2020-07-09 5:18 UTC (permalink / raw) To: Alexander Bulekov, qemu-devel Cc: Laurent Vivier, QEMU Trivial, liq3ea, Bandan Das, Stefan Hajnoczi, Paolo Bonzini, philmd On 08/07/2020 22.01, Alexander Bulekov wrote: > In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced > in d6919e4cb6. I added a call to rcu_enable_atfork after the > call to qemu_init in fuzz.c, but forgot to include the corresponding > header, breaking --enable-fuzzing --enable-werror builds. > > Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") > Signed-off-by: Alexander Bulekov <alxndr@bu.edu> > --- > tests/qtest/fuzz/fuzz.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c > index a36d9038e0..0b66e43409 100644 > --- a/tests/qtest/fuzz/fuzz.c > +++ b/tests/qtest/fuzz/fuzz.c > @@ -19,6 +19,7 @@ > #include "sysemu/runstate.h" > #include "sysemu/sysemu.h" > #include "qemu/main-loop.h" > +#include "qemu/rcu.h" > #include "tests/qtest/libqtest.h" > #include "tests/qtest/libqos/qgraph.h" > #include "fuzz.h" D'oh, mea culpa, I also apparently did not properly compile test that patch :-( I think we need a CI job that at least compile tests the fuzzing code - I can look into that once Alex Bennée's current testing pull request has been merged. Alexander, is there also a way to run a fuzzer just for some few minutes? E.g. a fuzzing test that finishes quickly, or an option to limit the time that a test is running? If so, we could also add that quick test to the CI pipeline, to make sure that the fuzzer code does not only compile, but is also able to run (at least a little bit). For this patch here: Reviewed-by: Thomas Huth <thuth@redhat.com> ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-09 5:18 ` Thomas Huth @ 2020-07-09 13:38 ` Alexander Bulekov 2020-07-09 13:57 ` Thomas Huth 0 siblings, 1 reply; 12+ messages in thread From: Alexander Bulekov @ 2020-07-09 13:38 UTC (permalink / raw) To: Thomas Huth Cc: Laurent Vivier, QEMU Trivial, liq3ea, qemu-devel, Bandan Das, Stefan Hajnoczi, Paolo Bonzini, philmd On 200709 0718, Thomas Huth wrote: > On 08/07/2020 22.01, Alexander Bulekov wrote: > > In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced > > in d6919e4cb6. I added a call to rcu_enable_atfork after the > > call to qemu_init in fuzz.c, but forgot to include the corresponding > > header, breaking --enable-fuzzing --enable-werror builds. > > > > Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") > > Signed-off-by: Alexander Bulekov <alxndr@bu.edu> > > --- > > tests/qtest/fuzz/fuzz.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c > > index a36d9038e0..0b66e43409 100644 > > --- a/tests/qtest/fuzz/fuzz.c > > +++ b/tests/qtest/fuzz/fuzz.c > > @@ -19,6 +19,7 @@ > > #include "sysemu/runstate.h" > > #include "sysemu/sysemu.h" > > #include "qemu/main-loop.h" > > +#include "qemu/rcu.h" > > #include "tests/qtest/libqtest.h" > > #include "tests/qtest/libqos/qgraph.h" > > #include "fuzz.h" > > D'oh, mea culpa, I also apparently did not properly compile test that > patch :-( I think we need a CI job that at least compile tests the > fuzzing code - I can look into that once Alex Bennée's current testing > pull request has been merged. My bad - I should have done a clean build with a version of clang that doesn't require me to -disable-werror > Alexander, is there also a way to run a fuzzer just for some few > minutes? E.g. a fuzzing test that finishes quickly, or an option to > limit the time that a test is running? If so, we could also add that > quick test to the CI pipeline, to make sure that the fuzzer code does > not only compile, but is also able to run (at least a little bit). Yes. I think the sequence could look something like: CC=clang CXX=clang++ ../configure --enable-fuzzing --enable-sanitizers \ --enable-werror make i386-softmmu/fuzz ./i386-softmmu/qemu-fuzz-i386 --fuzz-target=i440fx-qtest-reboot-fuzz -runs=5000 This will run the i440fx fuzzer over 5000 inputs which should finish in a second or so. I don't expect it to actually find any crashes in the i440fx in such a short period, so, ideally, all errors would be fuzzer-related. Where can I get started with building out a CI job for this? One aside: running this right now, QEMU exits and AddressSanitizer complains about some leaks. There is a patch in Paolo's PR that should fix this, but I was surprised that existing CI tests didn't catch it. Is leak detection usually disabled in CI? > For this patch here: > Reviewed-by: Thomas Huth <thuth@redhat.com> Thanks! -Alex ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork 2020-07-09 13:38 ` Alexander Bulekov @ 2020-07-09 13:57 ` Thomas Huth 0 siblings, 0 replies; 12+ messages in thread From: Thomas Huth @ 2020-07-09 13:57 UTC (permalink / raw) To: Alexander Bulekov Cc: Laurent Vivier, QEMU Trivial, Alex Bennée, liq3ea, qemu-devel, Bandan Das, Stefan Hajnoczi, Paolo Bonzini, philmd On 09/07/2020 15.38, Alexander Bulekov wrote: > On 200709 0718, Thomas Huth wrote: >> On 08/07/2020 22.01, Alexander Bulekov wrote: >>> In 45222b9a90, I fixed a broken check for rcu_enable_atfork introduced >>> in d6919e4cb6. I added a call to rcu_enable_atfork after the >>> call to qemu_init in fuzz.c, but forgot to include the corresponding >>> header, breaking --enable-fuzzing --enable-werror builds. >>> >>> Fixes: 45222b9a90 ("fuzz: fix broken qtest check at rcu_disable_atfork") >>> Signed-off-by: Alexander Bulekov <alxndr@bu.edu> >>> --- >>> tests/qtest/fuzz/fuzz.c | 1 + >>> 1 file changed, 1 insertion(+) >>> >>> diff --git a/tests/qtest/fuzz/fuzz.c b/tests/qtest/fuzz/fuzz.c >>> index a36d9038e0..0b66e43409 100644 >>> --- a/tests/qtest/fuzz/fuzz.c >>> +++ b/tests/qtest/fuzz/fuzz.c >>> @@ -19,6 +19,7 @@ >>> #include "sysemu/runstate.h" >>> #include "sysemu/sysemu.h" >>> #include "qemu/main-loop.h" >>> +#include "qemu/rcu.h" >>> #include "tests/qtest/libqtest.h" >>> #include "tests/qtest/libqos/qgraph.h" >>> #include "fuzz.h" >> >> D'oh, mea culpa, I also apparently did not properly compile test that >> patch :-( I think we need a CI job that at least compile tests the >> fuzzing code - I can look into that once Alex Bennée's current testing >> pull request has been merged. > > My bad - I should have done a clean build with a version of clang > that doesn't require me to -disable-werror > >> Alexander, is there also a way to run a fuzzer just for some few >> minutes? E.g. a fuzzing test that finishes quickly, or an option to >> limit the time that a test is running? If so, we could also add that >> quick test to the CI pipeline, to make sure that the fuzzer code does >> not only compile, but is also able to run (at least a little bit). > > Yes. I think the sequence could look something like: > CC=clang CXX=clang++ ../configure --enable-fuzzing --enable-sanitizers \ > --enable-werror > make i386-softmmu/fuzz > ./i386-softmmu/qemu-fuzz-i386 --fuzz-target=i440fx-qtest-reboot-fuzz -runs=5000 > > This will run the i440fx fuzzer over 5000 inputs which should finish in > a second or so. I don't expect it to actually find any crashes in the > i440fx in such a short period, so, ideally, all errors would be > fuzzer-related. > > Where can I get started with building out a CI job for this? I'd suggest to use gitlab, since we're currently focusing on that for our CI. So get an account on gitlab, clone the qemu repository there (https://gitlab.com/qemu-project/qemu) to your account, and then you should almost be ready to go: Edit the .gitlab-ci.yml file in the repository, and once you push your local branch to the gitlab server, you should see the jobs running in the "CI / CD" section. (Not sure anymore whether you have to enable the CI manually for your project, though, but it should not be too hard to find that setting if that's the case) > One aside: running this right now, QEMU exits and AddressSanitizer > complains about some leaks. There is a patch in Paolo's PR that should > fix this, but I was surprised that existing CI tests didn't catch it. Is > leak detection usually disabled in CI? I'm not aware of any CI tests that is currently using leak detection ... so it's certainly welcome if we get more test coverage here! Thomas ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2020-07-09 13:58 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-07-08 20:01 [PATCH-for-5.1 0/2] fuzz: broken build fixes Alexander Bulekov 2020-07-08 20:01 ` [PATCH-for-5.1 1/2] configure: do not clobber CFLAGS with --enable-fuzzing Alexander Bulekov 2020-07-08 23:49 ` Li Qiang 2020-07-09 5:01 ` Philippe Mathieu-Daudé 2020-07-08 20:01 ` [PATCH-for-5.1 2/2] fuzz: add missing header for rcu_enable_atfork Alexander Bulekov 2020-07-09 5:03 ` Philippe Mathieu-Daudé 2020-07-09 5:09 ` Philippe Mathieu-Daudé 2020-07-09 5:15 ` Thomas Huth 2020-07-09 13:15 ` Philippe Mathieu-Daudé 2020-07-09 5:18 ` Thomas Huth 2020-07-09 13:38 ` Alexander Bulekov 2020-07-09 13:57 ` Thomas Huth
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.