← Back to team overview

yahoo-eng-team team mailing list archive

[Bug 1794364] Re: 'nova-manage db online_data_migrations' count fail

 

Reviewed:  https://review.openstack.org/611463
Committed: https://git.openstack.org/cgit/openstack/cinder/commit/?id=d47486d317e8cdb1cdab50d73f6484289ab082d4
Submitter: Zuul
Branch:    master

commit d47486d317e8cdb1cdab50d73f6484289ab082d4
Author: imacdonn <iain.macdonnell@xxxxxxxxxx>
Date:   Wed Oct 17 22:48:18 2018 +0000

    cinder-manage online_data_migrations fixes
    
    Addresses some issues with this command:
    
    1) When used without the --max-count option, the summary table will
       always show zero migrations run, because it only accounts for the
       last batch, and the loop only exits when the last batch does no work.
    
    2) "remaining" counts cannot be accurate, given the way migrations are
       implemented, because the "found" count refers to the number of rows
       that exist in the database, not the number that still need the
       migration applied.
    
    3) In the case where no migrations are successful, but some raise
       exceptions, the command was exiting with status zero, which usually
       indicates "success". This can cause issues that cause migration
       failures to go unnoticed, especially when automated.
    
    4) When exceptions do occur, a minimally useful message is output, and
       no detail about the exception is available to the user. The exception
       detail should be logged.
    
    5) Inaccuracies in the documentation - "--max_number" should be
       "--max-count", and stale references to the "--ignore_state" option,
       which was removed in [1]
    
    The solution for (3) introduces a new exit status, 2. See release note
    for details.
    
    These changes are aligned with equivalents [2][3] for the nova-manage
    command, except for the calculation of "Total Needed" - nova seems to
    interpret the "found" count differently/inconsistently.
    
    [1] https://review.openstack.org/510201
    [2] https://review.openstack.org/605828
    [3] https://review.openstack.org/608091
    
    Change-Id: I878480eb2359625cde839b073230844acc645cba
    Closes-Bug: #1794364
    Closes-Bug: #1796192


** Changed in: cinder
       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/1794364

Title:
  'nova-manage db online_data_migrations' count fail

Status in Cinder:
  Fix Released
Status in OpenStack Compute (nova):
  Fix Released
Status in OpenStack Compute (nova) ocata series:
  Fix Committed
Status in OpenStack Compute (nova) pike series:
  Fix Committed
Status in OpenStack Compute (nova) queens series:
  Fix Committed
Status in OpenStack Compute (nova) rocky series:
  Fix Committed

Bug description:
  
  'nova-manage db online_data_migrations' attempts to display summary counts of migrations "Needed" and "Completed" in a pretty table at the end, but fails to accumulate the totals between successive invocations of _run_migration(), and ends up reporting zeroes.

  # nova-manage db online_data_migrations 
  /usr/lib/python2.7/site-packages/oslo_db/sqlalchemy/enginefacade.py:332: NotSupportedWarning: Configuration option(s) ['use_tpool'] not supported
    exception.NotSupportedWarning
  Running batches of 50 until complete
  /usr/lib/python2.7/site-packages/pymysql/cursors.py:166: Warning: (3090, u"Changing sql mode 'NO_AUTO_CREATE_USER' is deprecated. It will be removed in a future release.")
    result = self._query(query)
  2 rows matched query migrate_instances_add_request_spec, 0 migrated
  13 rows matched query migrate_quota_limits_to_api_db, 13 migrated
  37 rows matched query populate_uuids, 37 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  50 rows matched query populate_uuids, 50 migrated
  21 rows matched query populate_uuids, 21 migrated
  +---------------------------------------------+--------------+-----------+
  |                  Migration                  | Total Needed | Completed |
  +---------------------------------------------+--------------+-----------+
  | delete_build_requests_with_no_instance_uuid |      0       |     0     |
  |    migrate_aggregate_reset_autoincrement    |      0       |     0     |
  |              migrate_aggregates             |      0       |     0     |
  |      migrate_instance_groups_to_api_db      |      0       |     0     |
  |      migrate_instances_add_request_spec     |      0       |     0     |
  |          migrate_keypairs_to_api_db         |      0       |     0     |
  |       migrate_quota_classes_to_api_db       |      0       |     0     |
  |        migrate_quota_limits_to_api_db       |      0       |     0     |
  |          migration_migrate_to_uuid          |      0       |     0     |
  |                populate_uuids               |      0       |     0     |
  |     service_uuids_online_data_migration     |      0       |     0     |
  +---------------------------------------------+--------------+-----------+

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


References