qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Peter Maydell <peter.maydell@linaro.org>
Cc: QEMU Developers <qemu-devel@nongnu.org>
Subject: Re: [Qemu-devel] [PULL v3 00/13] qemu-ga patch queue
Date: Mon, 19 Oct 2015 07:44:13 -0500	[thread overview]
Message-ID: <20151019124413.25530.93129@loki> (raw)
In-Reply-To: <CAFEAcA87AM5cqLMBXhGbPSLk_Ro+azvUHbeh_U9459g5imCzQA@mail.gmail.com>

Quoting Peter Maydell (2015-10-18 16:21:30)
> On 17 October 2015 at 17:59, Michael Roth <mdroth@linux.vnet.ibm.com> wrote:
> > Hi Peter,
> >
> > Please note that 'glib-compat: add 2.38/2.40/2.46 asserts' is also in
> > Marc-André's recent ivshmem PULL. The 2 versions of the patches are identical,
> > but let me know if you'd prefer a re-send/re-base later.
> >
> > The following changes since commit 6d57410a79d51d92673c54f26624b44f27fa6214:
> >
> >   Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20151016' into staging (2015-10-17 12:31:33 +0100)
> >
> > are available in the git repository at:
> >
> >
> >   git://github.com/mdroth/qemu.git tags/qga-pull-2015-10-14-v3-tag
> >
> > for you to fetch changes up to ed9f1986d19c2d21667a14b875b2ac8b8a19b8a5:
> >
> >   qga: fix uninitialized value warning for win32 (2015-10-17 11:24:27 -0500)
> >
> > ----------------------------------------------------------------
> > qemu-ga patch queue
> >
> > * add unit tests for qemu-ga
> > * add guest-exec support for posix/w32 guests
> > * added 'qemu-ga' target for w32. this allows us to do full MSI build,
> >   without overloading 'qemu-ga.exe' target with uneeded dependencies.
> > * number of s/g_new/g_malloc/ conversions for qga
> >
> > v2:
> > * commit message and qapi documentation spelling fixes
> > * rename 'inp-data' guest-exec param to 'input-data'
> >
> > v3:
> > * fix OSX build errors for test-qga by using PRId64
> >   format in place of glib's, and dropping use of G_SPAWN_DEFAULT
> >   macro for glib 2.22 compat
> > * fix win32 build warnings for 32-bit builds by avoid int casts
> >   of process HANDLEs
> 
> Still seeing failures, I'm afraid.
> 
> OSX assertion failures:
> 
> GTESTER tests/test-qga
> **
> ERROR:/Users/pm215/src/qemu-for-merges/tests/libqtest.c:238:void
> socket_send(int, const char *, size_t): assertion failed (len != -1):
> (-1 != -1)
> GTester: last random seed: R02S96655a200709f74b72ea42792cd65e8e

Argh, sorry for all this noise.

I suspect what's happening is qemu-ga itself might be failing to load or
bind to the socket, and there appears to be a bug in the test case where
we don't check for an fd == -1 return value in connect_qga(), so probably
end up trying to write to it later.

As far as why qemu-ga doesn't appear to be loading properly under OSX,
I think I need to get an environment set up somewhere to debug. I tried
to get an OSX guest going but apparently you need to own an OSX box to
get a AppleSMC OSK key so I'll have to hold off on that for now.

This isn't really something I think has been tested or deployed very
often outside of linux/w32 guests (and w32 isn't enabled since
interacting with a qemu-ga under wine/binfmt requires a specialized
wine environment), so for now I think the best option is to run test-qga
under CONFIG_LINUX instead of CONFIG_POSIX.

