All of lore.kernel.org
 help / color / mirror / Atom feed
* [PULL 0/2] Update slirp (+ debug test-serial)
@ 2020-07-28 14:31 Marc-André Lureau
  2020-07-28 14:31 ` [PULL 1/2] test-char: abort on serial test error Marc-André Lureau
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Marc-André Lureau @ 2020-07-28 14:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

The following changes since commit 264991512193ee50e27d43e66f832d5041cf3b28:

  Merge remote-tracking branch 'remotes/ericb/tags/pull-bitmaps-2020-07-27' into staging (2020-07-28 14:38:17 +0100)

are available in the Git repository at:

  https://github.com/elmarco/qemu.git tags/slirp-pull-request

for you to fetch changes up to 9c15f57891af7c2cb3baf2d66a1b1f3f87a665ba:

  slirp: update to latest stable-4.2 branch (2020-07-28 18:27:59 +0400)

----------------------------------------------------------------
slirp: update to latest stable-4.2 branch

----------------------------------------------------------------

Marc-André Lureau (2):
  test-char: abort on serial test error
  slirp: update to latest stable-4.2 branch

 tests/test-char.c | 2 +-
 slirp             | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

-- 
2.28.0.rc2.1.g3d20111cbd



^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PULL 1/2] test-char: abort on serial test error
  2020-07-28 14:31 [PULL 0/2] Update slirp (+ debug test-serial) Marc-André Lureau
@ 2020-07-28 14:31 ` Marc-André Lureau
  2020-12-13 22:51   ` Philippe Mathieu-Daudé
  2020-07-28 14:31 ` [PULL 2/2] slirp: update to latest stable-4.2 branch Marc-André Lureau
  2020-07-28 19:42 ` [PULL 0/2] Update slirp (+ debug test-serial) Peter Maydell
  2 siblings, 1 reply; 7+ messages in thread
From: Marc-André Lureau @ 2020-07-28 14:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

We are having issues debugging and bisecting this issue that happen
mostly on patchew. Let's make it abort where it failed to gather some
new informations.

Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 tests/test-char.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/test-char.c b/tests/test-char.c
index 614bdac2df..d35cc839bc 100644
--- a/tests/test-char.c
+++ b/tests/test-char.c
@@ -1200,7 +1200,7 @@ static void char_serial_test(void)
 
     /* test tty alias */
     qemu_opt_set(opts, "backend", "tty", &error_abort);
-    chr = qemu_chr_new_from_opts(opts, NULL, NULL);
+    chr = qemu_chr_new_from_opts(opts, NULL, &error_abort);
     g_assert_nonnull(chr);
     object_unparent(OBJECT(chr));
 
-- 
2.28.0.rc2.1.g3d20111cbd



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PULL 2/2] slirp: update to latest stable-4.2 branch
  2020-07-28 14:31 [PULL 0/2] Update slirp (+ debug test-serial) Marc-André Lureau
  2020-07-28 14:31 ` [PULL 1/2] test-char: abort on serial test error Marc-André Lureau
@ 2020-07-28 14:31 ` Marc-André Lureau
  2020-07-28 19:42 ` [PULL 0/2] Update slirp (+ debug test-serial) Peter Maydell
  2 siblings, 0 replies; 7+ messages in thread
From: Marc-André Lureau @ 2020-07-28 14:31 UTC (permalink / raw)
  To: qemu-devel; +Cc: peter.maydell, Marc-André Lureau

Dr. David Alan Gilbert (1):
      ip_stripoptions use memmove

Jindrich Novy (4):
      Fix possible infinite loops and use-after-free
      Use secure string copy to avoid overflow
      Be sure to initialize sockaddr structure
      Check lseek() for failure

Marc-André Lureau (2):
      util: do not silently truncate
      Merge branch 'stable-4.2' into 'stable-4.2'

Philippe Mathieu-Daudé (3):
      Fix win32 builds by using the SLIRP_PACKED definition
      Fix constness warnings
      Remove unnecessary break

Ralf Haferkamp (2):
      Drop bogus IPv6 messages
      Fix MTU check

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
---
 slirp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/slirp b/slirp
index 2faae0f778..ce94eba204 160000
--- a/slirp
+++ b/slirp
@@ -1 +1 @@
-Subproject commit 2faae0f778f818fadc873308f983289df697eb93
+Subproject commit ce94eba2042d52a0ba3d9e252ebce86715e94275
-- 
2.28.0.rc2.1.g3d20111cbd



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PULL 0/2] Update slirp (+ debug test-serial)
  2020-07-28 14:31 [PULL 0/2] Update slirp (+ debug test-serial) Marc-André Lureau
  2020-07-28 14:31 ` [PULL 1/2] test-char: abort on serial test error Marc-André Lureau
  2020-07-28 14:31 ` [PULL 2/2] slirp: update to latest stable-4.2 branch Marc-André Lureau
