)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"2d1ad0139d6daae440fed2452a168f409d538d93","unresolved":false,"context_lines":[{"line_number":10,"context_line":"without a uuid field if the InstanceGroup is set from the"},{"line_number":11,"context_line":"_populate_group_info method which should only be used for"},{"line_number":12,"context_line":"legacy translation of request specs using legacy filter"},{"line_number":13,"context_line":"properties dicts. It\u0027s not totally clear how to recreate this"},{"line_number":14,"context_line":"scenario though, but it probably involves something like"},{"line_number":15,"context_line":"reschedules and failed cold migrate / resize where the request"},{"line_number":16,"context_line":"spec instance_group from _populate_group_info gets erroneously"},{"line_number":17,"context_line":"saved which causes an ObjectActionErr later when trying to"},{"line_number":18,"context_line":"load the spec.instance_group by uuid (when uuid isn\u0027t set)."},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"To workaround the issue, we look for the group scheduler hint"},{"line_number":21,"context_line":"to get the group uuid before loading it from the DB. If we can\u0027t"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bfb3d3c7_ac5c1ded","line":18,"range":{"start_line":13,"start_character":18,"end_line":18,"end_character":59},"updated":"2019-05-28 16:07:08.000000000","message":"Yup, detailed in the bug report:\n\nhttps://bugs.launchpad.net/nova/+bug/1830747/comments/4\n\nThe problem will be writing a functional test to recreate this since since stein compute will pass the request spec to conductor during cold migrate reschedule so conductor won\u0027t build a new request spec from the filter_properties primitive on the master branch (or stein) without hacking how that works, like intercepting the rpc method and removing the request_spec.","commit_id":"86d2a9d4561d6914039968400b9064e075dae1f7"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"0f16985728bd4ef198d8bb54e54d4b2d337a7549","unresolved":false,"context_lines":[{"line_number":19,"context_line":"the _to_legacy_group_info and _populate_group_info methods"},{"line_number":20,"context_line":"are updated to set/get the group uuid to/from the filter_properties."},{"line_number":21,"context_line":"That, however, won\u0027t fix already-broken request specs so we still"},{"line_number":22,"context_line":"need the workaround in _from_db_object to use the scheduler hint."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The related functional regression recreate test is updated"},{"line_number":25,"context_line":"to show this solves the issue."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fb8cfa7_8a1beb71","line":22,"updated":"2019-05-31 16:26:48.000000000","message":"Doesn\u0027t it seem like this is two changes? A workaround to handle the missing data, and then the change to stash extra info and load from that? Assuming you\u0027re planning to backport this, couldn\u0027t we get away with just the hint workaround? And if so, shouldn\u0027t we validate that the regression test can avoid going to error with just that, followed by the confirmation that we now use the new thing? It\u0027s hard to reason about the impact to a mix of old and new nodes with a mix of old and new data, and testing those scenarios separately seems like a good idea.","commit_id":"54677b93d89b243315d0c1b509ab9151289f78be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"81968a6cdbe6137bbc9357da2f4daaf8137d6dcd","unresolved":false,"context_lines":[{"line_number":19,"context_line":"the _to_legacy_group_info and _populate_group_info methods"},{"line_number":20,"context_line":"are updated to set/get the group uuid to/from the filter_properties."},{"line_number":21,"context_line":"That, however, won\u0027t fix already-broken request specs so we still"},{"line_number":22,"context_line":"need the workaround in _from_db_object to use the scheduler hint."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The related functional regression recreate test is updated"},{"line_number":25,"context_line":"to show this solves the issue."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fb8cfa7_9bb7bb3b","line":22,"in_reply_to":"9fb8cfa7_50b7e2d9","updated":"2019-05-31 19:29:09.000000000","message":"Done","commit_id":"54677b93d89b243315d0c1b509ab9151289f78be"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"e6e5ab5c35ed47f5d32a05f90dcb3c147861c129","unresolved":false,"context_lines":[{"line_number":19,"context_line":"the _to_legacy_group_info and _populate_group_info methods"},{"line_number":20,"context_line":"are updated to set/get the group uuid to/from the filter_properties."},{"line_number":21,"context_line":"That, however, won\u0027t fix already-broken request specs so we still"},{"line_number":22,"context_line":"need the workaround in _from_db_object to use the scheduler hint."},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"The related functional regression recreate test is updated"},{"line_number":25,"context_line":"to show this solves the issue."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"9fb8cfa7_50b7e2d9","line":22,"in_reply_to":"9fb8cfa7_8a1beb71","updated":"2019-05-31 18:53:10.000000000","message":"Sure we can do that and that\u0027s originally how I had this written (PS4 added the group_uuid stuff so we don\u0027t need the workaround in _from_db_object for non-busted request specs). You\u0027re right in that either fix makes the functional test pass. If that\u0027s what you\u0027d prefer for dealing with this I can split that back out and then I guess we just keep the group_uuid stuff on master.","commit_id":"54677b93d89b243315d0c1b509ab9151289f78be"}],"nova/objects/request_spec.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"96beea4bf458e0bbfc800f537b9253581f99a18a","unresolved":false,"context_lines":[{"line_number":366,"context_line":"        # NOTE(sbauza): Since this is only needed until the AffinityFilters are"},{"line_number":367,"context_line":"        # modified by using directly the RequestSpec object, we need to keep"},{"line_number":368,"context_line":"        # the existing dictionary as a primitive."},{"line_number":369,"context_line":"        return {\u0027group_updated\u0027: True,"},{"line_number":370,"context_line":"                \u0027group_hosts\u0027: set(self.instance_group.hosts),"},{"line_number":371,"context_line":"                \u0027group_policies\u0027: set([self.instance_group.policy]),"},{"line_number":372,"context_line":"                \u0027group_members\u0027: set(self.instance_group.members)}"}],"source_content_type":"text/x-python","patch_set":3,"id":"bfb3d3c7_ba63eb41","line":369,"updated":"2019-05-28 18:19:26.000000000","message":"Should throw the group_uuid in here.","commit_id":"be7ac704bbaf16ae5ef9d9682076ef7b3eb06036"}]}
