2
0
mirror of synced 2025-02-24 14:48:27 +00:00

3256 Commits

Author SHA1 Message Date
Matt Joiner
231301f5d7 Cache piece request orderings 2021-12-12 18:35:01 +11:00
Matt Joiner
8e99558e11 Retract last few minor versions with peer-requesting issues
(cherry picked from commit 85a436a5ca75a47a52dcab9648d85f3c3fb53e35)
2021-12-12 18:34:31 +11:00
Matt Joiner
cd9a3a14ad Revert "Link to godocs.io for documentation"
This reverts commit c2ed60f9f2d100ddd15a38a6c260121a9ad6e893.
2021-12-12 17:20:02 +11:00
Matt Joiner
67ed5d0032 Partition piece request strategy by storage capacity key 2021-12-12 16:56:01 +11:00
Matt Joiner
ad082bc644 Do webseed request updates asynchronously
Fixes a bug where received chunks are immediately requested while still being processed.
2021-12-12 16:56:01 +11:00
Matt Joiner
6625b05da4 Add more identifying information to PeerConn.String
Some logs for unexpected protocol violations could be helped by them.
2021-12-12 16:56:01 +11:00
Matt Joiner
1d787c3923 Add generalized decodeJsonByteString and a fuzz target for it 2021-12-12 16:56:01 +11:00
Matt Joiner
14ee69aaeb Add failing bencode fuzz input 2021-12-12 16:56:01 +11:00
Matt Joiner
96ef73aeb6 Transmission does not reject cancelled requests 2021-12-12 16:56:01 +11:00
Matt Joiner
388bfafa01 Don't log webseed request context cancellation results 2021-12-12 16:56:01 +11:00
Matt Joiner
cd7e6dcd5c bencode: Avoid allocating interface string up front
This should fix crashes during fuzzing. It's not a complete fix, we really want to limit the amount a given Decode can allocate. Maybe Go isn't the right language for this.
2021-12-12 16:56:01 +11:00
Matt Joiner
79511abe6c bencode: Fix decoding integer with leading + 2021-12-12 16:56:01 +11:00
Matt Joiner
8764456d23 bencode: Enforce dict key ordering
Fix bencode dict key ordering in HTTP tracker test
2021-12-12 16:56:01 +11:00
Matt Joiner
78e48f71dd bencode incorrectly parsed integers with leading zeroes 2021-12-12 16:56:01 +11:00
Matt Joiner
42dca16753 Add bencode FuzzInterfaceRoundTrip 2021-12-12 16:56:01 +11:00
Matt Joiner
4cfdc2f497 Shuffle duplicate requests
Add missing import
2021-12-12 16:56:00 +11:00
Matt Joiner
4913f17c01 Generate full sintel magnet link in fs test 2021-12-12 15:01:50 +11:00
Matt Joiner
e16c799638 Add sintel.torrent 2021-12-12 15:01:50 +11:00
Matt Joiner
8dc897d4a2 Fix races using resources on Close 2021-12-12 15:01:50 +11:00
Matt Joiner
69f3b6064e Don't use the Client's IP blocklist after the Client is closed
Fixes a segfault due to using a memory mapped blocklist in confluence.
2021-12-12 15:01:50 +11:00
Matt Joiner
54d529aac0 Remove unused torrent_pending_pieces.go
Unfortunately github.com/elliotchance/orderedmap is still used in ./analysis, so no deps are removed.
2021-12-12 15:01:50 +11:00
Matt Joiner
ba592028e5 Filter update requests on piece priority change by peer choking and allowed fast 2021-12-12 15:01:50 +11:00
Matt Joiner
a9485e8796 Ensure peerRequests.torrentStrategyInput is set 2021-12-12 15:01:50 +11:00
Yaroslav Kolomiiets
102f3182fc PEX: remove workaround for krpc marshaller 2021-12-11 19:44:42 +00:00
Yaroslav Kolomiiets
bdb218a698 PEX: use new NodeAddr search methods in krpc 2021-12-11 19:18:30 +00:00
Yaroslav Kolomiiets
4a06517856 PEX: fluid event log 2021-12-12 00:27:28 +11:00
Matt Joiner
7197c5f493 Fix wasm build
This was broken in the move to zombiezen sqlite, which still doesn't work on WASM/JS.
2021-12-07 13:08:06 +11:00
Matt Joiner
22053c9238 Don't fail-fast on go versions 2021-12-07 12:42:35 +11:00
Matt Joiner
a2c50ea2bd Handle 503 returns from webseed peer endpoints 2021-12-06 15:24:28 +11:00
Matt Joiner
32d9ec900c Record an observation about why webseed peers are doing most of the work in recent testing 2021-12-06 15:22:06 +11:00
Matt Joiner
c653cf2070 Do webseed request parts sequentially
This means we can treat the number of bytes in the result with enough accuracy to decide if we should count it as a wasted chunk. Also I'm not sure why it was a good idea to do parts of a request in parallel anyway, it could just lead to spikes in outstanding requests to the webseed, rather than sticking to the predictable maxRequests limit.
2021-12-06 15:22:00 +11:00
Matt Joiner
9bee7c3bc4 Handle cancelled webseed peer requests if they're not active 2021-12-06 15:21:51 +11:00
Matt Joiner
56bb8a9713 Check if Torrent is closed before receiving webseed chunks 2021-12-06 15:19:00 +11:00
Matt Joiner
a9373fc8fd Fix minimum peer extensions error message 2021-12-03 20:36:50 +11:00
Matt Joiner
ab78c449b7 Reduce idle request updates due to choke and unchoke messages 2021-11-29 12:12:30 +11:00
Matt Joiner
5dba8f96e4 Merge branch 'udp-tracker-no-dial' into te 2021-11-29 11:19:54 +11:00
Matt Joiner
8e707c9b15 Remove unused peer stuff in request strategy 2021-11-29 10:14:16 +11:00
Matt Joiner
0f495ce97d Optimize the use of worstConnSlice again 2021-11-29 10:07:48 +11:00
Matt Joiner
4f3db19ca3 Optimize Torrent.haveAnyPieces 2021-11-29 00:44:24 +11:00
Matt Joiner
97e1e2469b Announce to DHT if we want conns, not just peers 2021-11-28 22:46:45 +11:00
Matt Joiner
b196fe7765 Wanting peers is a subset of wanting conns 2021-11-28 22:40:55 +11:00
Matt Joiner
f621f0f5a8 Don't want conns for seeding unless we have a piece 2021-11-28 22:40:53 +11:00
Matt Joiner
51f6f07633 Peers with all pieces have wanted pieces only if we want any piece 2021-11-28 22:36:19 +11:00
Matt Joiner
91e8f3e127 Abstract worseConn comparisons and add tests 2021-11-28 17:06:10 +11:00
Matt Joiner
878a3e468b Rename worst_conns.go 2021-11-28 12:53:18 +11:00
Matt Joiner
3626bb9fa9 Merge branch 'bsi-pending-requests' into te 2021-11-27 09:38:58 +11:00
Matt Joiner
3829c22062 Use modernc.org/sqlite version that fixes temp dir race 2021-11-26 17:06:13 +11:00
Matt Joiner
560b463983 Comment out pending requests tests and asserts
These need to be updated. BSI for pending requests removes an enormous amount of memory use for very large torrents.
2021-11-25 22:59:20 +11:00
Matt Joiner
8ddbf5a852 Revert "Use a flat slice for pending request counts"
This reverts commit dfc421824ce6c146ff9d9062ad25748c0f8c9990.
2021-11-25 22:55:02 +11:00
Matt Joiner
aaec4dbd80 tracker/udp: Panic on read errors if ConnClient not closed
There's nothing exposed to handle this error currently, and if it occurs, it's better not to fail in silence. I'm currently debugging a situation where ConnClients stop working, this would be a condition we'd want to know about.
2021-11-23 08:35:45 +11:00