@ 2020-07-28 19:42 ` Peter Maydell
  2 siblings, 0 replies; 7+ messages in thread
From: Peter Maydell @ 2020-07-28 19:42 UTC (permalink / raw)
  To: Marc-André Lureau; +Cc: QEMU Developers

On Tue, 28 Jul 2020 at 15:31, Marc-André Lureau
<marcandre.lureau@redhat.com> wrote:
>
> The following changes since commit 264991512193ee50e27d43e66f832d5041cf3b28:
>
>   Merge remote-tracking branch 'remotes/ericb/tags/pull-bitmaps-2020-07-27' into staging (2020-07-28 14:38:17 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/elmarco/qemu.git tags/slirp-pull-request
>
> for you to fetch changes up to 9c15f57891af7c2cb3baf2d66a1b1f3f87a665ba:
>
>   slirp: update to latest stable-4.2 branch (2020-07-28 18:27:59 +0400)
>
> ----------------------------------------------------------------
> slirp: update to latest stable-4.2 branch
>
> ----------------------------------------------------------------


Applied, thanks.

Please update the changelog at https://wiki.qemu.org/ChangeLog/5.1
for any user-visible changes.

-- PMM


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PULL 1/2] test-char: abort on serial test error
  2020-07-28 14:31 ` [PULL 1/2] test-char: abort on serial test error Marc-André Lureau
@ 2020-12-13 22:51   ` Philippe Mathieu-Daudé
  2020-12-15 19:29     ` Eduardo Habkost
  0 siblings, 1 reply; 7+ messages in thread
From: Philippe Mathieu-Daudé @ 2020-12-13 22:51 UTC (permalink / raw)
  To: Marc-André Lureau, qemu-devel
  Cc: peter.maydell, Eduardo Habkost, Paolo Bonzini

On 7/28/20 4:31 PM, Marc-André Lureau wrote:
> We are having issues debugging and bisecting this issue that happen
> mostly on patchew. Let's make it abort where it failed to gather some
> new informations.

"good" news, this started to fail on Gitlab (centos7):

Running test test-char
Unexpected error in object_property_try_add() at ../qom/object.c:1220:
attempt to add duplicate property 'serial-id' to object (type 'container')
ERROR test-char - too few tests run (expected 38, got 9)
make: *** [run-test-86] Error 1

https://gitlab.com/philmd/qemu/-/jobs/908114388
https://gitlab.com/philmd/qemu/-/jobs/908114389
https://gitlab.com/philmd/qemu/-/jobs/908114390

> 
> Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> ---
>  tests/test-char.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tests/test-char.c b/tests/test-char.c
> index 614bdac2df..d35cc839bc 100644
> --- a/tests/test-char.c
> +++ b/tests/test-char.c
> @@ -1200,7 +1200,7 @@ static void char_serial_test(void)
>  
>      /* test tty alias */
>      qemu_opt_set(opts, "backend", "tty", &error_abort);
> -    chr = qemu_chr_new_from_opts(opts, NULL, NULL);
> +    chr = qemu_chr_new_from_opts(opts, NULL, &error_abort);
>      g_assert_nonnull(chr);
>      object_unparent(OBJECT(chr));
>  
> 



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PULL 1/2] test-char: abort on serial test error
  2020-12-13 22:51   ` Philippe Mathieu-Daudé
@ 2020-12-15 19:29     ` Eduardo Habkost
  2020-12-15 21:23       ` Eduardo Habkost
  0 siblings, 1 reply; 7+ messages in thread
From: Eduardo Habkost @ 2020-12-15 19:29 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: Marc-André Lureau, Paolo Bonzini, qemu-devel, peter.maydell

On Sun, Dec 13, 2020 at 11:51:05PM +0100, Philippe Mathieu-Daudé wrote:
> On 7/28/20 4:31 PM, Marc-André Lureau wrote:
> > We are having issues debugging and bisecting this issue that happen
> > mostly on patchew. Let's make it abort where it failed to gather some
> > new informations.
> 
> "good" news, this started to fail on Gitlab (centos7):
> 
> Running test test-char
> Unexpected error in object_property_try_add() at ../qom/object.c:1220:
> attempt to add duplicate property 'serial-id' to object (type 'container')
> ERROR test-char - too few tests run (expected 38, got 9)
> make: *** [run-test-86] Error 1
> 
> https://gitlab.com/philmd/qemu/-/jobs/908114388
> https://gitlab.com/philmd/qemu/-/jobs/908114389
> https://gitlab.com/philmd/qemu/-/jobs/908114390

Do we have any clue what could be causing this?  After looking at
the code, it smells like memory corruption.

At first, I thought it could be due to the multi-threaded test
cases, but the test binary seems to be crashing before the
multi-threaded test cases have an opportunity to run.

> 
> > 
> > Suggested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> > Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
> > ---
> >  tests/test-char.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tests/test-char.c b/tests/test-char.c
> > index 614bdac2df..d35cc839bc 100644
> > --- a/tests/test-char.c
> > +++ b/tests/test-char.c
> > @@ -1200,7 +1200,7 @@ static void char_serial_test(void)
> >  
> >      /* test tty alias */
> >      qemu_opt_set(opts, "backend", "tty", &error_abort);
> > -    chr = qemu_chr_new_from_opts(opts, NULL, NULL);
> > +    chr = qemu_chr_new_from_opts(opts, NULL, &error_abort);
> >      g_assert_nonnull(chr);
> >      object_unparent(OBJECT(chr));
> >  
> > 
> 
> 

-- 
Eduardo



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PULL 1/2] test-char: abort on serial test error
  2020-12-15 19:29     ` Eduardo Habkost
