Re: [libvirt] [PATCH v2 19/22] qemu: Work around weired migration status changes

2015-06-10 Thread Jiri Denemark
On Wed, Jun 10, 2015 at 13:06:03 +0200, Peter Krempa wrote:
 On Tue, Jun 02, 2015 at 14:34:24 +0200, Jiri Denemark wrote:
  When cancelling migration we can see the following conversation on QMP
  monitor:
  
  {execute:migrate_cancel,id:libvirt-33}
  {timestamp: {seconds: 1432899178, microseconds: 844907}, event:
  MIGRATION, data: {status: cancelling}}
  {return: {}, id: libvirt-33}
  {timestamp: {seconds: 1432899178, microseconds: 845625}, event:
  MIGRATION, data: {status: failed}}
  {timestamp: {seconds: 1432899178, microseconds: 846432}, event:
  MIGRATION, data: {status: cancelled}}
  
  That is, migration status first changes to failed just to change to
  the correct cancelled state in a few moments later. However, this is
  enough to let libvirt report migration failed for unknown reason instead
  of having been cancelled by a user.
  
  This should really be fixed in QEMU but I'm not sure how easy it is.
 
 Is qemu going to fix it? I'd rather see it done that way rather than
 fixing it up in libvirt.

Yeah, Juan said he would fix it in the next version of his series.

Jirka

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list


Re: [libvirt] [PATCH v2 19/22] qemu: Work around weired migration status changes

2015-06-10 Thread Peter Krempa
On Tue, Jun 02, 2015 at 14:34:24 +0200, Jiri Denemark wrote:
 When cancelling migration we can see the following conversation on QMP
 monitor:
 
 {execute:migrate_cancel,id:libvirt-33}
 {timestamp: {seconds: 1432899178, microseconds: 844907}, event:
 MIGRATION, data: {status: cancelling}}
 {return: {}, id: libvirt-33}
 {timestamp: {seconds: 1432899178, microseconds: 845625}, event:
 MIGRATION, data: {status: failed}}
 {timestamp: {seconds: 1432899178, microseconds: 846432}, event:
 MIGRATION, data: {status: cancelled}}
 
 That is, migration status first changes to failed just to change to
 the correct cancelled state in a few moments later. However, this is
 enough to let libvirt report migration failed for unknown reason instead
 of having been cancelled by a user.
 
 This should really be fixed in QEMU but I'm not sure how easy it is.

Is qemu going to fix it? I'd rather see it done that way rather than
fixing it up in libvirt.



signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2 19/22] qemu: Work around weired migration status changes

2015-06-02 Thread Ján Tomko
s/weired/weird/ in the commit message

Jan

On Tue, Jun 02, 2015 at 02:34:24PM +0200, Jiri Denemark wrote:
 When cancelling migration we can see the following conversation on QMP
 monitor:
 
 {execute:migrate_cancel,id:libvirt-33}
 {timestamp: {seconds: 1432899178, microseconds: 844907}, event:
 MIGRATION, data: {status: cancelling}}
 {return: {}, id: libvirt-33}
 {timestamp: {seconds: 1432899178, microseconds: 845625}, event:
 MIGRATION, data: {status: failed}}
 {timestamp: {seconds: 1432899178, microseconds: 846432}, event:
 MIGRATION, data: {status: cancelled}}
 
 That is, migration status first changes to failed just to change to
 the correct cancelled state in a few moments later. However, this is
 enough to let libvirt report migration failed for unknown reason instead
 of having been cancelled by a user.
 
 This should really be fixed in QEMU but I'm not sure how easy it is.
 However, it's pretty easy for us to work around it.
 
 Signed-off-by: Jiri Denemark jdene...@redhat.com
 ---


signature.asc
Description: Digital signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

[libvirt] [PATCH v2 19/22] qemu: Work around weired migration status changes

2015-06-02 Thread Jiri Denemark
When cancelling migration we can see the following conversation on QMP
monitor:

{execute:migrate_cancel,id:libvirt-33}
{timestamp: {seconds: 1432899178, microseconds: 844907}, event:
MIGRATION, data: {status: cancelling}}
{return: {}, id: libvirt-33}
{timestamp: {seconds: 1432899178, microseconds: 845625}, event:
MIGRATION, data: {status: failed}}
{timestamp: {seconds: 1432899178, microseconds: 846432}, event:
MIGRATION, data: {status: cancelled}}

That is, migration status first changes to failed just to change to
the correct cancelled state in a few moments later. However, this is
enough to let libvirt report migration failed for unknown reason instead
of having been cancelled by a user.

This should really be fixed in QEMU but I'm not sure how easy it is.
However, it's pretty easy for us to work around it.

Signed-off-by: Jiri Denemark jdene...@redhat.com
---

Notes:
Version 2:
- new patch

 src/qemu/qemu_process.c | 11 ++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 0427e5d..8575d90 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -1515,6 +1515,7 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon 
ATTRIBUTE_UNUSED,
  void *opaque ATTRIBUTE_UNUSED)
 {
 qemuDomainObjPrivatePtr priv;
+qemuDomainJobInfoPtr jobInfo;
 
 virObjectLock(vm);
 
@@ -1529,7 +1530,15 @@ qemuProcessHandleMigrationStatus(qemuMonitorPtr mon 
ATTRIBUTE_UNUSED,
 goto cleanup;
 }
 
-priv-job.current-status.status = status;
+jobInfo = priv-job.current;
+if (status == QEMU_MONITOR_MIGRATION_STATUS_ERROR 
+jobInfo-status.status == QEMU_MONITOR_MIGRATION_STATUS_CANCELLING) {
+VIR_DEBUG(State changed from \cancelling\ to \failed\; setting 
+  current state to \cancelled\);
+status = QEMU_MONITOR_MIGRATION_STATUS_CANCELLED;
+}
+
+jobInfo-status.status = status;
 virDomainObjSignal(vm);
 
  cleanup:
-- 
2.4.1

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list