)]}'
{"tests/unit/test_scheduler.py":[{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6ae8b92334c1607eed1c03ec068bf6dde2cf6e8f","unresolved":false,"context_lines":[{"line_number":3448,"context_line":"                time.sleep(0)"},{"line_number":3449,"context_line":""},{"line_number":3450,"context_line":"    # TODO: see if we can find another way of raising an exception"},{"line_number":3451,"context_line":"    # during reconfiguration."},{"line_number":3452,"context_line":"    def test_live_reconfiguration_abort(self):"},{"line_number":3453,"context_line":"        # Raise an exception during reconfiguration and verify we"},{"line_number":3454,"context_line":"        # still function."}],"source_content_type":"text/x-python","patch_set":1,"id":"68740ae5_9c884cf7","line":3451,"updated":"2021-04-15 02:16:35.000000000","message":"This was really testing something we don\u0027t do anymore: refreezing a job during a reconfig.  There are lots of places we might throw an exception during a reconfig, but it\u0027s not clear there\u0027s value in testing them specifically.  I think we should just drop it.","commit_id":"f8ace43fc05edcad27f1f9335bd83d9b3409dede"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6ae8b92334c1607eed1c03ec068bf6dde2cf6e8f","unresolved":false,"context_lines":[{"line_number":3480,"context_line":""},{"line_number":3481,"context_line":"    # TODO: consider removing this as it probably only passes since"},{"line_number":3482,"context_line":"    # we\u0027re not re-freezing the jobs (the queue removal doesn\u0027t"},{"line_number":3483,"context_line":"    # actually take effect)."},{"line_number":3484,"context_line":"    def test_live_reconfiguration_shared_queue_removed(self):"},{"line_number":3485,"context_line":"        # Test that changes in a shared queue survive a change of the"},{"line_number":3486,"context_line":"        # queue during reconfiguration. This is a regression test"}],"source_content_type":"text/x-python","patch_set":1,"id":"7203c96a_5b154afd","line":3483,"updated":"2021-04-15 02:16:35.000000000","message":"I think we should remove this.","commit_id":"f8ace43fc05edcad27f1f9335bd83d9b3409dede"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6ae8b92334c1607eed1c03ec068bf6dde2cf6e8f","unresolved":false,"context_lines":[{"line_number":7719,"context_line":"            len(tenant.semaphore_handler.semaphoreHolders(\"test-semaphore\")),"},{"line_number":7720,"context_line":"            0)"},{"line_number":7721,"context_line":""},{"line_number":7722,"context_line":"    # TODO: remove the second half of this test (which removes jobs)."},{"line_number":7723,"context_line":"    def test_semaphore_reconfigure(self):"},{"line_number":7724,"context_line":"        \"Test reconfigure with job semaphores\""},{"line_number":7725,"context_line":"        self.executor_server.hold_jobs_in_build \u003d True"}],"source_content_type":"text/x-python","patch_set":1,"id":"cee74181_0b8cea94","line":7722,"updated":"2021-04-15 02:16:35.000000000","message":"Better yet, have it remove the pipeline to check we don\u0027t leak semaphores.","commit_id":"f8ace43fc05edcad27f1f9335bd83d9b3409dede"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"73ea915315e4eb6647b006655362cf21cffadb5a","unresolved":true,"context_lines":[{"line_number":3494,"context_line":"        self.assertEqual(B.data[\u0027status\u0027], \u0027MERGED\u0027)"},{"line_number":3495,"context_line":"        self.assertEqual(B.reported, 2)"},{"line_number":3496,"context_line":""},{"line_number":3497,"context_line":"    #XXX"},{"line_number":3498,"context_line":"    def test_live_reconfiguration_del_project(self):"},{"line_number":3499,"context_line":"        # Test project deletion from tenant while changes are enqueued"},{"line_number":3500,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"6cd60c3d_6ed268aa","line":3497,"in_reply_to":"7b08c474_9556cdd8","updated":"2021-04-15 07:40:38.000000000","message":"\u003e linters: E265 block comment should start with \u0027# \u0027\n\nPlease fix.","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"73ea915315e4eb6647b006655362cf21cffadb5a","unresolved":true,"context_lines":[{"line_number":6012,"context_line":"        self.fake_nodepool.unpause()"},{"line_number":6013,"context_line":"        self.waitUntilSettled()"},{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    #XXX"},{"line_number":6016,"context_line":"    def test_nodepool_job_removal(self):"},{"line_number":6017,"context_line":"        \"Test that nodes are returned unused after job removal\""},{"line_number":6018,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"e049d50f_c3d1c8a1","line":6015,"in_reply_to":"7fe26f10_159e6f60","updated":"2021-04-15 07:40:38.000000000","message":"Leftover?","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"28547012c5e9578c797e55795244d9676275e322","unresolved":true,"context_lines":[{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    #XXX"},{"line_number":6016,"context_line":"    def test_nodepool_job_removal(self):"},{"line_number":6017,"context_line":"        \"Test that nodes are returned unused after job removal\""},{"line_number":6018,"context_line":""},{"line_number":6019,"context_line":"        self.fake_nodepool.pause()"},{"line_number":6020,"context_line":"        A \u003d self.fake_gerrit.addFakeChange(\u0027org/project1\u0027, \u0027master\u0027, \u0027A\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"9353471c_dee07a48","line":6017,"range":{"start_line":6017,"start_character":51,"end_line":6017,"end_character":62},"updated":"2021-04-15 18:05:28.000000000","message":"Is this actually a project removal test now?","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"03febf7753abef3ccbc1576af8b720e5ac4e46ae","unresolved":false,"context_lines":[{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    #XXX"},{"line_number":6016,"context_line":"    def test_nodepool_job_removal(self):"},{"line_number":6017,"context_line":"        \"Test that nodes are returned unused after job removal\""},{"line_number":6018,"context_line":""},{"line_number":6019,"context_line":"        self.fake_nodepool.pause()"},{"line_number":6020,"context_line":"        A \u003d self.fake_gerrit.addFakeChange(\u0027org/project1\u0027, \u0027master\u0027, \u0027A\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"24cff351_2cd740af","line":6017,"updated":"2021-04-15 19:05:51.000000000","message":"Yep.","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a3defee5f00a76ca8153e40ad87000361fa4c207","unresolved":false,"context_lines":[{"line_number":6014,"context_line":""},{"line_number":6015,"context_line":"    #XXX"},{"line_number":6016,"context_line":"    def test_nodepool_job_removal(self):"},{"line_number":6017,"context_line":"        \"Test that nodes are returned unused after job removal\""},{"line_number":6018,"context_line":""},{"line_number":6019,"context_line":"        self.fake_nodepool.pause()"},{"line_number":6020,"context_line":"        A \u003d self.fake_gerrit.addFakeChange(\u0027org/project1\u0027, \u0027master\u0027, \u0027A\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"78e07337_d4db2048","line":6017,"in_reply_to":"24cff351_2cd740af","updated":"2021-04-15 19:39:50.000000000","message":"We should probably update the docstring and the test name in that case.","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"}],"zuul/scheduler.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"28547012c5e9578c797e55795244d9676275e322","unresolved":true,"context_lines":[{"line_number":904,"context_line":"                        item.pipeline \u003d None"},{"line_number":905,"context_line":"                        item.queue \u003d None"},{"line_number":906,"context_line":"                        if not item.item_ahead or not last_head:"},{"line_number":907,"context_line":"                            last_head \u003d item"},{"line_number":908,"context_line":"                    # If the old item ahead made it in, re-enqueue"},{"line_number":909,"context_line":"                    # this one behind it."},{"line_number":910,"context_line":"                    if item.item_ahead in items_to_remove:"}],"source_content_type":"text/x-python","patch_set":3,"id":"99885794_a807303a","line":907,"updated":"2021-04-15 18:05:28.000000000","message":"Should this block continue to be evaluated if _reenqueueGetProject() returns None? Thinking that maybe the change ahead has gone away because it merged but that wouldn\u0027t necessarily change the liveness of the current item?","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"03febf7753abef3ccbc1576af8b720e5ac4e46ae","unresolved":false,"context_lines":[{"line_number":904,"context_line":"                        item.pipeline \u003d None"},{"line_number":905,"context_line":"                        item.queue \u003d None"},{"line_number":906,"context_line":"                        if not item.item_ahead or not last_head:"},{"line_number":907,"context_line":"                            last_head \u003d item"},{"line_number":908,"context_line":"                    # If the old item ahead made it in, re-enqueue"},{"line_number":909,"context_line":"                    # this one behind it."},{"line_number":910,"context_line":"                    if item.item_ahead in items_to_remove:"}],"source_content_type":"text/x-python","patch_set":3,"id":"cae2492f_d9c52678","line":907,"updated":"2021-04-15 19:05:51.000000000","message":"The cancelJob method (which we will call later if new_project is None) needs item.pipeline to be set.  So we must not set that to None in this case.  For simplicity, treat item.queue the same way.\n\nThat leaves last_head.  It is only used below, also inside of a new_project block.  So the only way for last_head to be used is for the current item to have a valid project.  By including this assignment to last_head within a valid project test, we also ensure that last_head can only point to an item with a valid project.  I\u0027m not certain that\u0027s absolutely necessary, but it seems reasonable.  If it\u0027s more clear, we could probably move these 2 lines to line 920.","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"a3defee5f00a76ca8153e40ad87000361fa4c207","unresolved":false,"context_lines":[{"line_number":904,"context_line":"                        item.pipeline \u003d None"},{"line_number":905,"context_line":"                        item.queue \u003d None"},{"line_number":906,"context_line":"                        if not item.item_ahead or not last_head:"},{"line_number":907,"context_line":"                            last_head \u003d item"},{"line_number":908,"context_line":"                    # If the old item ahead made it in, re-enqueue"},{"line_number":909,"context_line":"                    # this one behind it."},{"line_number":910,"context_line":"                    if item.item_ahead in items_to_remove:"}],"source_content_type":"text/x-python","patch_set":3,"id":"2662c823_d7a8bf3b","line":907,"in_reply_to":"cae2492f_d9c52678","updated":"2021-04-15 19:39:50.000000000","message":"Moving to line 920 would be nice to keep the locality of the last_head var clear.","commit_id":"637ac03f9cadfcd04bbe456cac92217e90a19b97"}]}
