Bug 1594265

Summary: [UPGRADES] undercloud upgrade succeeds but `Unexpected API Error. Table 'nova_cell0.instances' doesn't exist` seen in n-api.log
Product: Red Hat OpenStack Reporter: Yurii Prokulevych <yprokule>
Component: instack-undercloudAssignee: Rajesh Tailor <ratailor>
Status: CLOSED ERRATA QA Contact: Archit Modi <amodi>
Severity: high Docs Contact:
Priority: high    
Version: 11.0 (Ocata)CC: amodi, augol, berrange, ccamacho, cjanisze, dasmith, dmacpher, eglynn, jamsmith, jhakimra, kchamart, lyarwood, mburns, mcornea, morazi, owalsh, radoslaw.smigielski, ratailor, sbauza, sferdjao, sgordon, skatlapa, slinaber, srevivo, ssmolyak, vromanso
Target Milestone: asyncKeywords: Triaged, ZStream
Target Release: 11.0 (Ocata)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: instack-undercloud-6.1.6-3.el7ost Doc Type: Bug Fix
Doc Text:
This update corrects the ordering of the nova and nova api database schema updates during an OSP10 to OSP11 upgrade of the undercloud. Prior to this update, updates were not performed in the correct order. As a result, the nova services became unavailable and errors were logged until the next stage of the undercloud upgrade (to OSP12) resolved the issue.
Story Points: ---
Clone Of:
: 1595363 (view as bug list) Environment:
Last Closed: 2018-10-15 20:50:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1541051, 1541053, 1541054, 1541056, 1595363    

Description Yurii Prokulevych 2018-06-22 13:20:55 UTC
Description of problem:
-----------------------
Upgrade of compute node failed:

 upgrade-non-controller.sh --upgrade compute-2

Fri Jun 22 01:37:28 EDT 2018 upgrade-non-controller.sh Logging to upgrade-non-controller.sh-compute-2
Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible.
<class 'sqlalchemy.exc.ProgrammingError'> (HTTP 500) (Request-ID: req-5a93317b-4b67-45d9-b940-4545b50b818d)

