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 -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : [email protected] Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp

