Bug 1638003

Summary: overcloud prepare image failed by giving IronicAction.node.set_provision_state failed: 'NoneType' object has no attribute '__getitem_ (OSP-14)
Product: Red Hat OpenStack Reporter: Bob Fournier <bfournie>
Component: openstack-ironicAssignee: Dmitry Tantsur <dtantsur>
Status: CLOSED ERRATA QA Contact: Alexander Chuzhoy <sasha>
Severity: high Docs Contact:
Priority: high    
Version: 14.0 (Rocky)CC: bfournie, dtantsur, mariel, mburns, mlammon, rhos-maint, sasha
Target Milestone: betaKeywords: Triaged, ZStream
Target Release: 14.0 (Rocky)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-ironic-11.1.1-0.20181012152840.c96753b.el7ost Doc Type: Bug Fix
Doc Text:
In prior releases, a race condition existed in the ironic-conductor hash ring code. A hash ring can be None under load, but this causes an internal server error: 'NoneType' object has no attribute '__getitem_'. This release fixes the race condition, and ironic API operations no longer fail with 'NoneType' object has no attribute '__getitem_'.
Story Points: ---
Clone Of: 1636458 Environment:
Last Closed: 2019-01-11 11:53:52 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: 1636458    
Bug Blocks:    

Description Bob Fournier 2018-10-10 13:23:59 UTC
+++ This bug was initially created as a clone of Bug #1636458 +++

Queens periodic jobs FS01 failed at overcloud prepare image step giving the following error:
https://logs.rdoproject.org/openstack-periodic-24hr/git.openstack.org/openstack-infra/tripleo-ci/master/legacy-periodic-tripleo-ci-centos-7-ovb-3ctlr_1comp-featureset001-queens/59f5f7c/logs/undercloud/home/zuul/overcloud_prep_images.log.txt.gz#_2018-09-16_06_30_22
2018-09-16 06:30:14.147 23784 ERROR wsme.api [req-0cf2f1f1-bdc0-4072-9467-f1d5a02d5704 f0f20bf416fc4313983b66ffbc830981 68c9abc94e5748b3b4cd999cdb0bd00f - default default] Server-side error: "'NoneType' object has no attribute '__getitem__'". Detail:
Traceback (most recent call last):

  File "/usr/lib/python2.7/site-packages/wsmeext/pecan.py", line 85, in callfunction
    result = f(self, *args, **kwargs)

  File "/usr/lib/python2.7/site-packages/ironic/api/controllers/v1/node.py", line 609, in provision
    topic = pecan.request.rpcapi.get_topic_for(rpc_node)

  File "/usr/lib/python2.7/site-packages/ironic/conductor/rpcapi.py", line 136, in get_topic_for
    ring = self.ring_manager[node.driver]

  File "/usr/lib/python2.7/site-packages/ironic/common/hash_ring.py", line 67, in __getitem__
    return self.ring[driver_name]

TypeError: 'NoneType' object has no attribute '__getitem__'

Comment 4 Alexander Chuzhoy 2018-10-26 20:05:37 UTC
Verified:

Environment: openstack-ironic-common-11.1.1-0.20181012152840.c96753b.el7ost.noarch

Was able to deploy OC with ironic enabled.

Comment 8 errata-xmlrpc 2019-01-11 11:53:52 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/RHEA-2019:0045