live_migration() takes exactly 7 arguments (6 given) if upgrade_levels compute=kilo

Bug #1595864 reported by Roman Sokolkov
16
This bug affects 3 people
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Won't Fix
Undecided
Unassigned

Bug Description

I have Liberty controller (nova-api, etc.) with

[upgrade_levels]
compute=kilo

and Liberty compute node, when i try live-migration
i see "live_migration() takes exactly 7 arguments (6 given)"
in nova-compute.log.

I can not completely remove compatibility with kilo,
because i have kilo computes in my env.

I also tried to add "upgrade_levels" to compute node,
but with no luck.

Environment
==========
Libvirt+KVM, Ceph for VMs
Liberty - Mirantis OpenStack 8.0 (2015.2)

Steps to reproduce
===============
1) Install Liberty control plane (api, conductor, schduler, etc.)
2) Install Liberty computes
3) Add to nova.conf on controller
  [upgrade_levels]
  compute=kilo
3) Try "nova live-migration VM"

Expected result
=============
Migration will succeed

Actual result
==========
Traceback on compute node
http://paste.openstack.org/show/521871/

tags: added: live-migration
Revision history for this message
Timofey Durakov (tdurakov) wrote :

it looks like a duplicate for https://bugs.launchpad.net/nova/+bug/1576048 but, could you please provide more logs, to confirm

Revision history for this message
John Garbutt (johngarbutt) wrote :

So I think what is happening here, is there are no nova-compute nodes in the DB, so the min_service_version = 0.

This is then cached in the nova-conductor until restart. The cache could be triggered by some query in the conductor that happens before any nova-compute starts up.

Later, nova-compute starts, and if the conductor is restarted we get the correct min_version.

I think the code needs to worry about the special case of having no services, and getting the min_version of that.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Related fix proposed to nova (master)

Related fix proposed to branch: master
Review: https://review.openstack.org/337327

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on nova (master)

Change abandoned by John Garbutt (<email address hidden>) on branch: master
Review: https://review.openstack.org/337327
Reason: was just an idea

Revision history for this message
Sean Dague (sdague) wrote :

At this point, liberty is nearing EOL. So it's not really clear this is going to be a thing we address.

Changed in nova:
status: New → Won't Fix
status: Won't Fix → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for OpenStack Compute (nova) because there has been no activity for 60 days.]

Changed in nova:
status: Incomplete → Expired
Revision history for this message
Oisin (oisin-omalley) wrote :

I'm in the process of a Kilo to Liberty migration and am encountering this exact same issue when we attempt to live migrate instances from a Liberty to a Kilo Compute node. The Compute API is pinned to 4.0.

I've attempted Johns suggestion and restarted all nova-conductor services but it has had no affect.

Are there any suggestions and/or workarounds for this issue?

Changed in nova:
status: Expired → New
Revision history for this message
Sean Dague (sdague) wrote :

Both Kilo and Liberty are EOL

Changed in nova:
status: New → Invalid
status: Invalid → Won't Fix
Revision history for this message
Karim Boumedhel (karmab) wrote :

@Oisin, did you eventually sort it out, same issue here

Revision history for this message
Oisin (oisin-omalley) wrote :

I found a work around for it, the additional parameter from the live_migration() function was added in the 4.2 rpcapi version. I found instances would live migrate from a Liberty either an liberty or Kilo compute node when the compute level was set to 4.2.

To live migrate from Kilo to Liberty on all Nova nodes set;
[upgrade_levels]
compute=4.0

To live migrate from Liberty to Liberty or liberty to Kilo nodes, set the compute level on Liberty Nova nodes to;
[upgrade_levels]
compute=4.2

During our rolling migration from Kilo to Liberty, compute level was set to 4.0 which enabled us to live migrate everything off Kilo compute nodes to Liberty nodes. The plan was if we encountered an issue with a Liberty node we could set the compute level to 4.2 and back out by live migrating the instance back to a Kilo or another Liberty node.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.