)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"3709ae991420dc02b765ec0ebd675e3301db39f8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"826cfce9_106d3067","updated":"2022-03-21 13:37:05.000000000","message":"resolve comments.","commit_id":"f01d31b16a7bd1ea7593a79d846d0250105a83d0"}],"zuul/configloader.py":[{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"357a53ff19dd05f2f810314fcd29f80fddb29788","unresolved":true,"context_lines":[{"line_number":1858,"context_line":"                    self.merger.cancel(job)"},{"line_number":1859,"context_line":"                except Exception:"},{"line_number":1860,"context_line":"                    self.log.exception(\"Unable to cancel job %s\", job)"},{"line_number":1861,"context_line":"            raise"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"62bc9c3a_2ee7f76a","line":1861,"updated":"2022-02-04 17:26:15.000000000","message":"Does the inner exception for the cancel failure need to be raised too? I wonder if we need to raise at all at this scope if the cancellation handles the downstream eventing. Basically we cancel and downstream of us should notice that. Or we fail to cancel and raise then.","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0afdecd2b6ea76c57ea56e53e333858b6d7d8449","unresolved":false,"context_lines":[{"line_number":1858,"context_line":"                    self.merger.cancel(job)"},{"line_number":1859,"context_line":"                except Exception:"},{"line_number":1860,"context_line":"                    self.log.exception(\"Unable to cancel job %s\", job)"},{"line_number":1861,"context_line":"            raise"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"417cb41f_ee0f4a4c","line":1861,"updated":"2022-02-04 17:43:38.000000000","message":"I\u0027m not convinced we should raise an exception here, otherwise, Zuul may be unable to start, and being able to start with a broken configuration is an explicit design decision.  At the very least, we should have some tests for this.","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"555caac489193f045a88536f602e81d00347ee25","unresolved":true,"context_lines":[{"line_number":1858,"context_line":"                    self.merger.cancel(job)"},{"line_number":1859,"context_line":"                except Exception:"},{"line_number":1860,"context_line":"                    self.log.exception(\"Unable to cancel job %s\", job)"},{"line_number":1861,"context_line":"            raise"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"d82c52b9_c7c6c4fa","line":1861,"in_reply_to":"417cb41f_ee0f4a4c","updated":"2022-02-07 07:50:22.000000000","message":"Checking the scheduler startup process, it seems the this is the only place where the exception is swallowed.\nIf we want to explicitly ignore the exception here for the scheduler, we may want to treat the config validation and scheduler startup/cache refresh differently.\nOne solution would be:\npass a parameter \"ignore_cat_job_exception\" with default true to the loadTenant(). And set it to false when it is called in validateTenants() function.\nHow about that?","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"3709ae991420dc02b765ec0ebd675e3301db39f8","unresolved":false,"context_lines":[{"line_number":1858,"context_line":"                    self.merger.cancel(job)"},{"line_number":1859,"context_line":"                except Exception:"},{"line_number":1860,"context_line":"                    self.log.exception(\"Unable to cancel job %s\", job)"},{"line_number":1861,"context_line":"            raise"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"2487be38_29c24f21","line":1861,"in_reply_to":"62bc9c3a_2ee7f76a","updated":"2022-03-21 13:37:05.000000000","message":"Done","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"3709ae991420dc02b765ec0ebd675e3301db39f8","unresolved":false,"context_lines":[{"line_number":1858,"context_line":"                    self.merger.cancel(job)"},{"line_number":1859,"context_line":"                except Exception:"},{"line_number":1860,"context_line":"                    self.log.exception(\"Unable to cancel job %s\", job)"},{"line_number":1861,"context_line":"            raise"},{"line_number":1862,"context_line":""},{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"}],"source_content_type":"text/x-python","patch_set":1,"id":"d23f61ad_b7f2d8d8","line":1861,"in_reply_to":"d82c52b9_c7c6c4fa","updated":"2022-03-21 13:37:05.000000000","message":"Done","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"0afdecd2b6ea76c57ea56e53e333858b6d7d8449","unresolved":false,"context_lines":[{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"},{"line_number":1865,"context_line":"            self.log.debug(\"Waiting for cat job %s\" % (job,))"},{"line_number":1866,"context_line":"            res \u003d job.wait(self.merger.git_timeout)"},{"line_number":1867,"context_line":"            if not res:"},{"line_number":1868,"context_line":"                # We timed out"},{"line_number":1869,"context_line":"                raise Exception(\"Cat job %s timed out; consider setting \""}],"source_content_type":"text/x-python","patch_set":1,"id":"f7e009a8_f5c10c37","line":1866,"updated":"2022-02-04 17:43:38.000000000","message":"Agreed.","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"1e921e3fc119767c23785c6016af19eef67d42a2","unresolved":true,"context_lines":[{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"},{"line_number":1865,"context_line":"            self.log.debug(\"Waiting for cat job %s\" % (job,))"},{"line_number":1866,"context_line":"            res \u003d job.wait(self.merger.git_timeout)"},{"line_number":1867,"context_line":"            if not res:"},{"line_number":1868,"context_line":"                # We timed out"},{"line_number":1869,"context_line":"                raise Exception(\"Cat job %s timed out; consider setting \""}],"source_content_type":"text/x-python","patch_set":1,"id":"5cebf8b5_a58b244a","line":1866,"range":{"start_line":1866,"start_character":12,"end_line":1866,"end_character":15},"updated":"2022-02-04 04:09:39.000000000","message":"Explanation: checking the wait function, it will return false when it times out. We can not check timeout depends on the availability of \"updated\" attribute, it would also be set even it times out.","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":33134,"name":"Dong Zhang","email":"dong.zhang@bmw.de","username":"dongzhang"},"change_message_id":"3709ae991420dc02b765ec0ebd675e3301db39f8","unresolved":false,"context_lines":[{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"},{"line_number":1865,"context_line":"            self.log.debug(\"Waiting for cat job %s\" % (job,))"},{"line_number":1866,"context_line":"            res \u003d job.wait(self.merger.git_timeout)"},{"line_number":1867,"context_line":"            if not res:"},{"line_number":1868,"context_line":"                # We timed out"},{"line_number":1869,"context_line":"                raise Exception(\"Cat job %s timed out; consider setting \""}],"source_content_type":"text/x-python","patch_set":1,"id":"894ad4e6_ac50a918","line":1866,"range":{"start_line":1866,"start_character":12,"end_line":1866,"end_character":15},"in_reply_to":"04030be1_af8fa744","updated":"2022-03-21 13:37:05.000000000","message":"Done","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"},{"author":{"_account_id":4146,"name":"Clark Boylan","email":"cboylan@sapwetik.org","username":"cboylan"},"change_message_id":"357a53ff19dd05f2f810314fcd29f80fddb29788","unresolved":true,"context_lines":[{"line_number":1863,"context_line":"    def _processCatJobs(self, abide, tenant, loading_errors, jobs):"},{"line_number":1864,"context_line":"        for job in jobs:"},{"line_number":1865,"context_line":"            self.log.debug(\"Waiting for cat job %s\" % (job,))"},{"line_number":1866,"context_line":"            res \u003d job.wait(self.merger.git_timeout)"},{"line_number":1867,"context_line":"            if not res:"},{"line_number":1868,"context_line":"                # We timed out"},{"line_number":1869,"context_line":"                raise Exception(\"Cat job %s timed out; consider setting \""}],"source_content_type":"text/x-python","patch_set":1,"id":"04030be1_af8fa744","line":1866,"range":{"start_line":1866,"start_character":12,"end_line":1866,"end_character":15},"in_reply_to":"5cebf8b5_a58b244a","updated":"2022-02-04 17:26:15.000000000","message":"https://opendev.org/zuul/zuul/src/branch/master/zuul/zk/event_queues.py#L456 shows the updated attribute is always there. This change makes sense to me.","commit_id":"1f80ef9c19df92b00b848980258f0efdbeb3d54e"}]}