From nova-api.log
=================
2018-06-22 01:37:29.868 3362 ERROR nova.api.openstack.extensions ProgrammingError: (pymysql.err.ProgrammingError) (1146, u"Table 'nova_cell0.instances' doesn't exist") [SQL: u'SELECT anon_1.instances_created_at AS anon_1_instances_created_at, anon_1.instances_updated_at AS anon_1_instances_updated_at, anon_1.instances_deleted_at AS anon_1_instances_deleted_at, anon_1.instances_deleted AS anon_1_instances_deleted, anon_1.instances_id AS anon_1_instances_id, anon_1.instances_user_id AS anon_1_instances_user_id, anon_1.instances_project_id AS anon_1_instances_project_id, anon_1.instances_image_ref AS anon_1_instances_image_ref, anon_1.instances_kernel_id AS anon_1_instances_kernel_id, anon_1.instances_ramdisk_id AS anon_1_instances_ramdisk_id, anon_1.instances_hostname AS anon_1_instances_hostname, anon_1.instances_launch_index AS anon_1_instances_launch_index, anon_1.instances_key_name AS anon_1_instances_key_name, anon_1.instances_key_data AS anon_1_instances_key_data, anon_1.instances_power_state AS anon_1_instances_power_state, anon_1.instances_vm_state AS anon_1_instances_vm_state, anon_1.instances_task_state AS anon_1_instances_task_state, anon_1.instances_memory_mb AS anon_1_instances_memory_mb, anon_1.instances_vcpus AS anon_1_instances_vcpus, anon_1.instances_root_gb AS anon_1_instances_root_gb, anon_1.instances_ephemeral_gb AS anon_1_instances_ephemeral_gb, anon_1.instances_ephemeral_key_uuid AS anon_1_instances_ephemeral_key_uuid, anon_1.instances_host AS anon_1_instances_host, anon_1.instances_node AS anon_1_instances_node, anon_1.instances_instance_type_id AS anon_1_instances_instance_type_id, anon_1.instances_user_data AS anon_1_instances_user_data, anon_1.instances_reservation_id AS anon_1_instances_reservation_id, anon_1.instances_launched_at AS anon_1_instances_launched_at, anon_1.instances_terminated_at AS anon_1_instances_terminated_at, anon_1.instances_availability_zone AS anon_1_instances_availability_zone, anon_1.instances_display_name AS anon_1_instances_display_name, anon_1.instances_display_description AS anon_1_instances_display_description, anon_1.instances_launched_on AS anon_1_instances_launched_on, anon_1.instances_locked AS anon_1_instances_locked, anon_1.instances_locked_by AS anon_1_instances_locked_by, anon_1.instances_os_type AS anon_1_instances_os_type, anon_1.instances_architecture AS anon_1_instances_architecture, anon_1.instances_vm_mode AS anon_1_instances_vm_mode, anon_1.instances_uuid AS anon_1_instances_uuid, anon_1.instances_root_device_name AS anon_1_instances_root_device_name, anon_1.instances_default_ephemeral_device AS anon_1_instances_default_ephemeral_device, anon_1.instances_default_swap_device AS anon_1_instances_default_swap_device, anon_1.instances_config_drive AS anon_1_instances_config_drive, anon_1.instances_access_ip_v4 AS anon_1_instances_access_ip_v4, anon_1.instances_access_ip_v6 AS anon_1_instances_access_ip_v6, anon_1.instances_auto_disk_config AS anon_1_instances_auto_disk_config, anon_1.instances_progress AS anon_1_instances_progress, anon_1.instances_shutdown_terminate AS anon_1_instances_shutdown_terminate, anon_1.instances_disable_terminate AS anon_1_instances_disable_terminate, anon_1.instances_cell_name AS anon_1_instances_cell_name, anon_1.instances_cleaned AS anon_1_instances_cleaned, instance_info_caches_1.created_at AS instance_info_caches_1_created_at, instance_info_caches_1.updated_at AS instance_info_caches_1_updated_at, instance_info_caches_1.deleted_at AS instance_info_caches_1_deleted_at, instance_info_caches_1.deleted AS instance_info_caches_1_deleted, instance_info_caches_1.id AS instance_info_caches_1_id, instance_info_caches_1.network_info AS instance_info_caches_1_network_info, instance_info_caches_1.instance_uuid AS instance_info_caches_1_instance_uuid, security_groups_1.created_at AS security_groups_1_created_at, security_groups_1.updated_at AS security_groups_1_updated_at, security_groups_1.deleted_at AS security_groups_1_deleted_at, security_groups_1.deleted AS security_groups_1_deleted, security_groups_1.id AS security_groups_1_id, security_groups_1.name AS security_groups_1_name, security_groups_1.description AS security_groups_1_description, security_groups_1.user_id AS security_groups_1_user_id, security_groups_1.project_id AS security_groups_1_project_id, instance_extra_1.flavor AS instance_extra_1_flavor, instance_extra_1.created_at AS instance_extra_1_created_at, instance_extra_1.updated_at AS instance_extra_1_updated_at, instance_extra_1.deleted_at AS instance_extra_1_deleted_at, instance_extra_1.deleted AS instance_extra_1_deleted, instance_extra_1.id AS instance_extra_1_id, instance_extra_1.instance_uuid AS instance_extra_1_instance_uuid, services_1.created_at AS services_1_created_at, services_1.updated_at AS services_1_updated_at, services_1.deleted_at AS services_1_deleted_at, services_1.deleted AS services_1_deleted, services_1.id AS services_1_id, services_1.host AS services_1_host, services_1.`binary` AS services_1_binary, services_1.topic AS services_1_topic, services_1.report_count AS services_1_report_count, services_1.disabled AS services_1_disabled, services_1.disabled_reason AS services_1_disabled_reason, services_1.last_seen_up AS services_1_last_seen_up, services_1.forced_down AS services_1_forced_down, services_1.version AS services_1_version \nFROM (SELECT instances.created_at AS instances_created_at, instances.updated_at AS instances_updated_at, instances.deleted_at AS instances_deleted_at, instances.deleted AS instances_deleted, instances.id AS instances_id, instances.user_id AS instances_user_id, instances.project_id AS instances_project_id, instances.image_ref AS instances_image_ref, instances.kernel_id AS instances_kernel_id, instances.ramdisk_id AS instances_ramdisk_id, instances.hostname AS instances_hostname, instances.launch_index AS instances_launch_index, instances.key_name AS instances_key_name, instances.key_data AS instances_key_data, instances.power_state AS instances_power_state, instances.vm_state AS instances_vm_state, instances.task_state AS instances_task_state, instances.memory_mb AS instances_memory_mb, instances.vcpus AS instances_vcpus, instances.root_gb AS instances_root_gb, instances.ephemeral_gb AS instances_ephemeral_gb, instances.ephemeral_key_uuid AS instances_ephemeral_key_uuid, instances.host AS instances_host, instances.node AS instances_node, instances.instance_type_id AS instances_instance_type_id, instances.user_data AS instances_user_data, instances.reservation_id AS instances_reservation_id, instances.launched_at AS instances_launched_at, instances.terminated_at AS instances_terminated_at, instances.availability_zone AS instances_availability_zone, instances.display_name AS instances_display_name, instances.display_description AS instances_display_description, instances.launched_on AS instances_launched_on, instances.locked AS instances_locked, instances.locked_by AS instances_locked_by, instances.os_type AS instances_os_type, instances.architecture AS instances_architecture, instances.vm_mode AS instances_vm_mode, instances.uuid AS instances_uuid, instances.root_device_name AS instances_root_device_name, instances.default_ephemeral_device AS instances_default_ephemeral_device, instances.default_swap_device AS instances_default_swap_device, instances.config_drive AS instances_config_drive, instances.access_ip_v4 AS instances_access_ip_v4, instances.access_ip_v6 AS instances_access_ip_v6, instances.auto_disk_config AS instances_auto_disk_config, instances.progress AS instances_progress, instances.shutdown_terminate AS instances_shutdown_terminate, instances.disable_terminate AS instances_disable_terminate, instances.cell_name AS instances_cell_name, instances.cleaned AS instances_cleaned \nFROM instances \nWHERE instances.deleted = %(deleted_1)s AND (instances.vm_state != %(vm_state_1)s OR instances.vm_state IS NULL) AND instances.project_id = %(project_id_1)s ORDER BY instances.created_at DESC, instances.id DESC \n LIMIT %(param_1)s) AS anon_1 LEFT OUTER JOIN instance_info_caches AS instance_info_caches_1 ON instance_info_caches_1.instance_uuid = anon_1.instances_uuid LEFT OUTER JOIN (security_group_instance_association AS security_group_instance_association_1 INNER JOIN security_groups AS security_groups_1 ON security_groups_1.id = security_group_instance_association_1.security_group_id AND security_group_instance_association_1.deleted = %(deleted_2)s AND security_groups_1.deleted = %(deleted_3)s) ON security_group_instance_association_1.instance_uuid = anon_1.instances_uuid AND anon_1.instances_deleted = %(deleted_4)s LEFT OUTER JOIN instance_extra AS instance_extra_1 ON instance_extra_1.instance_uuid = anon_1.instances_uuid LEFT OUTER JOIN services AS services_1 ON services_1.host = anon_1.instances_host AND services_1.`binary` = %(binary_1)s AND anon_1.instances_deleted = %(deleted_5)s ORDER BY anon_1.instances_created_at DESC, anon_1.instances_id DESC'] [parameters: {u'binary_1': 'nova-compute', u'param_1': 1000, u'deleted_5': 0, u'deleted_4': 0, u'deleted_3': 0, u'deleted_2': 0, u'deleted_1': 0, u'vm_state_1': 'soft-delete', u'project_id_1': u'5d76559fc7a24c0dbbf94bb46c49abd8'}]
2018-06-22 01:37:29.868 3362 ERROR nova.api.openstack.extensions
2018-06-22 01:37:29.870 3362 INFO nova.api.openstack.wsgi [req-5a93317b-4b67-45d9-b940-4545b50b818d 0275792e69e54562acc8cbd38d8ad2e1 5d76559fc7a24c0dbbf94bb46c49abd8 - default default] HTTP exception thrown: Unexpected API Error. Please report this at http://bugs.launchpad.net/nova/ and attach the Nova API log if possible

