lg / murder

Large scale server deploys using BitTorrent and the BitTornado library (NOTE: project no longer maintained)
http://twitter.com
Other
2.53k stars 269 forks source link

Peer is throwing an error after completing the download #13

Closed juneym closed 11 years ago

juneym commented 12 years ago

Environment: OS: CentOS 5.5 (Final) Python 2.4.3


Traceback (most recent call last): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/RawServer.py", line 142, in listen_forever self.sockethandler.handle_events(events) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/SocketHandler.py", line 319, in handle_events s.handler.data_came_in(s, data) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 190, in data_came_in x = self.next_func(m) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 148, in read_message self.connecter.got_message(self, s) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Connecter.py", line 285, in got_message if c.download.got_piece(i, toint(message[5:9]), message[9:]): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 182, in got_piece self._request_more() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 189, in _request_more self.fix_download_endgame(new_unchoke) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 256, in fix_download_endgame del want[self.backlog - len(self.active_requests):] TypeError: slice indices must be integers or None

Traceback (most recent call last): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/RawServer.py", line 142, in listen_forever self.sockethandler.handle_events(events) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/SocketHandler.py", line 319, in handle_events s.handler.data_came_in(s, data) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 190, in data_came_in x = self.next_func(m) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 148, in read_message self.connecter.got_message(self, s) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Connecter.py", line 285, in got_message if c.download.got_piece(i, toint(message[5:9]), message[9:]): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 182, in got_piece self._request_more() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 189, in _request_more self.fix_download_endgame(new_unchoke) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 256, in fix_download_endgame del want[self.backlog - len(self.active_requests):] TypeError: slice indices must be integers or None

Traceback (most recent call last): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/RawServer.py", line 142, in listen_forever self.sockethandler.handle_events(events) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/SocketHandler.py", line 319, in handle_events s.handler.data_came_in(s, data) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 190, in data_came_in x = self.next_func(m) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 148, in read_message self.connecter.got_message(self, s) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Connecter.py", line 285, in got_message if c.download.got_piece(i, toint(message[5:9]), message[9:]): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 182, in got_piece self._request_more() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 189, in _request_more self.fix_download_endgame(new_unchoke) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 256, in fix_download_endgame del want[self.backlog - len(self.active_requests):] TypeError: slice indices must be integers or None

Traceback (most recent call last): File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/RawServer.py", line 142, in listen_forever self.sockethandler.handle_events(events) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/SocketHandler.py", line 319, in handle_events s.handler.data_came_in(s, data) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 195, in data_came_in self.close() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 161, in close self.sever() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Encrypter.py", line 167, in sever self.connecter.connection_lost(self) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Connecter.py", line 206, in connection_lost c.download.disconnected() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 88, in disconnected self._letgo() File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/Downloader.py", line 101, in _letgo self.downloader.storage.request_lost(index, begin, length) File "/home/rmartinez/murder-deploy/murder/dist/BitTornado/BT1/StorageWrapper.py", line 738, in request_lost assert not (begin, length) in self.inactive_requests[index] AssertionError

done and done

xinliu8 commented 12 years ago

The same problem occurred to me when I used BitTornado 0.3.17. Anyone has a clue?

jpajicek commented 11 years ago

Same issue here.

lg commented 11 years ago

this has been fixed by rcohen https://github.com/lg/murder/pull/16