Uploaded image for project: 'XenServer Org'
  1. XenServer Org
  2. XSO-890

VM migrate in partially upgraded pool (7.0-7.5) not working due to method VM.assert_can_migrate_sender

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Done (View Workflow)
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 7.5
    • Fix Version/s: 8.0
    • Labels:
      None
    • Environment:
      • XenServer Pool 7.0 (2016/10/28, 125380c) on top of two Lenovo x3650 M5 hosts.
      • licensed as a xendesktop/xenapp environment
      • Upgrade to 7.5 (2018/05/21) in progress
      • VMs on local storage and on NFS share
    • Internal JIRA Reference:
      XSI-91

      Description

      Right now the state of the pool is "partially upgraded to XenServer 7.5". 

      • I cleared the pool-master of all VMs (live migrate to pool-member).
      • Shut down the master and started the upgrade to 7.5 via base-image iso.
      • Upgrade without any problems. 
      • Server comes back online again, now the pool is in state "partially upgraded".
      • Start to migrate all VMs from the pool-member to the now upgraded pool-master.
      • One VM on NFS shared storage migrated live and running without problems.
      • First try to migrate a running VM that is on local storage fails with:

      Migrate to Server: You tried to call a method that does not exist. The method name that you used is VM.assert_can_migrate_sender. 

      And that's the issue. I can't migrate the VMs to the upgraded master to finnish the pool upgrade by emptying the pool-member still on 7.0.

      Tried to move an offline VM on local storage to the master and this breaks with error: INVALID_VALUE

      Found this (via: https://github.com/xapi-project/xen-api/blob/master/ocaml/xapi/xapi_vm_migrate.ml )

      let assert_can_migrate_sender ~__context ~vm ~dest ~live ~vdi_map ~vif_map ~vgpu_map ~options =
       (* Check that the destination host has compatible pGPUs -- if needed *)
       let remote = remote_of_dest dest in
       let remote_for_migration_type =
       match migration_type ~__context ~remote with
       | `intra_pool -> None
       | `cross_pool -> Some (remote.rpc, remote.session)
       in
       (* We only need to check compatibility for "live" vGPUs *)
       if Db.VM.get_power_state ~__context ~self:vm <> `Halted then
       Xapi_pgpu_helpers.assert_destination_has_pgpu_compatible_with_vm ~__context
       ~vm ~vgpu_map ~host:remote.dest_host ?remote:remote_for_migration_type ()
      

      pGPUs are the same

       

      I've opened a forum discussion but so far no clues on what's happening (granted it's been just few hours and I'm in Euro timezone)
      https://discussions.citrix.com/topic/397948-upgrade-pool-70-to-75-xenmotion-storage-not-working-method-vmassert_can_migrate_sender/

      Any help much appriciated. If any infos are missing I'm happy to add them..

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              AndreasG Andreas Goertz
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: