datasource-row-list API raise 400 exception when thread switching occur in update_from_datasource()
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
congress |
Fix Released
|
Undecided
|
Rui Chen |
Bug Description
In nova and cinder datasource driver, self.stat is set as {} at the begin of update_
reproduce steps:
1. add pdb break point at the begin of 'get_items' funcation in row_model.py.
2. run command 'congress datasource row list cinder volumes'
3. debug the code step by step slowly, if the datasource polling occur before we execute the code line "if tablename not in service_obj.state:" , error is raised.
error output:
(openstack) congress datasource row list cinder volumes
...
DEBUG: keystoneclient.
DEBUG: requests.
DEBUG: keystoneclient.
RESP BODY: {"error": {"message": "Unknown tablename 'volumes' for datasource 'cinder'", "error_data": 404, "error_code": 404}}
DEBUG: keystoneclient.
ERROR: openstack Unknown tablename 'volumes' for datasource 'cinder' (HTTP 400) (Request-ID: req-02db330e-
Traceback (most recent call last):
File "/usr/local/
result = cmd.run(
File "/usr/local/
column_names, data = self.take_
File "/opt/stack/
parsed_
File "/opt/stack/
(datasource
File "/usr/local/
return self.request(url, 'GET', **kwargs)
File "/usr/local/
resp = super(LegacyJso
File "/usr/local/
return self.session.
File "/usr/local/
resp = super(TimingSes
File "/usr/local/
return func(*args, **kwargs)
File "/usr/local/
raise exceptions.
BadRequest: Unknown tablename 'volumes' for datasource 'cinder' (HTTP 400) (Request-ID: req-02db330e-
DEBUG: openstackclient
Unknown tablename 'volumes' for datasource 'cinder' (HTTP 400) (Request-ID: req-02db330e-
Changed in congress: | |
assignee: | nobody → Rui Chen (kiwik-chenrui) |
Changed in congress: | |
status: | In Progress → Fix Released |
Changed in congress: | |
milestone: | none → mitaka-1 |
Fix proposed to branch: master /review. openstack. org/206776
Review: https:/