[Ovirt-devel] [PATCH server] Taskomatic Refactoring and Qpidification Take 4
Chris Lalancette
clalance at redhat.com
Fri Jan 23 12:43:49 UTC 2009
Chris Lalancette wrote:
> Ian Main wrote:
>> This version incorporates feedback from Chris Lancette.
>>
>> This patch reworks taskomatic quite a bit. This mostly just shifts
>> taskomatic to using the qpid interface in place of ruby-libvirt. It
>> also fixes a few bugs I discovered a long the way and adds new ones
>> I'm sure. The only other thing added was round-robin host selection
>> for VMs.
>>
>> Where ever possible the hosts are queried directly using qpid rather than
>> relying on states from the database.
>>
>> This patch loses about 150 lines from the original taskomatic and moves
>> most of the task implementation into a central class. This was done to
>> provide access to the qpid session as well as providing for locking/task
>> ordering in future versions.
>>
>> This requires the latest libvirt-qpid as it fixes a number of bugs.
>> It's in the ovirt repository now.
>>
>> Issues remaining:
>>
>> - libvirt-qpid migrate is broken. Since the migrate takes place on the
>> node instead of from the ovirt-appliance, the source node doesn't have
>> the ability to authenticate against the destination node. For this
>> reason I'm still using ruby-libvirt migrate. I talked to Chris about
>> this and we have a plan worked out. :)
>>
>> - LVM volume scanning is not in this version. I intend to address this
>> asap.
>>
>> Signed-off-by: Ian Main <imain at redhat.com>
>
>
> This looks pretty good; you fixed up most of my suggestions, and we agreed to
> leave the LVM stuff out for the moment, but to make it top priority. I only
> have one thing left to say. The db_vm.reload methods sprinkled everywhere still
> make me nervous, and I don't understand the reason they should be needed (you
> alluded to another patch, but I don't remember/see where that is). I guess we
> can leave them in for now to get testing, but I would like to see that
> investigated; as I mentioned, the last time I got these it was indeed a problem
> with my code.
>
> Other than that, this is great.
>
Duh, I'm a moron. Sorry, I forgot I had commented on that other thread. I see
now where the stale objects are coming from. This still worries me, though; if
the database can change between the first time you grab the db_vm object and
later, why can't it change between the "reload" and the write? I.e. it looks
like there is still a bad race here. Incidentally, this exact race is the one I
was preventing with making database updates go through taskomatic, instead of
directly manipulating the database.
--
Chris Lalancette
More information about the ovirt-devel
mailing list