← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1825020] Re: resize of instance, that was booted from volume, trigger image size check then fails resize

 

Reviewed:  https://review.opendev.org/653273
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=8aae3e39e58a05ed50b891aeae261641f544ad1f
Submitter: Zuul
Branch:    master

commit 8aae3e39e58a05ed50b891aeae261641f544ad1f
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date:   Tue Apr 16 23:53:03 2019 -0400

    Fix volume-backed resize with a smaller disk flavor
    
    Change I06fad233006c7bab14749a51ffa226c3801f951b in Stein started
    calling _validate_flavor_image_nostatus during resize but did not
    pass the root_bdm since the underlying volume does not change. This
    can, however, lead to FlavorDiskSmallerThanMinDisk being raised
    if the new flavor has a disk size smaller than the current flavor.
    This is wrong in the case of a volume-backed server because we don't
    care about the root disk size in the flavor in that case.
    
    This fixes the bug by splitting the pci/numa validation logic out
    of _validate_flavor_image_nostatus into a separate method so that
    the resize method can call that directly for a volume-backed server
    rather than deal with the complicated disk size logic in
    _validate_flavor_image_nostatus (see bug 1646740 for details, but
    tl;dr if the image min_disk is less than the flavor root_gb, the
    min_disk stored in the instance image system metadata is the
    flavor['root_gb'] which could be larger than the root volume size).
    To see why trying to use _validate_flavor_image_nostatus during
    resize for a volume-backed server is a mess, look at PS1 of this
    change.
    
    Change-Id: I91c9c1e88afa035c757f692c78ad72d69cc3c431
    Closes-Bug: #1825020


** Changed in: nova
       Status: In Progress => Fix Released

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1825020

Title:
  resize of instance, that was booted from volume, trigger image size
  check then fails resize

Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) stein series:
  Triaged

