Tribler / tribler

Privacy enhanced BitTorrent client with P2P content discovery
https://www.tribler.org
GNU General Public License v3.0
4.82k stars 447 forks source link

[7.4.3] Crash on invalid base64-encoded resume data #5142

Closed egbertbouman closed 4 years ago

egbertbouman commented 4 years ago

From the reporter:

Traceback (most recent call last):
File "/usr/share/tribler/TriblerGUI/event_request_manager.py", line 114, in on_read_data
raise RuntimeError(json_dict["event"]["text"])
RuntimeError: Unhandled Error
Traceback (most recent call last):
File "run_tribler.py", line 95, in <module>
start_tribler_core(base_path, api_port)
File "run_tribler.py", line 84, in start_tribler_core
reactor.run()
File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1267, in run
self.mainLoop()
File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 1276, in mainLoop
self.runUntilCurrent()
--- <exception caught here> ---
File "/usr/lib/python3/dist-packages/twisted/internet/base.py", line 902, in runUntilCurrent
call.func(*call.args, **call.kw)
File "/usr/share/tribler/Tribler/Core/Libtorrent/LibtorrentDownloadImpl.py", line 232, in schedule_create_engine
checkpoint_disabled=checkpoint_disabled)
File "/usr/share/tribler/Tribler/Core/Libtorrent/LibtorrentDownloadImpl.py", line 264, in network_create_engine_wrapper
resume_data = self.config.get_engineresumedata()
File "/usr/share/tribler/Tribler/Core/Config/download_config.py", line 197, in get_engineresumedata
return bdecode_compat(base64.b64decode(self.config['state']['engineresumedata'].encode('utf-8')))
File "/usr/lib/python3.7/base64.py", line 87, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Invalid base64-encoded string: number of data characters (2121) cannot be 1 more than a multiple of 4
devos50 commented 4 years ago

@egbertbouman what's the status of this issue?

egbertbouman commented 4 years ago

@devos50 I'm not sure. I haven't seen this issue in 7.4.4 or later.

devos50 commented 4 years ago

I haven't seen it in the error reporter either. So for now, I consider it as fixed 👍