-
Notifications
You must be signed in to change notification settings - Fork 454
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
libtorrent 32-bit Windows build segfaults on partial resume_data
#8353
Comments
Thanks for the report! I haven't been able to reproduce this yet: if you have any more information on what triggers this crash, please let us know. |
Alright, I tried just about every variation of importing old downloads. I corrupted the files (downloaded, conf, state, parts), added odd file names (spaces, special characters), etc. I looked at your crashdumps again. Is it correct that you're using 32-bit Windows 10? I may be the case that one of our dependencies is secretly using 64-bit addressing and importing a torrent just happened to trigger it by accident. |
I am using 64 bit windows 11 but 32 bit tribler. I have recreated the bug and it has created this file in dlcheckpoints. [Admin edit: purged the .conf file (thanks for helping with the reproduction!)] |
Thanks, I'll try to reproduce it using that conf file. So far:
Zooming in on the
|
resume_data
My conclusion is that the I guess it's fine to just make sure the |
yeah, |
does this address the issue? It turns the invalid |
@arvidn thanks! I'll check it out. I will have to make a setup to compile the 32-bit Windows Python wheel though, so it may take me a little while to verify. Please give me a few days. Current custom build status:
|
@arvidn I built a wheel from your arvidn/libtorrent#7826 PR and used it with our Tribler 32-bit build. The result is:
Looking at your PR, I can't quite make sense of that behaviour. Perhaps Tribler's resume data is very wrong? I'm using the following: import libtorrent
resume_data = libtorrent.bencode({
b'file-format': b'libtorrent resume file',
b'file-version': 1,
b'info-hash': ..., # Omitted for privacy
b'save_path': b'F:/BiglyBT Downloads/' # Also attempted with backslashes, and no trailing slash
}) This used to work before (in import libtorrent
resume_data = libtorrent.bencode({b"save_path": b"F:\\BiglyBT Downloads\\"}) |
We're passing fast resume data in the atp. According to https://github.com/arvidn/libtorrent/blob/RC_2_0/include/libtorrent/add_torrent_params.hpp#L389-L395 and https://www.libtorrent.org/upgrade_to_1.2-ref.html#resume-data-handling, this is now deprecated. Maybe we just need to modernize our source code? I still think it's somewhat odd that this only crashes Windows 32 bit. |
What happens instead? It seems to work on linux (it's not expected to segfault) |
@arvidn Indeed, this exact combination of Only using the win32 build (on a x64 Windows 10/11 system) do I, and OP, see the I copied over your |
Traceback and/or steps to reproduce
Tribler 8.0.7 crashes when i attempt to import a torrent with already existing downloaded files from an old version.
I pressed "Import torrent as a file". opened .torent file and set destination to F:\TriblerDownloads\TRON RUN-r [FitGirl Repack]\
CrashDumps.zip
The text was updated successfully, but these errors were encountered: