Bug 1440959

Summary: Bare metal registration command hangs if ironic fails to move machines from enroll
Product: Red Hat OpenStack Reporter: Stephen Gordon <sgordon>
Component: openstack-tripleo-commonAssignee: Toure Dunnon <tdunnon>
Status: CLOSED DUPLICATE QA Contact: Alexander Chuzhoy <sasha>
Severity: medium Docs Contact:
Priority: medium    
Version: 10.0 (Newton)CC: aschultz, mburns, rhel-osp-director-maint, slinaber
Target Milestone: ---Keywords: Triaged, ZStream
Target Release: 10.0 (Newton)   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-25 10:34:48 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Stephen Gordon 2017-04-10 20:26:24 UTC
Cloned from launchpad bug 1667776.

Description:

The issue was ironic by default uses the ADMINISTRATOR, this env we had a OPERATOR account. However, ironic baremetal import shouldn't just hang forever. There should be a timeout, or if we fail to get power status we break out with a error to the user.

[stack@undercloud ~]$ time openstack baremetal import --json instackenv.json       [243/1996]
Started Mistral Workflow. Execution ID: 08be22c3-810d-47b9-81e0-b785a479f0fb
^CTraceback (most recent call last):
  File "/bin/openstack", line 10, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/openstackclient/shell.py", line 209, in main
    return OpenStackShell().run(argv)
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 135, in run
    ret_val = super(OpenStackShell, self).run(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 267, in run
    result = self.run_subcommand(remainder)
  File "/usr/lib/python2.7/site-packages/osc_lib/shell.py", line 180, in run_subcommand
    ret_value = super(OpenStackShell, self).run_subcommand(argv)
  File "/usr/lib/python2.7/site-packages/cliff/app.py", line 387, in run_subcommand
    result = cmd.run(parsed_args)
  File "/usr/lib/python2.7/site-packages/osc_lib/command/command.py", line 41, in run
    return super(Command, self).run(parsed_args)
  File "/usr/lib/python2.7/site-packages/cliff/command.py", line 59, in run
    return self.take_action(parsed_args) or 0
  File "/usr/lib/python2.7/site-packages/tripleoclient/v1/baremetal.py", line 190, in take_ac
tion
    instance_boot_option=parsed_args.instance_boot_option
  File "/usr/lib/python2.7/site-packages/tripleoclient/workflows/baremetal.py", line 38, in r
egister_or_update
    payload = ws.wait_for_message(execution.id)
  File "/usr/lib/python2.7/site-packages/tripleoclient/plugin.py", line 137, in wait_for_mess
age
    body = self.recv()['body']
  File "/usr/lib/python2.7/site-packages/tripleoclient/plugin.py", line 125, in recv
    return json.loads(self._ws.recv())
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 348, in recv
    opcode, data = self.recv_data()
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 365, in recv_data
    opcode, frame = self.recv_data_frame(control_frame)
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 378, in recv_data_frame
    frame = self.recv_frame()
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 410, in recv_frame
    return self.frame_buffer.recv_frame()
  File "/usr/lib/python2.7/site-packages/websocket/_abnf.py", line 300, in recv_frame
    self.recv_header()
  File "/usr/lib/python2.7/site-packages/websocket/_abnf.py", line 249, in recv_header
    header = self.recv_strict(2)
  File "/usr/lib/python2.7/site-packages/websocket/_abnf.py", line 334, in recv_strict
    bytes = self.recv(min(16384, shortage))
  File "/usr/lib/python2.7/site-packages/websocket/_core.py", line 476, in _recv
    return recv(self.sock, bufsize)
  File "/usr/lib/python2.7/site-packages/websocket/_socket.py", line 77, in recv
    bytes = sock.recv(bufsize)
KeyboardInterrupt

real    90m26.806s
user    0m0.466s
sys     0m0.090s

Specification URL (additional information):

https://bugs.launchpad.net/tripleo/+bug/1667776

Comment 1 Dmitry Tantsur 2017-04-25 10:34:48 UTC

*** This bug has been marked as a duplicate of bug 1435591 ***