)]}' { "commit": "13f323b2c221db4e69e3f5a671455954b65f1fb3", "tree": "bb1205ce8740d07edc274c1dcb1f85a21156ff04", "parents": [ "12ee5446e9eb8b9d0ae5425fb1e00bf05f93facd" ], "author": { "name": "Mike Frysinger", "email": "vapier@google.com", "time": "Mon Jan 14 16:02:55 2019 -0500" }, "committer": { "name": "Mike Frysinger", "email": "vapier@google.com", "time": "Mon Jan 14 16:11:08 2019 -0500" }, "message": "event_log: turn id generation from a generator to a func call\n\nRunning lots of sync processes in parallel can hit the failure:\nFetching projects: 23% (124/523)Exception in thread Thread-201:\nTraceback (most recent call last):\n File \"/usr/lib/python2.7/threading.py\", line 801, in __bootstrap_inner\n self.run()\n File \"/usr/lib/python2.7/threading.py\", line 754, in run\n self.__target(*self.__args, **self.__kwargs)\n File \"/usr/local/src/repo/subcmds/sync.py\", line 278, in _FetchProjectList\n success \u003d self._FetchHelper(opt, project, *args, **kwargs)\n File \"/usr/local/src/repo/subcmds/sync.py\", line 357, in _FetchHelper\n start, finish, success)\n File \"/usr/local/src/repo/event_log.py\", line 104, in AddSync\n event \u003d self.Add(project.relpath, task_name, start, finish, success)\n File \"/usr/local/src/repo/event_log.py\", line 74, in Add\n \u0027id\u0027: (kind, next(self._next_id)),\nValueError: generator already executing\n\nIt looks like, while we lock the multiprocessing value correctly, the\ngenerator that wraps the value isn\u0027t parallel safe. Since we don\u0027t\nhave a way of doing that (as it\u0027s part of the language), turn it into\na plain function call instead.\n\nBug: https://crbug.com/gerrit/10293\nChange-Id: I0db03601986ca0370a1699bab32adb03e7b2910a\n", "tree_diff": [ { "type": "modify", "old_id": "508b18eead9a5f45d778369c2df3d616ad2fb152", "old_mode": 33188, "old_path": "event_log.py", "new_id": "0696df505654725e752792c755575740e808a4fd", "new_mode": 33188, "new_path": "event_log.py" } ] }