All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Wei Liu <wei.liu2@citrix.com>, Jim Fehlig <jfehlig@suse.com>
Cc: xen-devel@lists.xensource.com,
	osstest service owner <osstest-admin@xenproject.org>
Subject: Re: [libvirt test] 92667: regressions - FAIL
Date: Thu, 28 Apr 2016 11:06:59 +0100	[thread overview]
Message-ID: <5721E0C3.9020003@citrix.com> (raw)
In-Reply-To: <20160428095413.GX20763@citrix.com>

On 28/04/16 10:54, Wei Liu wrote:
> On Wed, Apr 27, 2016 at 08:49:23PM -0600, Jim Fehlig wrote:
>> On 04/27/2016 04:22 PM, Andrew Cooper wrote:
>>> On 27/04/2016 22:58, Jim Fehlig wrote:
>>>> On 04/25/2016 05:26 AM, osstest service owner wrote:
>>>>> flight 92667 libvirt real [real]
>>>>> http://logs.test-lab.xenproject.org/osstest/logs/92667/
>>>>>
>>>>> Regressions :-(
>>>>>
>>>>> Tests which did not succeed and are blocking,
>>>>> including tests which could not be run:
>>>>>  test-amd64-i386-libvirt      14 guest-saverestore         fail REGR. vs. 91479
>>>>>  test-amd64-amd64-libvirt-xsm 14 guest-saverestore         fail REGR. vs. 91479
>>>>>  test-amd64-amd64-libvirt-pair 21 guest-migrate/src_host/dst_host fail REGR. vs. 91479
>>>>>  test-amd64-i386-libvirt-pair 21 guest-migrate/src_host/dst_host fail REGR. vs. 91479
>>>>>  test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm 12 guest-saverestore fail REGR. vs. 91479
>>>>>  test-amd64-i386-libvirt-xsm  14 guest-saverestore         fail REGR. vs. 91479
>>>>>  test-amd64-amd64-libvirt-vhd 13 guest-saverestore         fail REGR. vs. 91479
>>>>>  test-amd64-i386-libvirt-qemuu-debianhvm-amd64-xsm 12 guest-saverestore fail REGR. vs. 91479
>>>>>  test-amd64-amd64-libvirt     14 guest-saverestore         fail REGR. vs. 91479
>>>> All of these save/restore and migration failures show the following error on the
>>>> restore side
>>>>
>>>> 2016-04-25 10:16:18 UTC libxl: error:
>>>> libxl_exec.c:118:libxl_report_child_exitstatus: conversion helper [26771] exited
>>>> with error status 1
>>>> 2016-04-25 10:16:18 UTC libxl: error: libxl_utils.c:507:libxl_read_exactly:
>>>> file/stream truncated reading ipc msg header from domain 1 save/restore helper
>>>> stdout pipe
>>>> 2016-04-25 10:16:18 UTC libxl: error:
>>>> libxl_exec.c:129:libxl_report_child_exitstatus: domain 1 save/restore helper
>>>> [26772] died due to fatal signal Terminated
>>>>
>>>> I'm not sure if this problem has already been addressed by recent
>>>> migration-related fixes.
>>> This is testing two different versions of libvirt against the same
>>> version of libxl.
>>>
>>> Looking at
>>> http://logs.test-lab.xenproject.org/osstest/logs/92667/test-amd64-amd64-libvirt-qemuu-debianhvm-amd64-xsm/italia0---var-log-libvirt-libxl-libxl-driver.log
>>>
>>> 2016-04-25 08:36:03 UTC xc: progress: End of stream: 0/0    0%
>>>
>>> indicates that the save side is in v2 format (which is expected).  (I
>>> should add at least an info print in libxl_stream_write() indicating the
>>> pertinent  details).
>>>
>>> On the restore side,
>>>
>>> 2016-04-25 08:36:20 UTC libxl: debug:
>>> libxl_stream_read.c:358:stream_header_done: Stream v2 (from legacy)
>>> 2016-04-25 08:36:20 UTC libxl: debug:
>>> libxl_stream_read.c:574:process_record: Record: 1, length 0
>>> 2016-04-25 08:36:20 UTC libxl: error:
>>> libxl_exec.c:118:libxl_report_child_exitstatus: conversion helper [3909]
>>> exited with error status 1
>>>
>>> which means that the restore code was told that the stream was in legacy
>>> format.  The legacy conversion script was forked and found that the
>>> stream wasn't legacy.  (I have no idea where the real error message went
>>> from that - it should be plumbed through into a info message, and
>>> definitely does work when running `xl` on the command line).
>>>
>>> I suspect this is breakage from the LIBXL_ABI_VERSION changes.
>>>
>>> Because of the short-sightest mess that legacy migration was, it is not
>>> possible for libxl to distinguish a legacy stream from a v2 stream in
>>> libxl_domain_create_restore().  The caller (i.e. libvirt) must provide
>>> the correct stream version in libxl_domain_restore_params.
>> How do I handle the case of a libvirt+Xen migV2 host migrating a domain to a
>> libvirt+Xen migV1 host? Do you know how that scenario is handled in xl? Or is
>> migrating a domain from migV2 host to migV1 host not supported?
>>
> I don't think this configuration is supported. Obviously an old xen
> system wouldn't have knowledge of the new format.

An older Xen (4.5 or earlier) will always produce "legacy" format streams.

A newer Xen (4.6 and later) will always produce v2 format streams.  They
can also accept and convert incoming legacy streams, for backwards
compatibility.

Basically, libvirt needs to know the version of libxl on the source side
of the migration, and use this information to inform the local libxl
whether it is being given a legacy or a v2 stream.

I realise this position sucks, but the legacy migration format was
really that broken.

Migration v2 has a deliberate marker which can be unambiguously
distinguished from a legacy stream, but the the issue for libxl is that
the migration fd is typically unseekable, so it can't peek ahead.

~Andrew

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

  reply	other threads:[~2016-04-28 10:06 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-25 11:26 [libvirt test] 92667: regressions - FAIL osstest service owner
2016-04-27 21:58 ` Jim Fehlig
2016-04-27 22:22   ` Andrew Cooper
2016-04-28  2:49     ` Jim Fehlig
2016-04-28  9:54       ` Wei Liu
2016-04-28 10:06         ` Andrew Cooper [this message]
2016-04-28 10:20     ` Wei Liu

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=5721E0C3.9020003@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=jfehlig@suse.com \
    --cc=osstest-admin@xenproject.org \
    --cc=wei.liu2@citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /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 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.