failed automatically creating new SCSI controllers

Bug #1522232 reported by Zhao Zhe
20
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Feng Xi Yan
Liberty
Fix Released
Medium
Feng Xi Yan
Mitaka
Fix Released
Medium
Feng Xi Yan

Bug Description

There can be at most 15 virtual disk attached on an SCSi controller, so if the limitation is reached, a new controller should be automatically created.

But I met an error when trying to attach the 15th volume to an instance.

It is reported as
"VMwareDriverException: Invalid configuration for device '0'"

Zhao Zhe (zzbj)
tags: added: vmware
Zhao Zhe (zzbj)
description: updated
Revision history for this message
Vipin Balachandran (vbala) wrote :

Volume vmdk is attached to the instance in the Nova driver.

no longer affects: cinder
Revision history for this message
Zhao Zhe (zzbj) wrote :

in a conclusion, my questions are:
1.
Is it designed to create a new controller when all existing controllers all reach their limits?
2.
If the answer of question 1 is yes, is this function tested to work?
3.
If the answers of question 1 and 2 are both yes, is my situation can be regarded as a bug?

Zhao Zhe (zzbj)
description: updated
Zhao Zhe (zzbj)
description: updated
Revision history for this message
Zhao Zhe (zzbj) wrote :

Here is the controller spec used for creating a new controller.

controller_spec : (VirtualDeviceConfigSpec){
   dynamicType = None
   dynamicProperty[] = <empty>
   operation = "add"
   fileOperation =
      (VirtualDeviceConfigSpecFileOperation){
         value = None
      }
   device =
      (VirtualLsiLogicController){
         dynamicType = None
         dynamicProperty[] = <empty>
         key = -101
         deviceInfo =
            (Description){
               dynamicType = None
               dynamicProperty[] = <empty>
               label = None
               summary = None
            }
         backing =
            (VirtualDeviceBackingInfo){
               dynamicType = None
               dynamicProperty[] = <empty>
            }
         connectable =
            (VirtualDeviceConnectInfo){
               dynamicType = None
               dynamicProperty[] = <empty>
               startConnected = None
               allowGuestControl = None
               connected = None
               status = None
            }
         slotInfo =
            (VirtualDeviceBusSlotInfo){
               dynamicType = None
               dynamicProperty[] = <empty>
            }
         controllerKey = None
         unitNumber = None
         busNumber = 0
         device[] = <empty>
         hotAddRemove = None
         sharedBus = "noSharing"
         scsiCtlrUnitNumber = None
      }
   profile[] = <empty>
 } ;

Revision history for this message
Zhao Zhe (zzbj) wrote :
Download full text (4.8 KiB)

Here is the vmdk_attach_config_spec.deviceChange before appending the controller spec above.

   deviceChange[] =
      (VirtualDeviceConfigSpec){
         dynamicType = None
         dynamicProperty[] = <empty>
         operation = "add"
         fileOperation =
            (VirtualDeviceConfigSpecFileOperation){
               value = None
            }
         device =
            (VirtualDisk){
               dynamicType = None
               dynamicProperty[] = <empty>
               key = -100
               deviceInfo =
                  (Description){
                     dynamicType = None
                     dynamicProperty[] = <empty>
                     label = None
                     summary = None
                  }
               backing =
                  (VirtualDiskFlatVer2BackingInfo){
                     dynamicType = None
                     dynamicProperty[] = <empty>
                     fileName = "[Silver_VA10-Development-07_SVC-C11_003] volume-876b285b-3969-40e6-b353-4f7c08da7827/volume-876b285b-3969-40e6-b353-4f7c08da7827.vmdk"
                     datastore =
                        (ManagedObjectReference){
                           value = None
                           _type = ""
                        }
                     backingObjectId = None
                     diskMode = "persistent"
                     split = None
                     writeThrough = None
                     thinProvisioned = True
                     eagerlyScrub = None
                     uuid = None
                     contentId = None
                     changeId = None
                     parent =
                        (VirtualDiskFlatVer2BackingInfo){
                           dynamicType = None
                           dynamicProperty[] = <empty>
                           fileName = None
                           datastore =
                              (ManagedObjectReference){
                                 value = None
                                 _type = ""
                              }
                           backingObjectId = None
                           diskMode = None
                           split = None
                           writeThrough = None
                           thinProvisioned = None
                           eagerlyScrub = None
                           uuid = None
                           contentId = None
                           changeId = None
                           deltaDiskFormat = None
                           digestEnabled = None
                           deltaGrainSize = None
                        }
                     deltaDiskFormat = None
                     digestEnabled = None
                     deltaGrainSize = None
                  }
               connectable =
                  (VirtualDeviceConnectInfo){
                     dynamicType = None
                     dynamicProperty[] = <empty>
                     startConnected = True
                     allowGuestControl = False
                     connected = True
                     status = None
                  }
               slotInfo =
                  (...

Read more...

Zhao Zhe (zzbj)
summary: - error occurs during attacthing volumes when there is no slots in SCSi
- controllers
+ failed automatically creating new SCSI controllers
Feng Xi Yan (yanfengxi)
Changed in nova:
assignee: nobody → Feng Xi Yan (yanfengxi)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (master)

Fix proposed to branch: master
Review: https://review.openstack.org/272414

Changed in nova:
status: New → In Progress
Changed in nova:
assignee: Feng Xi Yan (yanfengxi) → Ren Qiaowei (qiaowei-ren)
Changed in nova:
assignee: Ren Qiaowei (qiaowei-ren) → Feng Xi Yan (yanfengxi)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/272414
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=b36da5dd037219ceb71c4c6ea6925d2eba6cd59b
Submitter: Jenkins
Branch: master

commit b36da5dd037219ceb71c4c6ea6925d2eba6cd59b
Author: Feng Xi Yan <email address hidden>
Date: Tue Jan 26 15:13:36 2016 +0800

    <VMWare> Allocate free bus for new SCSI controller

    There are at most 16 virtual disks that can be attached onto a SCSI
    controller, while if the limitation is reached, error occurs
    with message "VMwareDriverException: Invalid configuration for
    device '0'".

    The reason is that when the controller's quota is used up, a new
    controller will be created automatically, but the newly-created
    one will try to use bus number 0, which is already used my existing
    controller.

    This change will allocate a new free bus number for the newly-created
    controller.

    Co-Authored-By: Qiaowei Ren <email address hidden>

    Closes bug: #1522232

    Change-Id: I2ced1358e682cda979d1d5bddb6359253699280b

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/liberty)

Fix proposed to branch: stable/liberty
Review: https://review.openstack.org/299089

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/mitaka)

Fix proposed to branch: stable/mitaka
Review: https://review.openstack.org/303995

Matt Riedemann (mriedem)
Changed in nova:
importance: Undecided → Medium
tags: added: volumes
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/mitaka)