Bug description:
  Brief Description
  -----------------
  resize of instance, that was booted from volume, trigger image size check then fails resize

  Severity
  --------
  standard

  Steps to Reproduce
  ------------------

  1. Create two flavors based on originating flavor and destination
  flavor

  | 15566866-06d7-487a-b087-9fe928ec8c00 | flavor                 | 1024       | 4    | 0         |      | 1     | 1.0         | True   
   flavor:extra_specs                   | {"stx_storage": "remote", "hw:mem_page_size": "2048"}  
  flavor:ram                           | 1024                                                                             
  |
  | flavor:swap                          | 0                                                                                
  |
  | flavor:vcpus                         | 1
  | flavor:disk                          | 4                                                                                
  |
  | flavor:ephemeral                     | 0

  
  | 20ebe3fe-c1a3-4e62-8c34-10c435f27112 | flavor-2 | 1024       | 1    | 1         | 512  | 1     | 1.0         | True   
  | extra_specs                | {"stx_storage": "remote", "hw:mem_page_size": "2048"} 
  name                       | flavor-2
  | ram                        | 1024
  | swap                       | 512 
  | vcpus                      | 1  
  | disk                       | 1  

  2. Boot instance from volume with an originating flavor
  OS-EXT-SRV-ATTR:hostname             | tenant2-vm-13
  id                                   | 04f43c9e-d3fa-46c4-9605-c0d1cf8dda71
  os-extended-volumes:volumes_attached | [{"id": "672aaa60-1086-45ce-8650-8195aa8dd0da", "delete_on_termination": false}
  OS-EXT-SRV-ATTR:hypervisor_hostname  | compute-0 
  OS-EXT-SRV-ATTR:instance_name        | instance-000000a4

  3. Resize instance to destination flavor that has smaller disk size.
  Confirm resize.

  [2019-04-14 10:05:04,590]
  nova resize --poll 04f43c9e-d3fa-46c4-9605-c0d1cf8dda71 20ebe3fe-c1a3-4e62-8c34-10c435f27112'


  Expected Behavior
  ------------------
  Did not expect resize of instance, that was booted from volume, to trigger image size check

  
  Actual Behavior
  ----------------
  [2019-04-14 10:05:06,427]
  Resize of instance booted from volume inadvertently triggered the image size check and results in a ClientExpection related to FlavorDiskSmalerThanMinDisk
  ERROR (ClientException): Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
  <class 'nova.exception.FlavorDiskSmallerThanMinDisk'> (HTTP 500

  
  nfv-vim.log (controller-0)

  2019-04-14T10:05:06.228 controller-0
  VIM_Thread[244649]     INFO
  _instance_director.py.151   Instance action allowed for tenant2-vm-13,
  action_type=resize

  2019-04-14T10:05:06.228 controller-0
  VIM_Thread[244649]    DEBUG
  _instance.py.1968  Resize instance tenant2-vm-13.

  2019-04-14T10:05:06.228 controller-0
  VIM_Thread[244649]     INFO
  _instance_state_initial.py.36    Exiting state (initial) for
  tenant2-vm-13.

  2019-04-14T10:05:06.229 controller-0                           VIM_Thread[244649]     INFO                  _instance_state_resize.py.27    Entering state (resize) for tenant2-vm-13.
  2019-04-14T10:05:06.229 controller-0                           
  VIM_Thread[244649]    DEBUG                        nfvi_compute_api.py.3418  Instance action rest-api post path: /v2.1/6b4999fd6e414ae1b3eace662eb2ed84/servers/04f43c9e-d3fa-46c4-9605-c0d1cf8dda71/action.
  2019-04-14T10:05:06.270 controller-0                 
  VIM_Event-Log_Thread[244975]     INFO                                      fm.py.379   Generated customer log, fm_uuid=621d5dc6-79a8-40a7-814f-2809cbadb859.

  2019-04-14T10:05:06.375 controller-0
  VIM_Thread[244649]    ERROR Caught exception while trying to resize an
  instance, error=[OpenStack Rest-API Exception: method=POST, url=http
  ://nova-
  api.openstack.svc.cluster.local:8774/v2.1/6b4999fd6e414ae1b3eace662eb2ed84/servers
  /04f43c9e-d3fa-46c4-9605-c0d1cf8dda71/action, headers={'wrs-header':
  'true', 'Content-Type': 'application/json', 'X-OpenStack-Nova-API-
  Version': '2.72'}, body={"resize": {"flavorRef": "20ebe3fe-
  c1a3-4e62-8c34-10c435f27112"}}, status_code=500, reason=HTTP Error
  500: Internal Server Error, response_headers=[('Content-Length',
  '217'), ('X-Compute-Request-Id', 'req-
  aca6c954-1171-48ce-9286-3e9b952481d6'), ('Vary', 'OpenStack-API-
  Version, X-OpenStack-Nova-API-Version'), ('Openstack-Api-Version',
  'compute 2.72'), ('X-Openstack-Nova-Api-Version', '2.72'), ('Date',
  'Sun, 14 Apr 2019 10:05:06 GMT'), ('Content-Type', 'application/json;
  charset=UTF-8'), ('X-Openstack-Request-Id', 'req-
  aca6c954-1171-48ce-9286-3e9b952481d6')],
  response_body={"computeFault": {"message": "Unexpected API Error.
  Please report this at http://bugs.launchpad.net/nova/ and attach the
  Nova API log if possible.\n<class
  'nova.exception.FlavorDiskSmallerThanMinDisk'>", "code": 500}}].

  Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/nfv_plugins/nfvi_plugins/nfvi_compute_api.py", line 2127, in resize_instance
      future.result = (yield)
  OpenStackRestAPIException: [OpenStack Rest-API Exception: method=POST, url=http://nova-api.openstack.svc.cluster.local:8774/v2.1/6b4999fd6e414ae1b3eace662eb2ed84/servers/04f43c9e-d3fa-46c4-9605-c0d1cf8dda71/action, headers={'wrs-header': 'true', 'Content-Type': 'application/json', 'X-OpenStack-Nova-API-Version': '2.72'}, body={"resize": {"flavorRef": "20ebe3fe-c1a3-4e62-8c34-10c435f27112"}}, status_code=500, reason=HTTP Error 500: Internal Server Error, response_headers=[('Content-Length', '217'), ('X-Compute-Request-Id', 'req-aca6c954-1171-48ce-9286-3e9b952481d6'), ('Vary', 'OpenStack-API-Version, X-OpenStack-Nova-API-Version'), ('Openstack-Api-Version', 'compute 2.72'), ('X-Openstack-Nova-Api-Version', '2.72'), 
  ('Date', 'Sun, 14 Apr 2019 10:05:06 GMT'), ('Content-Type', 'application/json; charset=UTF-8'), ('X-Openstack-Request-Id', 'req-aca6c954-1171-48ce-9286-3e9b952481d6')], response_body={"computeFault": {"message": "Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.\n<class 'nova.exception.FlavorDiskSmallerThanMinDisk'>", "code": 500}}]

  2019-04-14T10:05:06.377 controller-0                           VIM_Thread[244649]     INFO                        nfvi_compute_api.py.918   Sent response for request 8b44ee79-9371-479b-83a4-50534ddef1c7.
  2019-04-14T10:05:06.377 controller-0                           
  VIM_Thread[244649]    
  DEBUG                     _instance_task_work.py.426   Resize-Instance callback for tenant2-vm-13, response={'completed': False, 'reason': "unexpected api error. please report this at http://bugs.launchpad.net/nova/ and attach the nova api log if possible.\n<class 'nova.exception.flavordisksmallerthanmindisk'>"}.
  2019-04-14T10:05:06.378 controller-0                           VIM_Thread[244649]    DEBUG                         _instance_tasks.py.367   Task (resize-instance_tenant2-vm-13) complete.

  2019-04-14T10:05:06.378 controller-0                           VIM_Thread[244649]     INFO                  _instance_state_resize.py.68    Resize failed for tenant2-vm-13.
  2019-04-14T10:05:06.378 controller-0                          
   VIM_Thread[244649]    
  DEBUG                               _instance.py.2179  Resize failed for instance tenant2-vm-13, reason=unexpected api error. please report this at http://bugs.launchpad.net/nova/ and attach the nova api log if possible.
  <class 'nova.exception.flavordisksmallerthanmindisk'>.

  
  Reproducibility
  ---------------
  yes

  System Configuration
  --------------------
  storage
  (Lab: IP_20_27 20190414 10:02:43 test_resize_vm_positive[remote-4_0_0-1_1_512-volume])

  
  Branch/Pull Time/Commit
  --------------------
  Load: 20190410T013000Z
  Job: STX_build_master_master

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1825020/+subscriptions


References