)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"42dfa7a724751ef5cd4b58ad8ccff285bb0bf36c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     3f941107 (Disable NUMATopologyFilter on rebuild)"},{"line_number":2,"context_line":"Author:     Sean Mooney \u003cwork@seanmooney.info\u003e"},{"line_number":3,"context_line":"AuthorDate: 2019-12-10 14:20:33 +0000"},{"line_number":4,"context_line":"Commit:     Sean Mooney \u003cwork@seanmooney.info\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_cfd900f1","line":1,"updated":"2019-12-13 15:16:08.000000000","message":"can you please point to the commit(s) - or even better, link to the individual comments - that you\u0027re following up on here?","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":1,"context_line":"Parent:     3f941107 (Disable NUMATopologyFilter on rebuild)"},{"line_number":2,"context_line":"Author:     Sean Mooney \u003cwork@seanmooney.info\u003e"},{"line_number":3,"context_line":"AuthorDate: 2019-12-10 14:20:33 +0000"},{"line_number":4,"context_line":"Commit:     Sean Mooney \u003cwork@seanmooney.info\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_93451447","line":1,"in_reply_to":"3fa7e38b_cfd900f1","updated":"2019-12-19 21:13:25.000000000","message":"Done","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":7,"context_line":"FUP for in-place numa rebuild"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addresses a number of typos and minor"},{"line_number":10,"context_line":"issues raised during review. a summary of the changes"},{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_d345cc17","line":10,"range":{"start_line":10,"start_character":29,"end_line":10,"end_character":30},"updated":"2019-12-19 21:13:25.000000000","message":"A","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addresses a number of typos and minor"},{"line_number":10,"context_line":"issues raised during review. a summary of the changes"},{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_934f5434","line":11,"range":{"start_line":11,"start_character":40,"end_line":11,"end_character":47},"updated":"2019-12-19 21:13:25.000000000","message":"correction","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch addresses a number of typos and minor"},{"line_number":10,"context_line":"issues raised during review. a summary of the changes"},{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_b34a9021","line":11,"range":{"start_line":11,"start_character":51,"end_line":11,"end_character":52},"updated":"2019-12-19 21:13:25.000000000","message":"nix","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":9,"context_line":"This patch addresses a number of typos and minor"},{"line_number":10,"context_line":"issues raised during review. a summary of the changes"},{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I8975e524cd5a9c7dfb065bb2dc8ceb03f1b89e7b"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_535b1cf8","line":12,"range":{"start_line":12,"start_character":0,"end_line":12,"end_character":10},"updated":"2019-12-19 21:13:25.000000000","message":"exception","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":10,"context_line":"issues raised during review. a summary of the changes"},{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I8975e524cd5a9c7dfb065bb2dc8ceb03f1b89e7b"},{"line_number":16,"context_line":"Related-Bug: #1804502"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_1355a4c2","line":13,"range":{"start_line":13,"start_character":0,"end_line":13,"end_character":7},"updated":"2019-12-19 21:13:25.000000000","message":"addition","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":11,"context_line":"are corrections to typos in comments, a correct to a the"},{"line_number":12,"context_line":"excpection message, an update to the release note and"},{"line_number":13,"context_line":"addtion of debug logging."},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"Change-Id: I8975e524cd5a9c7dfb065bb2dc8ceb03f1b89e7b"},{"line_number":16,"context_line":"Related-Bug: #1804502"},{"line_number":17,"context_line":"Related-Bug: #1763766"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3fa7e38b_3358e0f7","line":14,"updated":"2019-12-19 21:13:25.000000000","message":"Sean, slow down. FUPs shouldn\u0027t require FUPs.","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"}],"nova/compute/api.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"788cc9eaa2b0e0d53147f1fc0d7adc3ba43e1508","unresolved":false,"context_lines":[{"line_number":3538,"context_line":""},{"line_number":3539,"context_line":"        # early out for non NUMA instances"},{"line_number":3540,"context_line":"        if old_constraints is None and new_constraints is None:"},{"line_number":3541,"context_line":"            return"},{"line_number":3542,"context_line":""},{"line_number":3543,"context_line":"        # if only one of the constraints are non-None (or \u0027set\u0027) then the"},{"line_number":3544,"context_line":"        # constraints changed so raise an exception."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_4f8190f9","line":3541,"updated":"2019-12-13 15:05:18.000000000","message":"\\o/","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"788cc9eaa2b0e0d53147f1fc0d7adc3ba43e1508","unresolved":false,"context_lines":[{"line_number":3544,"context_line":"        # constraints changed so raise an exception."},{"line_number":3545,"context_line":"        if old_constraints is None or new_constraints is None:"},{"line_number":3546,"context_line":"            action \u003d \"removing\" if old_constraints else \"introducing\""},{"line_number":3547,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3548,"context_line":"                      \"would alter the NUMA constrains by %s a NUMA topology\","},{"line_number":3549,"context_line":"                      action, instance\u003dinstance)"},{"line_number":3550,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_8f90e843","line":3547,"range":{"start_line":3547,"start_character":74,"end_line":3547,"end_character":75},"updated":"2019-12-13 15:05:18.000000000","message":"missing space","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":3544,"context_line":"        # constraints changed so raise an exception."},{"line_number":3545,"context_line":"        if old_constraints is None or new_constraints is None:"},{"line_number":3546,"context_line":"            action \u003d \"removing\" if old_constraints else \"introducing\""},{"line_number":3547,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3548,"context_line":"                      \"would alter the NUMA constrains by %s a NUMA topology\","},{"line_number":3549,"context_line":"                      action, instance\u003dinstance)"},{"line_number":3550,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_5371dcaa","line":3547,"range":{"start_line":3547,"start_character":74,"end_line":3547,"end_character":75},"in_reply_to":"3fa7e38b_8f90e843","updated":"2019-12-19 21:13:25.000000000","message":"Done","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":3545,"context_line":"        if old_constraints is None or new_constraints is None:"},{"line_number":3546,"context_line":"            action \u003d \"removing\" if old_constraints else \"introducing\""},{"line_number":3547,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3548,"context_line":"                      \"would alter the NUMA constrains by %s a NUMA topology\","},{"line_number":3549,"context_line":"                      action, instance\u003dinstance)"},{"line_number":3550,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"},{"line_number":3551,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_d364ece8","line":3548,"range":{"start_line":3548,"start_character":44,"end_line":3548,"end_character":54},"updated":"2019-12-19 21:13:25.000000000","message":"constraints","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"788cc9eaa2b0e0d53147f1fc0d7adc3ba43e1508","unresolved":false,"context_lines":[{"line_number":3554,"context_line":"        old \u003d old_constraints.obj_to_primitive()"},{"line_number":3555,"context_line":"        new \u003d new_constraints.obj_to_primitive()"},{"line_number":3556,"context_line":"        if old !\u003d new:"},{"line_number":3557,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3558,"context_line":"                      \"conflicts with the existing NUMA constrains\","},{"line_number":3559,"context_line":"                      instance\u003dinstance)"},{"line_number":3560,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_6f8d6c28","line":3557,"range":{"start_line":3557,"start_character":73,"end_line":3557,"end_character":74},"updated":"2019-12-13 15:05:18.000000000","message":"missing space","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":3554,"context_line":"        old \u003d old_constraints.obj_to_primitive()"},{"line_number":3555,"context_line":"        new \u003d new_constraints.obj_to_primitive()"},{"line_number":3556,"context_line":"        if old !\u003d new:"},{"line_number":3557,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3558,"context_line":"                      \"conflicts with the existing NUMA constrains\","},{"line_number":3559,"context_line":"                      instance\u003dinstance)"},{"line_number":3560,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_7374189c","line":3557,"range":{"start_line":3557,"start_character":73,"end_line":3557,"end_character":74},"in_reply_to":"3fa7e38b_6f8d6c28","updated":"2019-12-19 21:13:25.000000000","message":"Done","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"788cc9eaa2b0e0d53147f1fc0d7adc3ba43e1508","unresolved":false,"context_lines":[{"line_number":3555,"context_line":"        new \u003d new_constraints.obj_to_primitive()"},{"line_number":3556,"context_line":"        if old !\u003d new:"},{"line_number":3557,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3558,"context_line":"                      \"conflicts with the existing NUMA constrains\","},{"line_number":3559,"context_line":"                      instance\u003dinstance)"},{"line_number":3560,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"},{"line_number":3561,"context_line":"        # TODO(sean-k-mooney): add PCI NUMA affinity policy check."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_cf6ca06c","line":3558,"range":{"start_line":3558,"start_character":56,"end_line":3558,"end_character":66},"updated":"2019-12-13 15:05:18.000000000","message":"constraints","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":3555,"context_line":"        new \u003d new_constraints.obj_to_primitive()"},{"line_number":3556,"context_line":"        if old !\u003d new:"},{"line_number":3557,"context_line":"            LOG.debug(\"NUMA rebuild validation failed. The requested image\""},{"line_number":3558,"context_line":"                      \"conflicts with the existing NUMA constrains\","},{"line_number":3559,"context_line":"                      instance\u003dinstance)"},{"line_number":3560,"context_line":"            raise exception.ImageNUMATopologyRebuildConflict()"},{"line_number":3561,"context_line":"        # TODO(sean-k-mooney): add PCI NUMA affinity policy check."}],"source_content_type":"text/x-python","patch_set":1,"id":"3fa7e38b_136b64b9","line":3558,"range":{"start_line":3558,"start_character":56,"end_line":3558,"end_character":66},"in_reply_to":"3fa7e38b_cf6ca06c","updated":"2019-12-19 21:13:25.000000000","message":"Done","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"}],"releasenotes/notes/numa-rebuild-b75f9a1966f576ea.yaml":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"cbed428973a74da6357173b035d0552958e93c43","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Previously Nova would have ignored the NUMA topology of the new image"},{"line_number":7,"context_line":"    continuing to use the NUMA topology of the existing instance until a move"},{"line_number":8,"context_line":"    operation was performed. As Nova did not explicitly guard against"},{"line_number":9,"context_line":"    inadvertent changes in resource request contained in a new image,"},{"line_number":10,"context_line":"    it was possible to rebuild with an image that would violate this requirement"},{"line_number":11,"context_line":"    see `bug #1763766`_. This resulted in an inconsistent state as the instance"},{"line_number":12,"context_line":"    that was running did not match the instance that was requested. Nova now"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_38443f73","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":43},"updated":"2019-12-19 20:54:36.000000000","message":"seem to be missing a plural here, \"changes to resource requests contained in a new image\"?","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"},{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"dd07b3d7d16d9ef443264abb77485540d3f6a914","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    Previously Nova would have ignored the NUMA topology of the new image"},{"line_number":7,"context_line":"    continuing to use the NUMA topology of the existing instance until a move"},{"line_number":8,"context_line":"    operation was performed. As Nova did not explicitly guard against"},{"line_number":9,"context_line":"    inadvertent changes in resource request contained in a new image,"},{"line_number":10,"context_line":"    it was possible to rebuild with an image that would violate this requirement"},{"line_number":11,"context_line":"    see `bug #1763766`_. This resulted in an inconsistent state as the instance"},{"line_number":12,"context_line":"    that was running did not match the instance that was requested. Nova now"}],"source_content_type":"text/x-yaml","patch_set":1,"id":"3fa7e38b_53cd5cb8","line":9,"range":{"start_line":9,"start_character":24,"end_line":9,"end_character":43},"in_reply_to":"3fa7e38b_38443f73","updated":"2019-12-19 21:13:25.000000000","message":"Done","commit_id":"6d852104d5b437473c595ed0e2585ed012c5d154"}]}
