)]}'
{"zuul/driver/github/githubconnection.py":[{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"6391a5b7ba8708423347228de4888565d8b4fffd","unresolved":false,"context_lines":[{"line_number":310,"context_line":"            time.sleep(0.1)  # sleep if nothing to process"},{"line_number":311,"context_line":""},{"line_number":312,"context_line":"    def __eventWatcher(self, children: List[str]):"},{"line_number":313,"context_line":"        # if len(children) \u003e 0:"},{"line_number":314,"context_line":"        #     self.log.debug(\"Changed events: %s\" % children)"},{"line_number":315,"context_line":"        #     self.__processEvent()"},{"line_number":316,"context_line":"        pass"},{"line_number":317,"context_line":""},{"line_number":318,"context_line":"    def __processEvent(self) -\u003e bool:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4c43b2_2412280a","line":315,"range":{"start_line":313,"start_character":8,"end_line":315,"end_character":35},"updated":"2020-04-20 14:00:45.000000000","message":"We could use listeners instead of a thread, but not sure how they are reliable. Polling (as of now) same as with gearman but probably more expensive.","commit_id":"c687cfc93edea8095455d664b659eb3f554f2c1b"},{"author":{"_account_id":16068,"name":"Tobias Henkel","email":"tobias.henkel@bmw.de","username":"tobias.henkel"},"change_message_id":"4af7af32fec08205e751971456e8f89cfd91caf0","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            if len(children) \u003e 0:"},{"line_number":342,"context_line":"                self.log.debug(\"Changed events: %s\" % children)"},{"line_number":343,"context_line":"                try:"},{"line_number":344,"context_line":"                    self._processEvent()"},{"line_number":345,"context_line":"                except kazoo.exceptions.LockTimeout:"},{"line_number":346,"context_line":"                    self.log.warning(\"Could not acquire lock\")"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9f560f44_a17a78ec","line":344,"updated":"2020-10-12 18:45:01.000000000","message":"We should process the events only in run above. Instead we can set a wake event here and change time.sleep(1) to a wait on the event with timeout 1.","commit_id":"d120b037a74fe2c1f8b07b834c5d40cafe303461"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"9d0b0390a19a8c404a755077a348dec1636bd237","unresolved":false,"context_lines":[{"line_number":341,"context_line":"            if len(children) \u003e 0:"},{"line_number":342,"context_line":"                self.log.debug(\"Changed events: %s\" % children)"},{"line_number":343,"context_line":"                try:"},{"line_number":344,"context_line":"                    self._processEvent()"},{"line_number":345,"context_line":"                except kazoo.exceptions.LockTimeout:"},{"line_number":346,"context_line":"                    self.log.warning(\"Could not acquire lock\")"},{"line_number":347,"context_line":""}],"source_content_type":"text/x-python","patch_set":48,"id":"9f560f44_bb829d50","line":344,"in_reply_to":"9f560f44_a17a78ec","updated":"2020-10-13 05:38:25.000000000","message":"Done","commit_id":"d120b037a74fe2c1f8b07b834c5d40cafe303461"}],"zuul/driver/gitlab/gitlabconnection.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"39da93fe137f351df6f8beeb1751cf8a004d3da3","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    log \u003d logging.getLogger(\"zuul.GitlabZookeeperWorker\")"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, connection):"},{"line_number":42,"context_line":"        threading.Thread.__init__(self)"},{"line_number":43,"context_line":"        self.__stopped \u003d False"},{"line_number":44,"context_line":"        self.__connection \u003d connection  # GitlabConnection"},{"line_number":45,"context_line":"        self.__zk \u003d connection.sched.zk  # ZooKeeper"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_b94889b3","line":42,"updated":"2020-10-01 09:36:25.000000000","message":"Just wondering if there is any reason you don\u0027t use `super().__init__()`?","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"efc11ec8f682d6f218f69bc106d4daa35d16801b","unresolved":false,"context_lines":[{"line_number":39,"context_line":"    log \u003d logging.getLogger(\"zuul.GitlabZookeeperWorker\")"},{"line_number":40,"context_line":""},{"line_number":41,"context_line":"    def __init__(self, connection):"},{"line_number":42,"context_line":"        threading.Thread.__init__(self)"},{"line_number":43,"context_line":"        self.__stopped \u003d False"},{"line_number":44,"context_line":"        self.__connection \u003d connection  # GitlabConnection"},{"line_number":45,"context_line":"        self.__zk \u003d connection.sched.zk  # ZooKeeper"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_14b85ce6","line":42,"in_reply_to":"9f560f44_b94889b3","updated":"2020-10-01 11:22:24.000000000","message":"Done","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"}],"zuul/driver/pagure/pagureconnection.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d1bc01f696287b528b19838ac7b168f55f57665a","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import threading"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import requests"},{"line_number":24,"context_line":"import cherrypy"},{"line_number":25,"context_line":"import voluptuous as v"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_64cfa4b0","line":22,"updated":"2020-04-03 13:26:29.000000000","message":"pep8: F401 \u0027json\u0027 imported but unused","commit_id":"bdcd0104f3220597b41a99ff0e3e4b029a2c7c00"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d1bc01f696287b528b19838ac7b168f55f57665a","unresolved":false,"context_lines":[{"line_number":866,"context_line":"            self.log.info("},{"line_number":867,"context_line":"                \"Payload origin IP address whitelisted. Skip verify\")"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"        data \u003d {\u0027payload\u0027: json_payload}"},{"line_number":870,"context_line":"        self.zuul_web.zk.pushConnectionEvent(self.connection, data)"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":2,"id":"df33271e_c4c3108a","line":869,"updated":"2020-04-03 13:26:29.000000000","message":"pep8: F821 undefined name \u0027json_payload\u0027","commit_id":"bdcd0104f3220597b41a99ff0e3e4b029a2c7c00"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b18430599acc79c8c1c37b825cadaf0c08f5bd49","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import threading"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import json"},{"line_number":23,"context_line":"import requests"},{"line_number":24,"context_line":"import cherrypy"},{"line_number":25,"context_line":"import voluptuous as v"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_57877662","line":22,"updated":"2020-04-15 13:08:20.000000000","message":"linters: F401 \u0027json\u0027 imported but unused","commit_id":"b44d23eae50b56e0f897db5b18b697a026a22b4f"},{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"b18430599acc79c8c1c37b825cadaf0c08f5bd49","unresolved":false,"context_lines":[{"line_number":866,"context_line":"            self.log.info("},{"line_number":867,"context_line":"                \"Payload origin IP address whitelisted. Skip verify\")"},{"line_number":868,"context_line":""},{"line_number":869,"context_line":"        data \u003d {\u0027payload\u0027: json_payload}"},{"line_number":870,"context_line":"        self.zuul_web.zk.pushConnectionEvent(self.connection, data)"},{"line_number":871,"context_line":""},{"line_number":872,"context_line":"        return data"}],"source_content_type":"text/x-python","patch_set":3,"id":"3f4c43b2_b77eba68","line":869,"updated":"2020-04-15 13:08:20.000000000","message":"linters: F821 undefined name \u0027json_payload\u0027","commit_id":"b44d23eae50b56e0f897db5b18b697a026a22b4f"}],"zuul/lib/named_queue.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"39da93fe137f351df6f8beeb1751cf8a004d3da3","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class NamedQueue(queue.Queue):"},{"line_number":18,"context_line":"    \"\"\"For identification of queues in logs\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def __init__(self, name):"},{"line_number":21,"context_line":"        super().__init__()"},{"line_number":22,"context_line":"        self.name \u003d name"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_99c78547","line":20,"updated":"2020-10-01 09:36:25.000000000","message":"nit: Would it make sense to allow passing `maxsize` to the parent `__init__()`? But I guess we can also add that later on if there is ever a need for that.","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"efc11ec8f682d6f218f69bc106d4daa35d16801b","unresolved":false,"context_lines":[{"line_number":17,"context_line":"class NamedQueue(queue.Queue):"},{"line_number":18,"context_line":"    \"\"\"For identification of queues in logs\"\"\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"    def __init__(self, name):"},{"line_number":21,"context_line":"        super().__init__()"},{"line_number":22,"context_line":"        self.name \u003d name"},{"line_number":23,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_149dfc6b","line":20,"in_reply_to":"9f560f44_99c78547","updated":"2020-10-01 11:22:24.000000000","message":"Done","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"}],"zuul/scheduler.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"d3e2143b6ac6a099917ac267914e7d3544525544","unresolved":false,"context_lines":[{"line_number":44,"context_line":"from zuul.lib.statsd import get_statsd"},{"line_number":45,"context_line":"import zuul.lib.queue"},{"line_number":46,"context_line":"import zuul.lib.repl"},{"line_number":47,"context_line":"from zuul.model import Build, HoldRequest, Tenant"},{"line_number":48,"context_line":""},{"line_number":49,"context_line":"COMMANDS \u003d [\u0027full-reconfigure\u0027, \u0027smart-reconfigure\u0027,"},{"line_number":50,"context_line":"            \u0027pause\u0027, \u0027resume\u0027, \u0027stop\u0027,"}],"source_content_type":"text/x-python","patch_set":22,"id":"9f560f44_74012f06","line":47,"updated":"2020-08-07 14:52:58.000000000","message":"linters: F811 redefinition of unused \u0027TriggerEvent\u0027 from line 32","commit_id":"53485df6284b5542f3faf51d1b0ca6fd4c5b315a"}],"zuul/zk.py":[{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"6391a5b7ba8708423347228de4888565d8b4fffd","unresolved":false,"context_lines":[{"line_number":794,"context_line":"                self.connection_name \u003d conn_name"},{"line_number":795,"context_line":"                self.__lock \u003d self.__zk._getConnectionEventWriteLock(conn_name)"},{"line_number":796,"context_line":"                self.__lock.acquire()"},{"line_number":797,"context_line":"                # self.__zk.log.debug(\"Lock aquired\")"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"            def __enter__(self):"},{"line_number":800,"context_line":"                event \u003d None"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4c43b2_c400a4ae","line":797,"range":{"start_line":797,"start_character":16,"end_line":797,"end_character":53},"updated":"2020-04-20 14:00:45.000000000","message":"nit: will remove","commit_id":"c687cfc93edea8095455d664b659eb3f554f2c1b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"6391a5b7ba8708423347228de4888565d8b4fffd","unresolved":false,"context_lines":[{"line_number":809,"context_line":"                    data \u003d self.__zk.client.get(path)[0]"},{"line_number":810,"context_line":"                    event \u003d json.loads(data.decode(encoding\u003d\u0027utf-8\u0027))"},{"line_number":811,"context_line":"                    self.__zk.client.delete(path)"},{"line_number":812,"context_line":"                    self.__zk.log.debug(\"Event poped: %s\" % event)"},{"line_number":813,"context_line":"                return event"},{"line_number":814,"context_line":""},{"line_number":815,"context_line":"            def __exit__(self, exc_type, exc_val, exc_tb):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4c43b2_242b4830","line":812,"range":{"start_line":812,"start_character":20,"end_line":812,"end_character":66},"updated":"2020-04-20 14:00:45.000000000","message":"nit: will remove - too many logs","commit_id":"c687cfc93edea8095455d664b659eb3f554f2c1b"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"6391a5b7ba8708423347228de4888565d8b4fffd","unresolved":false,"context_lines":[{"line_number":814,"context_line":""},{"line_number":815,"context_line":"            def __exit__(self, exc_type, exc_val, exc_tb):"},{"line_number":816,"context_line":"                self.__lock.release()"},{"line_number":817,"context_line":"                # self.__zk.log.debug(\"Lock released\")"},{"line_number":818,"context_line":""},{"line_number":819,"context_line":"        return EventWrapper(self, connection_name)"},{"line_number":820,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3f4c43b2_0430cc9e","line":817,"range":{"start_line":817,"start_character":16,"end_line":817,"end_character":54},"updated":"2020-04-20 14:00:45.000000000","message":"nit: will remove","commit_id":"c687cfc93edea8095455d664b659eb3f554f2c1b"}],"zuul/zk/__init__.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"64f93da3aa9203bb238e18bae1e60e1a933c7e56","unresolved":true,"context_lines":[{"line_number":166,"context_line":"        :param timeout: Timeout to obtain zookeeper lock (default 10 seconds)"},{"line_number":167,"context_line":"        \"\"\""},{"line_number":168,"context_line":""},{"line_number":169,"context_line":"        if not keep_locked or not self.locking_lock.locked():"},{"line_number":170,"context_line":"            self.locking_lock.acquire()"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"        try:  # Make sure request does not hang"},{"line_number":173,"context_line":"            return lock.acquire(blocking\u003dblocking, timeout\u003dtimeout)"}],"source_content_type":"text/x-python","patch_set":61,"id":"7be20779_75bc291f","line":170,"range":{"start_line":169,"start_character":0,"end_line":170,"end_character":39},"updated":"2020-12-03 12:18:36.000000000","message":"It seems that this has a race condition that can lead to hanging tests:\n\n\t(gdb) py-list\n\t 179            :param blocking: Block until lock is obtained or return immediately.\n\t 180            :param timeout: Timeout to obtain zookeeper lock (default 10 seconds)\n\t 181            \"\"\"\n\t 182\n\t 183            if not keep_locked or not self.locking_lock.locked():\n\t\u003e184                self.locking_lock.acquire()\n\t 185\n\t 186            try:  # Make sure request does not hang\n\t 187                return lock.acquire(blocking\u003dblocking, timeout\u003dtimeout)\n\t 188            except LockTimeout:\n\t 189                self.log.debug(\"Could not acquire lock %s\" % lock.path)\n\n\t(gdb) py-bt\n\tTraceback (most recent call first):\n\t  File \"/tmp/zuul/zuul/zk/__init__.py\", line 184, in acquireLock\n\t\tself.locking_lock.acquire()\n\t  File \"/tmp/zuul/zuul/zk/connection_event.py\", line 71, in hasEvents\n\t\tself.client.acquireLock(lock, keep_locked\u003dkeep_locked)\n\t  File \"/tmp/zuul/zuul/driver/github/githubconnection.py\", line 340, in _run\n\t\tself._connection.connection_name):\n\t  File \"/tmp/zuul/zuul/zk/__init__.py\", line 253, in election\n\t\tinterrupt \u003d func()\n\t  File \"/tmp/zuul/zuul/driver/github/githubconnection.py\", line 335, in run\n\t\trepeat\u003dlambda: not self._stopped)\n\t  File \"/usr/lib/python3.7/threading.py\", line 926, in _bootstrap_inner\n\t\tself.run()\n\t  File \"/usr/lib/python3.7/threading.py\", line 890, in _bootstrap\n\t\tself._bootstrap_inner()\n\nJust leaving this as a quick note so we can fix it later.","commit_id":"1197b50f496bbfaa68ffa0cf219b00349b81b7d8"}],"zuul/zk/connection_event.py":[{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"39da93fe137f351df6f8beeb1751cf8a004d3da3","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __read_lock(self, connection_name: str) -\u003e ReadLock:"},{"line_number":40,"context_line":"        if not self.kazoo_client:"},{"line_number":41,"context_line":"            raise Exception(\"No zookeeper client!\")"},{"line_number":42,"context_line":"        lock_node \u003d \"%s/%s\" % (self.ROOT, connection_name)"},{"line_number":43,"context_line":"        return self.kazoo_client.ReadLock(lock_node)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_d9ec5df6","line":41,"updated":"2020-10-01 09:36:25.000000000","message":"You could raise the exception in the `kazoo_client` property instead. This way you can get rid of all the if/raises in this class.","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"efc11ec8f682d6f218f69bc106d4daa35d16801b","unresolved":false,"context_lines":[{"line_number":38,"context_line":""},{"line_number":39,"context_line":"    def __read_lock(self, connection_name: str) -\u003e ReadLock:"},{"line_number":40,"context_line":"        if not self.kazoo_client:"},{"line_number":41,"context_line":"            raise Exception(\"No zookeeper client!\")"},{"line_number":42,"context_line":"        lock_node \u003d \"%s/%s\" % (self.ROOT, connection_name)"},{"line_number":43,"context_line":"        return self.kazoo_client.ReadLock(lock_node)"},{"line_number":44,"context_line":""}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_b497f045","line":41,"in_reply_to":"9f560f44_d9ec5df6","updated":"2020-10-01 11:22:24.000000000","message":"Done","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"39da93fe137f351df6f8beeb1751cf8a004d3da3","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        if not self.kazoo_client:"},{"line_number":98,"context_line":"            raise Exception(\"No zookeeper client!\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        class EventWrapper:"},{"line_number":101,"context_line":"            def __init__(self, connection_event: \u0027ZooKeeperConnectionEvent\u0027,"},{"line_number":102,"context_line":"                         conn_name: str):"},{"line_number":103,"context_line":"                self.__connection_event \u003d connection_event"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_79f1d1de","line":100,"updated":"2020-10-01 09:36:25.000000000","message":"Is there a reason for defining this class in the method? I can\u0027t see any use of local variables that would require this.","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"efc11ec8f682d6f218f69bc106d4daa35d16801b","unresolved":false,"context_lines":[{"line_number":97,"context_line":"        if not self.kazoo_client:"},{"line_number":98,"context_line":"            raise Exception(\"No zookeeper client!\")"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        class EventWrapper:"},{"line_number":101,"context_line":"            def __init__(self, connection_event: \u0027ZooKeeperConnectionEvent\u0027,"},{"line_number":102,"context_line":"                         conn_name: str):"},{"line_number":103,"context_line":"                self.__connection_event \u003d connection_event"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_f4b848c8","line":100,"in_reply_to":"9f560f44_79f1d1de","updated":"2020-10-01 11:22:24.000000000","message":"The reason is to hide it since it only reason is to provide context manager to use it in \"with\" blocks. Would @contextmanager decoration work for you?","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":27582,"name":"Simon Westphahl","email":"simon.westphahl@bmw.de","username":"simon.westphahl"},"change_message_id":"39da93fe137f351df6f8beeb1751cf8a004d3da3","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            self.kazoo_client.create(path, json.dumps(event).encode(\u0027utf-8\u0027),"},{"line_number":138,"context_line":"                                     sequence\u003dTrue, makepath\u003dTrue)"},{"line_number":139,"context_line":"        finally:"},{"line_number":140,"context_line":"            lock.release()"},{"line_number":141,"context_line":"            self.log.debug(\u0027push: released\u0027)"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_198b7517","line":140,"updated":"2020-10-01 09:36:25.000000000","message":"nit: Maybe a a context manager would make sense for locking/unlocking:\n\n  with self.client.acquire_lock(lock):\n      ...","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"efc11ec8f682d6f218f69bc106d4daa35d16801b","unresolved":false,"context_lines":[{"line_number":137,"context_line":"            self.kazoo_client.create(path, json.dumps(event).encode(\u0027utf-8\u0027),"},{"line_number":138,"context_line":"                                     sequence\u003dTrue, makepath\u003dTrue)"},{"line_number":139,"context_line":"        finally:"},{"line_number":140,"context_line":"            lock.release()"},{"line_number":141,"context_line":"            self.log.debug(\u0027push: released\u0027)"}],"source_content_type":"text/x-python","patch_set":44,"id":"9f560f44_142dfcad","line":140,"in_reply_to":"9f560f44_198b7517","updated":"2020-10-01 11:22:24.000000000","message":"Done","commit_id":"2fcbb8a5595b4ba079bd46199f3298c0e1f30122"},{"author":{"_account_id":27952,"name":"Felix Edel","email":"felix.edel@bmw.de","username":"felix.schmidt"},"change_message_id":"1728748995f05b883b428ef307e8d30d7f943fbb","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        lock \u003d self._readLock(connection_name)"},{"line_number":70,"context_line":"        try:"},{"line_number":71,"context_line":"            self.client.acquireLock(lock, keep_locked\u003dkeep_locked)"},{"line_number":72,"context_line":"            self.log.debug(\u0027hasEvents[%s]: Locked\u0027, connection_name)"},{"line_number":73,"context_line":"            path \u003d \"%s/%s/nodes\" % (self.CONNECTION_ROOT, connection_name)"},{"line_number":74,"context_line":"            count \u003d len(self.kazoo_client.get_children(path))"},{"line_number":75,"context_line":"            self.log.debug(\u0027hasEvents[%s]: %s\u0027, connection_name, count)"}],"source_content_type":"text/x-python","patch_set":56,"id":"3f65232a_9c064286","line":72,"updated":"2020-10-27 12:53:41.000000000","message":"I just noticed during development that these \"hasEvents[]\" log messages are extremely spoiling the log. Maybe that\u0027s different in a productively running Zuul instance, but in my local dev instance those are now nearly the only log messages which are visible. Maybe we could at least combine those messages? Currently, I see always these three:\n\nscheduler_1     | 2020-10-27 12:52:21,854 DEBUG zuul.zk.zuul.ZooKeeperConnectionEvent: hasEvents[github]: Locked\nscheduler_1     | 2020-10-27 12:52:21,857 DEBUG zuul.zk.zuul.ZooKeeperConnectionEvent: hasEvents[github]: 0\nscheduler_1     | 2020-10-27 12:52:21,862 DEBUG zuul.zk.zuul.ZooKeeperConnectionEvent: hasEvents[github]: released","commit_id":"a0e8715a61fb641cfb31b633b6d5bf413dfb8d32"},{"author":{"_account_id":30637,"name":"Jan Kubovy","email":"jan.kubovy@bmw.de","username":"kubovy"},"change_message_id":"f21a644702f4421f62f5136f24b866a2ca2e1fea","unresolved":false,"context_lines":[{"line_number":69,"context_line":"        lock \u003d self._readLock(connection_name)"},{"line_number":70,"context_line":"        try:"},{"line_number":71,"context_line":"            self.client.acquireLock(lock, keep_locked\u003dkeep_locked)"},{"line_number":72,"context_line":"            self.log.debug(\u0027hasEvents[%s]: Locked\u0027, connection_name)"},{"line_number":73,"context_line":"            path \u003d \"%s/%s/nodes\" % (self.CONNECTION_ROOT, connection_name)"},{"line_number":74,"context_line":"            count \u003d len(self.kazoo_client.get_children(path))"},{"line_number":75,"context_line":"            self.log.debug(\u0027hasEvents[%s]: %s\u0027, connection_name, count)"}],"source_content_type":"text/x-python","patch_set":56,"id":"1f621f24_660ac526","line":72,"in_reply_to":"3f65232a_9c064286","updated":"2020-11-02 10:40:08.000000000","message":"Yes I will remove those, there were useful for dev/debugging but now are definitely too much.","commit_id":"a0e8715a61fb641cfb31b633b6d5bf413dfb8d32"}],"zuul/zk/zuul.py":[{"author":{"_account_id":22348,"name":"Zuul","username":"zuul","tags":["SERVICE_USER"]},"tag":"autogenerated:zuul:check","change_message_id":"fd90ff5712559c4309d87e9c9be13e9ea2400570","unresolved":false,"context_lines":[{"line_number":80,"context_line":"        finally:"},{"line_number":81,"context_line":"            if not keep_locked and self.lockingLock.locked():"},{"line_number":82,"context_line":"                self.lockingLock.release()"},{"line_number":83,"context_line":""}],"source_content_type":"text/x-python","patch_set":21,"id":"9f560f44_24a7b2a9","line":83,"updated":"2020-08-05 15:25:31.000000000","message":"linters: W391 blank line at end of file","commit_id":"d48e53178455583c701881ab34927db31d89b3f8"}]}