> 
> (repeated about 10 times).
> 
> Test failures on 64-bit ARM:
> TEST: tests/test-qga... (pid=22454)
>   /qga/sync-delimited:                                                 OK
>   /qga/sync:                                                           OK
>   /qga/ping:                                                           OK
>   /qga/info:                                                           OK
>   /qga/network-get-interfaces:                                         OK
>   /qga/get-vcpus:                                                      OK
>   /qga/get-fsinfo:                                                     OK
>   /qga/get-memory-block-info:                                          **
> ERROR:/home/petmay01/qemu/tests/test-qga.c:294:test_qga_get_memory_block_info:
> assertion failed ret: GenericError
> open("/sys/devices/system/memory/"): No such file or directory
> FAIL
> GTester: last random seed: R02S6aa3e1f8b691a9900d2ea9945e79869d
> (pid=22458)
>   /qga/get-memory-blocks:                                              **
> ERROR:/home/petmay01/qemu/tests/test-qga.c:313:test_qga_get_memory_blocks:
> assertion failed ret: GenericError Can't open
> directory"/sys/devices/system/memory/"
> : No such file or directory
> FAIL
> GTester: last random seed: R02S978afb04187410dc690a8b7d6d236793
> (pid=22461)
>   /qga/file-ops:                                                       OK
>   /qga/get-time:                                                       OK
>   /qga/invalid-cmd:                                                    OK
>   /qga/fsfreeze-status:                                                OK
>   /qga/blacklist:                                                      OK
>   /qga/config:                                                         OK
> FAIL: tests/test-qga
> make: *** [check-tests/test-qga] Error 1
> 
> Not sure why it's complaining, /sys/devices/system/memory/ does
> exist on this box.
> 
> Ditto on 32-bit ARM, though that's not surprising as it's just
> a chroot on an equivalently-configured machine to the 64-bit build.

Hmm, I'm have FC22 running via -machine vexpress-a15 and I see the same
error, but in my case /sys/devices/system/memory *is* actually missing:

[mdroth@localhost qemu-build]$ uname -a
Linux localhost 4.0.4-301.fc22.armv7hl #1 SMP Thu May 21 14:37:41 UTC 2015 armv7l armv7l armv7l GNU/Linux
[mdroth@localhost qemu-build]$ ls /sys/devices/
armv7_cortex_a15  breakpoint  platform  software  system  tracepoint virtual
[mdroth@localhost qemu-build]$ ls /sys/devices/system/
clockevents  clocksource  container  cpu
[mdroth@localhost qemu-build]$

I didn't see any config option to disable creation of that sysfs node
so I'm a bit confused...

But given such systems exist I think the right fix is to have
guest-get-memory-block-info return an empty-list rather than error in this
case.

I think that would fix the case you're describing, but only by luck.
Probably the best we can do for now though...


Will send a v4 with these changes unless anyone has any other
suggestions.

> 
> thanks
> -- PMM
> 

      reply	other threads:[~2015-10-19 12:44 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-17 16:59 [Qemu-devel] [PULL v3 00/13] qemu-ga patch queue Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 01/13] build: qemu-ga: add 'qemu-ga' build target for w32 Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 02/13] qga: Use g_new() & friends where that makes obvious sense Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 03/13] qga: add QGA_CONF environment variable Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 04/13] qga: do not override configuration verbosity Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 05/13] qtest: add a few fd-level qmp helpers Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 06/13] glib-compat: add 2.38/2.40/2.46 asserts Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 07/13] tests: add a local test for guest agent Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 08/13] qga: drop guest_file_init helper and replace it with static initializers Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 09/13] qga: guest exec functionality Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 10/13] qga: handle possible SIGPIPE in guest-file-write Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 11/13] qga: handle G_IO_STATUS_AGAIN in ga_channel_write_all() Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 12/13] qga: guest-exec simple stdin/stdout/stderr redirection Michael Roth
2015-10-17 16:59 ` [Qemu-devel] [PULL v3 13/13] qga: fix uninitialized value warning for win32 Michael Roth
2015-10-18 21:21 ` [Qemu-devel] [PULL v3 00/13] qemu-ga patch queue Peter Maydell
2015-10-19 12:44   ` Michael Roth [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151019124413.25530.93129@loki \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).