Version-Release number of selected component (if applicable):
-------------------------------------------------------------
openstack-nova-common-15.1.0-3.el7ost.noarch
openstack-nova-conductor-15.1.0-3.el7ost.noarch
openstack-nova-scheduler-15.1.0-3.el7ost.noarch
openstack-nova-cert-15.1.0-3.el7ost.noarch
openstack-nova-compute-15.1.0-3.el7ost.noarch
openstack-nova-api-15.1.0-3.el7ost.noarch
openstack-nova-placement-api-15.1.0-3.el7ost.noarch

openstack-tripleo-heat-templates-6.2.12-2.el7ost.noarch

Steps to Reproduce:
-------------------
1. Perform RHOS-10 to RHOS-11 upgrade according doc

Comment 6 Dan Macpherson 2018-06-26 18:06:59 UTC
Cloning this bug for the OSP13 release notes.

Comment 7 Carlos Camacho 2018-07-02 09:11:51 UTC
*** Bug 1594262 has been marked as a duplicate of this bug. ***

Comment 8 radoslaw.smigielski@alcatel-lucent.com 2018-07-11 10:38:33 UTC
I am seeing the same error but in my case this happens on UC upgrade N->O after I execute: openstack undercloud upgrade

Comment 9 Ollie Walsh 2018-07-11 10:55:55 UTC
(In reply to radoslaw.smigielski from comment #8)
> I am seeing the same error but in my case this happens on UC upgrade N->O
> after I execute: openstack undercloud upgrade

Yes, it's the same issue. The description doesn't make it clear that the nova-api logs are from the UC.

Fixed upstream, see https://bugs.launchpad.net/tripleo/+bug/1778788.

Comment 10 Ollie Walsh 2018-08-29 08:55:49 UTC
*** Bug 1615125 has been marked as a duplicate of this bug. ***

Comment 22 errata-xmlrpc 2018-10-15 20:50:27 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:2919