Re: [libvirt] [PATCH] qemu: call endjob in RevertToSnapshot

2014-08-27 Thread Jincheng Miao


On 08/28/2014 10:09 AM, Jincheng Miao wrote:


On 08/27/2014 07:52 PM, Eric Blake wrote:

On 08/27/2014 03:20 AM, Jincheng Miao wrote:

On 08/27/2014 11:02 AM, Eric Blake wrote:

On 08/26/2014 08:10 PM, Jincheng Miao wrote:

In qemuDomainRevertToSnapshot(), it will check snap->def->state.
But when the state is PMSUSPENDED/NOSTATE/BLOCKED, it forgets to
call qemuDomainObjEndJob.

Signed-off-by: Jincheng Miao 
---
   src/qemu/qemu_driver.c |4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

This looks like the fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1134154 - thanks for 
chasing

that!

This patch fix the part of that bug, but it doesn't touch the race
condition:
Why the snap->def->state is NOSTATE? It should be RUNNING.
The only reasonable explanation is that snapshot object is free()ed.

IMHO, the SnapshotObjList should be clocked during snapshot job 
running.

Okay, I see what you are saying; we need to make sure two parallel
snapshot operations can't stomp on one another (probably by making them
all guarded by the vm job lock).


Yes, wrapper the snapshot operations by vm job lock good choice,


s/good choice/is a good choice/


and I will check some other functions, and compose a patch for it.



I hope to have time to look into a fix
before 1.2.8; but as it has been a long-standing issue, it's not a new
regression in this release if I miss that goal (my priority today is
getting 1.2.8 APIs to be feature-complete).



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


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


Re: [libvirt] [PATCH] qemu: call endjob in RevertToSnapshot

2014-08-27 Thread Jincheng Miao


On 08/27/2014 07:52 PM, Eric Blake wrote:

On 08/27/2014 03:20 AM, Jincheng Miao wrote:

On 08/27/2014 11:02 AM, Eric Blake wrote:

On 08/26/2014 08:10 PM, Jincheng Miao wrote:

In qemuDomainRevertToSnapshot(), it will check snap->def->state.
But when the state is PMSUSPENDED/NOSTATE/BLOCKED, it forgets to
call qemuDomainObjEndJob.

Signed-off-by: Jincheng Miao 
---
   src/qemu/qemu_driver.c |4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

This looks like the fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1134154 - thanks for chasing
that!

This patch fix the part of that bug, but it doesn't touch the race
condition:
Why the snap->def->state is NOSTATE? It should be RUNNING.
The only reasonable explanation is that snapshot object is free()ed.

IMHO, the SnapshotObjList should be clocked during snapshot job running.

Okay, I see what you are saying; we need to make sure two parallel
snapshot operations can't stomp on one another (probably by making them
all guarded by the vm job lock).


Yes, wrapper the snapshot operations by vm job lock good choice,
and I will check some other functions, and compose a patch for it.



I hope to have time to look into a fix
before 1.2.8; but as it has been a long-standing issue, it's not a new
regression in this release if I miss that goal (my priority today is
getting 1.2.8 APIs to be feature-complete).



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


Re: [libvirt] [PATCH] qemu: call endjob in RevertToSnapshot

2014-08-27 Thread Eric Blake
On 08/27/2014 03:20 AM, Jincheng Miao wrote:
> 
> On 08/27/2014 11:02 AM, Eric Blake wrote:
>> On 08/26/2014 08:10 PM, Jincheng Miao wrote:
>>> In qemuDomainRevertToSnapshot(), it will check snap->def->state.
>>> But when the state is PMSUSPENDED/NOSTATE/BLOCKED, it forgets to
>>> call qemuDomainObjEndJob.
>>>
>>> Signed-off-by: Jincheng Miao 
>>> ---
>>>   src/qemu/qemu_driver.c |4 ++--
>>>   1 files changed, 2 insertions(+), 2 deletions(-)
>> This looks like the fix for
>> https://bugzilla.redhat.com/show_bug.cgi?id=1134154 - thanks for chasing
>> that!
> 
> This patch fix the part of that bug, but it doesn't touch the race
> condition:
> Why the snap->def->state is NOSTATE? It should be RUNNING.
> The only reasonable explanation is that snapshot object is free()ed.
> 
> IMHO, the SnapshotObjList should be clocked during snapshot job running.

Okay, I see what you are saying; we need to make sure two parallel
snapshot operations can't stomp on one another (probably by making them
all guarded by the vm job lock).  I hope to have time to look into a fix
before 1.2.8; but as it has been a long-standing issue, it's not a new
regression in this release if I miss that goal (my priority today is
getting 1.2.8 APIs to be feature-complete).

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



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

Re: [libvirt] [PATCH] qemu: call endjob in RevertToSnapshot

2014-08-27 Thread Jincheng Miao


On 08/27/2014 11:02 AM, Eric Blake wrote:

On 08/26/2014 08:10 PM, Jincheng Miao wrote:

In qemuDomainRevertToSnapshot(), it will check snap->def->state.
But when the state is PMSUSPENDED/NOSTATE/BLOCKED, it forgets to
call qemuDomainObjEndJob.

Signed-off-by: Jincheng Miao 
---
  src/qemu/qemu_driver.c |4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)

This looks like the fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1134154 - thanks for chasing
that!


This patch fix the part of that bug, but it doesn't touch the race 
condition:

Why the snap->def->state is NOSTATE? It should be RUNNING.
The only reasonable explanation is that snapshot object is free()ed.

IMHO, the SnapshotObjList should be clocked during snapshot job running.



ACK, and I'll push soon.



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


Re: [libvirt] [PATCH] qemu: call endjob in RevertToSnapshot

2014-08-26 Thread Eric Blake
On 08/26/2014 08:10 PM, Jincheng Miao wrote:
> In qemuDomainRevertToSnapshot(), it will check snap->def->state.
> But when the state is PMSUSPENDED/NOSTATE/BLOCKED, it forgets to
> call qemuDomainObjEndJob.
> 
> Signed-off-by: Jincheng Miao 
> ---
>  src/qemu/qemu_driver.c |4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)

This looks like the fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1134154 - thanks for chasing
that!

ACK, and I'll push soon.

-- 
Eric Blake   eblake redhat com+1-919-301-3266
Libvirt virtualization library http://libvirt.org



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