Yat Ho
Yat Ho
The changes in #7026 is based on the changes in this PR, that's why there's a lot of duplicate commits. Once this is merged, I will rebase #7026 on `main`,...
> EDIT: any way to get a 7027->7026 diff that I could test? Erm, so you want to test 7026 without 7027? I think there will be conflicts to resolve,...
> 7026 is not purely a superset of 7027, in particular there is "fix: add missing candidates_dirty_ checks" [3e552af](https://github.com/transmission/transmission/commit/3e552af6f0f339ab418b03b59d1e48903910fc57) ... is that still appropriate to include in the merged test?...
Previous discussions in this PR are no longer valid. See https://github.com/transmission/transmission/issues/6986#issuecomment-2293753806 to learn about the current status quo of this PR and 7026.
Resolved merge conflicts.
@reardonia 1. I've force pushed *a lot* in this branch. Maybe you need to do `git reset --hard origin/client-request`? 2. "Current approach" means post 7026, which is even further along...
Oh, I'm seeing the endgame issue now too, I thought I fixed it already…
@reardonia You can try again. Turns out I missed the case where all blocks of a corrupted piece needs to be re-downloaded.
No, I haven't figured out how to reproduce it yet.
There are many variations, but the heap corruption generally happens like this: 1. In the middle of a handshake, `io->write()` gets called within a `tr_handshake` method. 2. In `tr_peerIo::try_write()`, an...