Reviewed: https://review.openstack.org/303995
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=be033eef7296d132c8f7eb5e42203f5a3a947de6
Submitter: Jenkins
Branch: stable/mitaka

commit be033eef7296d132c8f7eb5e42203f5a3a947de6
Author: Feng Xi Yan <email address hidden>
Date: Tue Jan 26 15:13:36 2016 +0800

    <VMWare> Allocate free bus for new SCSI controller

    There are at most 16 virtual disks that can be attached onto a SCSI
    controller, while if the limitation is reached, error occurs
    with message "VMwareDriverException: Invalid configuration for
    device '0'".

    The reason is that when the controller's quota is used up, a new
    controller will be created automatically, but the newly-created
    one will try to use bus number 0, which is already used my existing
    controller.

    This change will allocate a new free bus number for the newly-created
    controller.

    Co-Authored-By: Qiaowei Ren <email address hidden>

    Closes bug: #1522232

    Change-Id: I2ced1358e682cda979d1d5bddb6359253699280b
    (cherry picked from commit b36da5dd037219ceb71c4c6ea6925d2eba6cd59b)

tags: added: in-stable-mitaka
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/liberty)

Reviewed: https://review.openstack.org/299089
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=f593d90f7d0c02726fdfce24b29e163f1f55b707
Submitter: Jenkins
Branch: stable/liberty

commit f593d90f7d0c02726fdfce24b29e163f1f55b707
Author: Feng Xi Yan <email address hidden>
Date: Tue Jan 26 15:13:36 2016 +0800

    <VMWare> Allocate free bus for new SCSI controller

    There are at most 16 virtual disks that can be attached onto a SCSI
    controller, while if the limitation is reached, error occurs
    with message "VMwareDriverException: Invalid configuration for
    device '0'".

    The reason is that when the controller's quota is used up, a new
    controller will be created automatically, but the newly-created
    one will try to use bus number 0, which is already used my existing
    controller.

    This change will allocate a new free bus number for the newly-created
    controller.

    Co-Authored-By: Qiaowei Ren <email address hidden>

    Closes bug: #1522232

    Change-Id: I2ced1358e682cda979d1d5bddb6359253699280b
    (cherry picked from commit b36da5dd037219ceb71c4c6ea6925d2eba6cd59b)

Revision history for this message
Davanum Srinivas (DIMS) (dims-v) wrote : Fix included in openstack/nova 14.0.0.0b1

This issue was fixed in the openstack/nova 14.0.0.0b1 development milestone.

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/nova 12.0.4

This issue was fixed in the openstack/nova 12.0.4 release.

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/nova 13.1.0

This issue was fixed in the openstack/nova 13.1.0 release.

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.