yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #75849
[Bug 1804453] [NEW] maximum recursion possible while setting aggregates in placement
Public bug reported:
It's possible for the _ensure_aggregate code in
objects/resource_provider.py to, under unusual circumstances, reach a
maximum recursion error, because it calls itself when there is a
DBDuplicateEntry error.
http://logs.openstack.org/84/602484/30/check/placement-
perfload/8a8642e/controller/logs/screen-placement-
api.txt.gz#_Nov_21_13_05_03_661629
http://logs.openstack.org/84/602484/30/check/placement-
perfload/8a8642e/controller/logs/screen-placement-
api.txt.gz#_Nov_21_13_05_03_654874
" ERROR placement.fault_wrap [None req-5fc62d1e-a1bd-47e3-a61e-
45e01281fed3 None None] Placement API unexpected error: maximum
recursion depth exceeded while getting the str of an object:
RuntimeError: maximum recursion depth exceeded while getting the str of
an object"
The "getting the str" part appears to be a coincidence based on reaching
a bad stack depth at that particular moment.
This happened while the placeload script was doing its thing of adding
aggregates to to 1000 resource providers using asyncio, so concurrency
is high and weird. See https://review.openstack.org/#/c/602484/ for the
code that caused this.
It is unlikely that this is going to happen in the real world, but it is
the sort of thing it would be nice to be more robust about, perhaps by
counting attempts and bailing out?
** Affects: nova
Importance: Undecided
Status: New
** Tags: placement
--
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/1804453
Title:
maximum recursion possible while setting aggregates in placement
Status in OpenStack Compute (nova):
New
Bug description:
It's possible for the _ensure_aggregate code in
objects/resource_provider.py to, under unusual circumstances, reach a
maximum recursion error, because it calls itself when there is a
DBDuplicateEntry error.
http://logs.openstack.org/84/602484/30/check/placement-
perfload/8a8642e/controller/logs/screen-placement-
api.txt.gz#_Nov_21_13_05_03_661629
http://logs.openstack.org/84/602484/30/check/placement-
perfload/8a8642e/controller/logs/screen-placement-
api.txt.gz#_Nov_21_13_05_03_654874
" ERROR placement.fault_wrap [None req-5fc62d1e-a1bd-47e3-a61e-
45e01281fed3 None None] Placement API unexpected error: maximum
recursion depth exceeded while getting the str of an object:
RuntimeError: maximum recursion depth exceeded while getting the str
of an object"
The "getting the str" part appears to be a coincidence based on
reaching a bad stack depth at that particular moment.
This happened while the placeload script was doing its thing of adding
aggregates to to 1000 resource providers using asyncio, so concurrency
is high and weird. See https://review.openstack.org/#/c/602484/ for
the code that caused this.
It is unlikely that this is going to happen in the real world, but it
is the sort of thing it would be nice to be more robust about, perhaps
by counting attempts and bailing out?
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1804453/+subscriptions
Follow ups