{"action":"created","issue":{"url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/11","labels_url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/11/comments","events_url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/11/events","html_url":"https://github.com/HelloZeroNet/ZeroNet/issues/11","id":54269610,"number":11,"title":"Batch FileDone event to avoid websocket flood","user":{"login":"HelloZeroNet","id":10350359,"avatar_url":"https://avatars.githubusercontent.com/u/10350359?v=3","gravatar_id":"","url":"https://api.github.com/users/HelloZeroNet","html_url":"https://github.com/HelloZeroNet","followers_url":"https://api.github.com/users/HelloZeroNet/followers","following_url":"https://api.github.com/users/HelloZeroNet/following{/other_user}","gists_url":"https://api.github.com/users/HelloZeroNet/gists{/gist_id}","starred_url":"https://api.github.com/users/HelloZeroNet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HelloZeroNet/subscriptions","organizations_url":"https://api.github.com/users/HelloZeroNet/orgs","repos_url":"https://api.github.com/users/HelloZeroNet/repos","events_url":"https://api.github.com/users/HelloZeroNet/events{/privacy}","received_events_url":"https://api.github.com/users/HelloZeroNet/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/labels/bug","name":"bug","color":"fc2929"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-14T00:39:36Z","updated_at":"2015-01-14T00:47:23Z","closed_at":null,"body":"```\r\nError catched (<type 'exceptions.AssertionError'>, AssertionError(\"This event is already used by another greenl\r\net: (<ErrorhookedGreenlet at 0x2a8f958: <bound method Worker.downloader of <Worker.Worker.Worker instance at 0x\r\n2c03f38>>>, timeout('timed out',))\",), <traceback object at 0x2abbcb0>)\r\nTraceback (most recent call last):\r\n  File \"/usr/lib/pymodules/python2.7/gevent/greenlet.py\", line 390, in run\r\n    result = self._run(*self.args, **self.kwargs)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Worker/Worker.py\", line 47, in downloader\r\n    self.manager.doneTask(task)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Worker/WorkerManager.py\", line 128, in doneTask\r\n    self.site.onFileDone(task[\"inner_path\"])\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/util/Event.py\", line 8, in __call__\r\n    f(*args, **kwargs)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Site/Site.py\", line 275, in <lambda>\r\n    self.onFileDone.append(lambda inner_path: self.fileDone(inner_path))\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Site/Site.py\", line 307, in fileDone\r\n    self.updateWebsocket(file_done=inner_path)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Site/Site.py\", line 286, in updateWebsocket\r\n    ws.event(\"siteChanged\", self, param)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Ui/UiWebsocket.py\", line 50, in event\r\n    self.cmd(\"setSiteInfo\", site_info)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Ui/UiWebsocket.py\", line 60, in cmd\r\n    self.send({\"cmd\": cmd, \"params\": params}, cb)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/Ui/UiWebsocket.py\", line 67, in send\r\n    self.ws.send(json.dumps(message))\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/lib/geventwebsocket/websocket.py\", line 345, in send\r\n    self.send_frame(message, opcode)\r\n  File \"/home/sumo/p-private/dev1/bin-zeronet/src/lib/geventwebsocket/websocket.py\", line 331, in send_frame\r\n    self.raw_write(header + message)\r\n  File \"/usr/lib/pymodules/python2.7/gevent/socket.py\", line 504, in sendall\r\n    data_sent += self.send(_get_memory(data, data_sent), flags)\r\n  File \"/usr/lib/pymodules/python2.7/gevent/socket.py\", line 484, in send\r\n    wait_write(sock.fileno(), timeout=timeout, event=self._write_event)\r\n  File \"/usr/lib/pymodules/python2.7/gevent/socket.py\", line 188, in wait_write\r\n    assert event.arg is None, 'This event is already used by another greenlet: %r' % (event.arg, )\r\nAssertionError: This event is already used by another greenlet: (<ErrorhookedGreenlet at 0x2a8f958: <bound method Worker.downloader of <Worker.Worker.Worker instance at 0x2c03f38>>>, timeout('timed out',))\r\n```"},"comment":{"url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/comments/69850791","html_url":"https://github.com/HelloZeroNet/ZeroNet/issues/11#issuecomment-69850791","issue_url":"https://api.github.com/repos/HelloZeroNet/ZeroNet/issues/11","id":69850791,"user":{"login":"HelloZeroNet","id":10350359,"avatar_url":"https://avatars.githubusercontent.com/u/10350359?v=3","gravatar_id":"","url":"https://api.github.com/users/HelloZeroNet","html_url":"https://github.com/HelloZeroNet","followers_url":"https://api.github.com/users/HelloZeroNet/followers","following_url":"https://api.github.com/users/HelloZeroNet/following{/other_user}","gists_url":"https://api.github.com/users/HelloZeroNet/gists{/gist_id}","starred_url":"https://api.github.com/users/HelloZeroNet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HelloZeroNet/subscriptions","organizations_url":"https://api.github.com/users/HelloZeroNet/orgs","repos_url":"https://api.github.com/users/HelloZeroNet/repos","events_url":"https://api.github.com/users/HelloZeroNet/events{/privacy}","received_events_url":"https://api.github.com/users/HelloZeroNet/received_events","type":"User","site_admin":false},"created_at":"2015-01-14T00:47:23Z","updated_at":"2015-01-14T00:47:23Z","body":"+ queue for websocket messages"}}