)]}'
{"doc/source/config/job.rst":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"72ab13ae23fdc9aec3a8c549ab2343863d5ed0e4","unresolved":true,"context_lines":[{"line_number":448,"context_line":"      this value instead of the branch of the item being tested when"},{"line_number":449,"context_line":"      collecting jobs to run."},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"   .. attr:: timeout"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"      The time in seconds that the job should be allowed to run before"},{"line_number":454,"context_line":"      it is automatically aborted and failure is reported.  If no"}],"source_content_type":"text/x-rst","patch_set":5,"id":"e9b22504_68849e81","line":451,"updated":"2022-11-04 21:40:06.000000000","message":"Should the docs be updated to describe if time waiting for a sempahore counts against these timeouts?","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fe1ceafb7038ef50809360c344efbaa76d50811c","unresolved":false,"context_lines":[{"line_number":448,"context_line":"      this value instead of the branch of the item being tested when"},{"line_number":449,"context_line":"      collecting jobs to run."},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"   .. attr:: timeout"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"      The time in seconds that the job should be allowed to run before"},{"line_number":454,"context_line":"      it is automatically aborted and failure is reported.  If no"}],"source_content_type":"text/x-rst","patch_set":5,"id":"b5d85a65_5cc076f7","line":451,"in_reply_to":"0595a796_70f88a7f","updated":"2022-11-07 16:49:55.000000000","message":"Done","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0ff267bd19e05fd65bbaa2cf404505045329ad5a","unresolved":true,"context_lines":[{"line_number":448,"context_line":"      this value instead of the branch of the item being tested when"},{"line_number":449,"context_line":"      collecting jobs to run."},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"   .. attr:: timeout"},{"line_number":452,"context_line":""},{"line_number":453,"context_line":"      The time in seconds that the job should be allowed to run before"},{"line_number":454,"context_line":"      it is automatically aborted and failure is reported.  If no"}],"source_content_type":"text/x-rst","patch_set":5,"id":"0595a796_70f88a7f","line":451,"in_reply_to":"e9b22504_68849e81","updated":"2022-11-04 23:43:18.000000000","message":"I think that\u0027s the expected behavior and we probably don\u0027t need to explicitly document it.  But if we did, we should probably put it under the playbook semaphore docs.","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"}],"tests/fixtures/config/playbook-semaphore/git/common-config/zuul.yaml":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"f546de84948907d57af987c70ded868d15d37dcd","unresolved":true,"context_lines":[{"line_number":21,"context_line":"          label: test_label"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- semaphore:"},{"line_number":24,"context_line":"    name: test-semaphore"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: test-job"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"31b66f8e_4ad54d59","line":24,"updated":"2022-11-04 21:40:38.000000000","message":"Do we also need test cases to cover the implicit semaphore?","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0ff267bd19e05fd65bbaa2cf404505045329ad5a","unresolved":true,"context_lines":[{"line_number":21,"context_line":"          label: test_label"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- semaphore:"},{"line_number":24,"context_line":"    name: test-semaphore"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: test-job"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"e85db18c_2410b30d","line":24,"in_reply_to":"31b66f8e_4ad54d59","updated":"2022-11-04 23:43:18.000000000","message":"I didn\u0027t think it necessary because it\u0027s covered elsewhere and I think the relevant code paths are the same.","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fe1ceafb7038ef50809360c344efbaa76d50811c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"          label: test_label"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"- semaphore:"},{"line_number":24,"context_line":"    name: test-semaphore"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"- job:"},{"line_number":27,"context_line":"    name: test-job"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"9388ae36_cbdaabd9","line":24,"in_reply_to":"e85db18c_2410b30d","updated":"2022-11-07 16:49:55.000000000","message":"Ack","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"}],"tests/unit/test_v3.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"72ab13ae23fdc9aec3a8c549ab2343863d5ed0e4","unresolved":true,"context_lines":[{"line_number":4418,"context_line":"            \"\"\""},{"line_number":4419,"context_line":"            - job:"},{"line_number":4420,"context_line":"                name: test-job2"},{"line_number":4421,"context_line":"                parent: test-job"},{"line_number":4422,"context_line":"                semaphore: test-semaphore"},{"line_number":4423,"context_line":"                run:"},{"line_number":4424,"context_line":"                  - name: playbooks/run.yaml"}],"source_content_type":"text/x-python","patch_set":5,"id":"f46250de_1120f6c2","line":4421,"updated":"2022-11-04 21:40:06.000000000","message":"Should this drop the parent job to be sure we aren\u0027t hitting the case that the above test checks for?","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"6c5acebfd18fac9c2f0d20e19e60938d447367c7","unresolved":false,"context_lines":[{"line_number":4418,"context_line":"            \"\"\""},{"line_number":4419,"context_line":"            - job:"},{"line_number":4420,"context_line":"                name: test-job2"},{"line_number":4421,"context_line":"                parent: test-job"},{"line_number":4422,"context_line":"                semaphore: test-semaphore"},{"line_number":4423,"context_line":"                run:"},{"line_number":4424,"context_line":"                  - name: playbooks/run.yaml"}],"source_content_type":"text/x-python","patch_set":5,"id":"e9d639c4_974880dd","line":4421,"in_reply_to":"0d4e42c9_f51cbb71","updated":"2022-11-07 16:41:03.000000000","message":"Nope you\u0027re right on this, fixing.","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0ff267bd19e05fd65bbaa2cf404505045329ad5a","unresolved":true,"context_lines":[{"line_number":4418,"context_line":"            \"\"\""},{"line_number":4419,"context_line":"            - job:"},{"line_number":4420,"context_line":"                name: test-job2"},{"line_number":4421,"context_line":"                parent: test-job"},{"line_number":4422,"context_line":"                semaphore: test-semaphore"},{"line_number":4423,"context_line":"                run:"},{"line_number":4424,"context_line":"                  - name: playbooks/run.yaml"}],"source_content_type":"text/x-python","patch_set":5,"id":"0d4e42c9_f51cbb71","line":4421,"in_reply_to":"f46250de_1120f6c2","updated":"2022-11-04 23:43:18.000000000","message":"The assertions in this test ensure we don\u0027t hit the case the above test checks (specifically, we check that we run 0 jobs).","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"}],"zuul/executor/server.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"72ab13ae23fdc9aec3a8c549ab2343863d5ed0e4","unresolved":true,"context_lines":[{"line_number":3130,"context_line":"                self.build_request.tenant_name]["},{"line_number":3131,"context_line":"                    self.build_request.pipeline_name]"},{"line_number":3132,"context_line":"            self.executor_server.semaphore_handler.releaseFromInfo("},{"line_number":3133,"context_line":"                self.log, event_queue, playbook.semaphores, semaphore_handle)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        if self.executor_server.statsd:"},{"line_number":3136,"context_line":"            base_key \u003d \"zuul.executor.{hostname}.phase.{phase}\""}],"source_content_type":"text/x-python","patch_set":5,"id":"dbc74eee_84f3332a","line":3133,"updated":"2022-11-04 21:40:06.000000000","message":"Should this happen in a finally block to ensure we release the semaphore?","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fe1ceafb7038ef50809360c344efbaa76d50811c","unresolved":false,"context_lines":[{"line_number":3130,"context_line":"                self.build_request.tenant_name]["},{"line_number":3131,"context_line":"                    self.build_request.pipeline_name]"},{"line_number":3132,"context_line":"            self.executor_server.semaphore_handler.releaseFromInfo("},{"line_number":3133,"context_line":"                self.log, event_queue, playbook.semaphores, semaphore_handle)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        if self.executor_server.statsd:"},{"line_number":3136,"context_line":"            base_key \u003d \"zuul.executor.{hostname}.phase.{phase}\""}],"source_content_type":"text/x-python","patch_set":5,"id":"3cffb79e_e5a9767b","line":3133,"in_reply_to":"da0d6bb3_057c99fc","updated":"2022-11-07 16:49:55.000000000","message":"Ack","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0ff267bd19e05fd65bbaa2cf404505045329ad5a","unresolved":true,"context_lines":[{"line_number":3130,"context_line":"                self.build_request.tenant_name]["},{"line_number":3131,"context_line":"                    self.build_request.pipeline_name]"},{"line_number":3132,"context_line":"            self.executor_server.semaphore_handler.releaseFromInfo("},{"line_number":3133,"context_line":"                self.log, event_queue, playbook.semaphores, semaphore_handle)"},{"line_number":3134,"context_line":""},{"line_number":3135,"context_line":"        if self.executor_server.statsd:"},{"line_number":3136,"context_line":"            base_key \u003d \"zuul.executor.{hostname}.phase.{phase}\""}],"source_content_type":"text/x-python","patch_set":5,"id":"da0d6bb3_057c99fc","line":3133,"in_reply_to":"dbc74eee_84f3332a","updated":"2022-11-04 23:43:18.000000000","message":"We don\u0027t expect to have exceptions from runAnsible, but if something does go wrong, the scheduler will cleanup the leaked semaphore on its own.  I think we can rely on that.","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"}],"zuul/zk/semaphore.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"72ab13ae23fdc9aec3a8c549ab2343863d5ed0e4","unresolved":true,"context_lines":[{"line_number":79,"context_line":"            \u0027name\u0027: job_semaphore.name,"},{"line_number":80,"context_line":"            \u0027path\u0027: self._makePath(semaphore),"},{"line_number":81,"context_line":"            \u0027resources_first\u0027: job_semaphore.resources_first,"},{"line_number":82,"context_line":"            \u0027max\u0027: 1 if semaphore is None else semaphore.max,"},{"line_number":83,"context_line":"        }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def getSemaphoreHandle(self, item, job):"}],"source_content_type":"text/x-python","patch_set":5,"id":"90869794_47967dc1","line":82,"updated":"2022-11-04 21:40:06.000000000","message":"Have we always allowed an implicit semaphore? I thought we had to define them for some reason. If this is new do we need a doc update?","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"fe1ceafb7038ef50809360c344efbaa76d50811c","unresolved":false,"context_lines":[{"line_number":79,"context_line":"            \u0027name\u0027: job_semaphore.name,"},{"line_number":80,"context_line":"            \u0027path\u0027: self._makePath(semaphore),"},{"line_number":81,"context_line":"            \u0027resources_first\u0027: job_semaphore.resources_first,"},{"line_number":82,"context_line":"            \u0027max\u0027: 1 if semaphore is None else semaphore.max,"},{"line_number":83,"context_line":"        }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def getSemaphoreHandle(self, item, job):"}],"source_content_type":"text/x-python","patch_set":5,"id":"29224d4c_d2b2a1bd","line":82,"in_reply_to":"2de0355f_97f025ef","updated":"2022-11-07 16:49:55.000000000","message":"Ack","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0ff267bd19e05fd65bbaa2cf404505045329ad5a","unresolved":true,"context_lines":[{"line_number":79,"context_line":"            \u0027name\u0027: job_semaphore.name,"},{"line_number":80,"context_line":"            \u0027path\u0027: self._makePath(semaphore),"},{"line_number":81,"context_line":"            \u0027resources_first\u0027: job_semaphore.resources_first,"},{"line_number":82,"context_line":"            \u0027max\u0027: 1 if semaphore is None else semaphore.max,"},{"line_number":83,"context_line":"        }"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    def getSemaphoreHandle(self, item, job):"}],"source_content_type":"text/x-python","patch_set":5,"id":"2de0355f_97f025ef","line":82,"in_reply_to":"90869794_47967dc1","updated":"2022-11-04 23:43:18.000000000","message":"We have always allowed an implicit semaphore.  I think we should remove it, but not today.  Since this isn\u0027t new, I don\u0027t think we need a doc update.","commit_id":"d5405c6a9a533210a719a1cb09d3eb09cc354a8f"}]}
