)]}'
{"zuul/executor/server.py":[{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"4563e80284591b3e03d6fda8d56483b2229a1e09","unresolved":false,"context_lines":[{"line_number":2498,"context_line":"        return super(ExecutorExecuteWorker, self).handleNoop(packet)"},{"line_number":2499,"context_line":""},{"line_number":2500,"context_line":"    def handleDisconnect(self, job):"},{"line_number":2501,"context_line":"        self.zuul_executor_server.stopJobByUnique()"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":""},{"line_number":2504,"context_line":"class ExecutorServer(BaseMergeServer):"}],"source_content_type":"text/x-python","patch_set":1,"id":"df33271e_ee07e11b","line":2501,"updated":"2020-03-24 17:40:40.000000000","message":"This misses job.unique","commit_id":"adf5682e5c6d809adc0059bb60914047c029f2f0"},{"author":{"_account_id":1,"name":"James E. Blair","email":"jim@acmegating.com","username":"corvus"},"change_message_id":"2e30f93402d060eea0bcb4408c71f5dab9b4a282","unresolved":false,"context_lines":[{"line_number":2499,"context_line":""},{"line_number":2500,"context_line":"    def _lostConnection(self, conn):"},{"line_number":2501,"context_line":"        # Note(tobiash): We cannot handleDisconnect here because this is"},{"line_number":2502,"context_line":"        # only called on client side per job. Instead hook into this method."},{"line_number":2503,"context_line":"        super()._lostConnection(conn)"},{"line_number":2504,"context_line":"        for name, worker in self.zuul_executor_server.job_workers.items():"},{"line_number":2505,"context_line":"            self.log.warning(\u0027Stopping job %s due to gearman disconnect\u0027, name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_597c751e","line":2502,"updated":"2020-03-30 16:40:17.000000000","message":"I think this is the hierarchy:\nTextWorker -\u003e Worker -\u003e BaseClient -\u003e BaseClientServer\n\nAnd in BaseClientServer, _lostConnections calls self.handleDisconnect.  We think there\u0027s a minor bug there in that handleDisconnect is first defined on Client, which means it\u0027s not in the inheritance path in BaseClientServer.  But even so, we should be able to implement handleDisconnect here and Python should call it.","commit_id":"550e0c5050328a9ba893e6f157755476b89984ec"}]}
