[Ovirt-devel] ovirt-server patch for error 'Attempted to update a stale object'
Василец Дмитрий
d.vasilets at peterhost.ru
Fri Jan 16 11:48:15 UTC 2009
В Птн, 16/01/2009 в 08:55 +0100, Chris Lalancette пишет:
> Ian Main wrote:
> > On Thu, 15 Jan 2009 18:15:10 +0300 Василец Дмитрий <d.vasilets at peterhost.ru>
> > wrote:
> >
> >> patch for error 'Attempted to update a stale object'
> >>
> >> diff --git a/src/task-omatic/task_vm.rb b/src/task-omatic/task_vm.rb index
> >> c187287..fddc594 100644 --- a/src/task-omatic/task_vm.rb +++
> >> b/src/task-omatic/task_vm.rb @@ -196,8 +196,18 @@ def create_vm_xml(name,
> >> uuid, memAllocated, memUsed, vcpus, bootDevice, end
> >>
> >> def setVmState(vm, state) - vm.state = state - vm.save! + attempts = 0 +
> >> begin + vm.state = state + vm.save! + rescue
> >> ActiveRecord::StaleObjectError + puts "error with stale object" + if
> >> attempts < 3 + attempts += 1 + vm.reload + retry + end +
> >> end end
> >
> > Interesting. I know when doing certain long operations it can fail; never
> > considered catching that and doing a retry. I'll push a similar patch
> > shortly. I may just remove the puts and I'm not sure how many attempts we
> > want to make? Anyway I'll play with it. Thanks!
>
> This doesn't actually make sense to me, though; isn't a StaleObject exception
> actually a sign of some deeper problem? The last time I started getting these,
> it was indeed a problem; I was removing an object (with object.delete), and then
> later modifying the object, which was throwing these exceptions. I think we
> need to understand why we are getting a StaleObject first (or am I completely
> missing what's going on here?).
>
i think that method setVmState only do update state of vm.
during migration very often appear staleObject error. => in database old
data about vm and we can't manipulate it.
More information about the ovirt-devel
mailing list