@ 2020-12-15 21:23       ` Eduardo Habkost
  0 siblings, 0 replies; 7+ messages in thread
From: Eduardo Habkost @ 2020-12-15 21:23 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé
  Cc: peter.maydell, Marc-André Lureau, qemu-devel, Paolo Bonzini

On Tue, Dec 15, 2020 at 02:29:22PM -0500, Eduardo Habkost wrote:
> On Sun, Dec 13, 2020 at 11:51:05PM +0100, Philippe Mathieu-Daudé wrote:
> > On 7/28/20 4:31 PM, Marc-André Lureau wrote:
> > > We are having issues debugging and bisecting this issue that happen
> > > mostly on patchew. Let's make it abort where it failed to gather some
> > > new informations.
> > 
> > "good" news, this started to fail on Gitlab (centos7):
> > 
> > Running test test-char
> > Unexpected error in object_property_try_add() at ../qom/object.c:1220:
> > attempt to add duplicate property 'serial-id' to object (type 'container')
> > ERROR test-char - too few tests run (expected 38, got 9)
> > make: *** [run-test-86] Error 1
> > 
> > https://gitlab.com/philmd/qemu/-/jobs/908114388
> > https://gitlab.com/philmd/qemu/-/jobs/908114389
> > https://gitlab.com/philmd/qemu/-/jobs/908114390
> 
> Do we have any clue what could be causing this?  After looking at
> the code, it smells like memory corruption.
> 
> At first, I thought it could be due to the multi-threaded test
> cases, but the test binary seems to be crashing before the
> multi-threaded test cases have an opportunity to run.

I think I know what's happening:

- char_file_test_internal() creates chr using qemu_chardev_new().
- qemu_chardev_new() automatically assigns ID, adds
  chardev to the QOM tree.
- char_file_test_internal() does _not_ own the reference
  to the created object.
- char_file_test_internal() incorrectly calls object_unref().
- object is freed but, but /containers now has a dangling
  pointer.
- char_serial_test() creates a chardev with ID "serial-id", and
  it ends up being allocated at the same address as the old
  object.
- char_serial_test() correctly calls object_unparent().
- object_property_del_child() looks for the right child property
  in the hashtable, finds the dangling pointer with the same
  address, removes the wrong property, leaves a dangling
  "serial-id" property.
- New object is created by char_serial_test() with ID "serial-id".
- object_property_try_add_child() will fail because of the
  dangling "serial-id" property.

The bug in char_file_test_internal() was detected using the
following patch.

I believe the bug was introduced by commit 1e419ee68fa5
("chardev: generate an internal id when none given") because it
changed the reference ownership semantics of
qemu_chardev_new(NULL, ...).

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
diff --git a/qom/object.c b/qom/object.c
index f2ae6e6b2a..5cfed6d7c6 100644
--- a/qom/object.c
+++ b/qom/object.c
@@ -685,6 +685,7 @@ static void object_finalize(void *data)
     object_deinit(obj, ti);
 
     g_assert(obj->ref == 0);
+    g_assert(obj->parent == NULL);
     if (obj->free) {
         obj->free(obj);
     }

-- 
Eduardo



^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2020-12-15 21:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-28 14:31 [PULL 0/2] Update slirp (+ debug test-serial) Marc-André Lureau
2020-07-28 14:31 ` [PULL 1/2] test-char: abort on serial test error Marc-André Lureau
2020-12-13 22:51   ` Philippe Mathieu-Daudé
2020-12-15 19:29     ` Eduardo Habkost
2020-12-15 21:23       ` Eduardo Habkost
2020-07-28 14:31 ` [PULL 2/2] slirp: update to latest stable-4.2 branch Marc-André Lureau
2020-07-28 19:42 ` [PULL 0/2] Update slirp (+ debug test-serial) Peter Maydell

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.