yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #73178
[Bug 1773945] Re: nova client servers.list crashes with bad marker
Reviewed: https://review.openstack.org/572539
Committed: https://git.openstack.org/cgit/openstack/python-novaclient/commit/?id=abaa86fd86d4beca0082ff1768d5306e5e86302e
Submitter: Zuul
Branch: master
commit abaa86fd86d4beca0082ff1768d5306e5e86302e
Author: Matt Riedemann <mriedem.os@xxxxxxxxx>
Date: Tue Jun 5 19:57:49 2018 +0000
Revert "Fix listing of instances above API max_limit"
This reverts commit eff607ccef91d09052d58f6798f68d67404f51ce.
There was no apparent need for the change being reverted since
user can list all servers by specifying --limit=1 when running
the nova list command.
The change introduced a problem whereby the first pass to
list instances from the server would get up to
[api]/max_limit (default 1000) results and then call again
with a marker. If the last instance in the list (the marker)
is corrupted in the instance_mappings table in the API DB
by not having an associated cell mapping, listing instances
will always fail with a MarkerNotFound error even though
the CLI user is not passing a marker nor specifying
--limit=-1. The corrupted instance mapping record resulting
in the MarkerNotFound error is something else that should
be fixed on the server side (and likely result in a 500) but
the change in behavior of the CLI makes it always fail
if you hit this even if you're not passing a marker.
Change-Id: Ibb43f500a74733b85bd3242592d36985bfb45856
Closes-Bug: #1773945
** Changed in: python-novaclient
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/1773945
Title:
nova client servers.list crashes with bad marker
Status in OpenStack Compute (nova):
New
Status in python-novaclient:
Fix Released
Bug description:
We have a python script that called servers.list() on an instance of
novaclient.v2.client.Client . Sometimes that raises a "BadRequest
marker not found" exception:
Our call:
client = nova_client.Client("2", session=some_session)
client.servers.list()
Observed Stacktrace:
File "/usr/lib/python2.7/site-packages/XXXX/XXXX.py", line 630, in XXXX:
all_servers = self.nova.servers.list()
File "/usr/lib/python2.7/site-packages/novaclient/v2/servers.py", line 854, in list
"servers")
File "/usr/lib/python2.7/site-packages/novaclient/base.py", line 257, in _list
resp, body = self.api.client.get(url)
File "/usr/lib/python2.7/site-packages/keystoneauth1/adapter.py", line 304, in get
return self.request(url, 'GET', **kwargs)
File "/usr/lib/python2.7/site-packages/novaclient/client.py", line 83, in request
raise exceptions.from_response(resp, body, url, method)
BadRequest: marker [6a91d602-ab6e-42e0-929e-5ec33df2ddef] not found (HTTP 400) (Request-ID: req-78827725-801d-4514-8cc8-e4b94f15c191)
Discussion:
We have a lot of stacks and we sometimes create multiple stacks at the same time. We've noticed that that the stacks with the mentioned UUIDs were created just before these errors occur. It seems that when a newly-created stack appears at a certain location in the server list, its UUID is used as a marker, but the code that validates the marker does
not recognize such stacks.
Relevant versions:
- python-novaclient (9.1.0)
- nova (16.0.0)
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1773945/+subscriptions
References