]>
 
 
Sergey Matveev's repositories - btrtrc.git/log 
 
 
 
 
 
 
alex.sharov [Fri, 11 Feb 2022 04:59:21 +0000 (11:59 +0700)] 
 
remove 
 
Matt Joiner [Mon, 27 Dec 2021 10:16:51 +0000 (21:16 +1100)] 
 
Fix TestTorrentDroppedDuringResponsiveRead flakiness 
 
Matt Joiner [Thu, 23 Dec 2021 07:44:07 +0000 (18:44 +1100)] 
 
Allow stealing from slower connections within priority classes 
 
Matt Joiner [Thu, 23 Dec 2021 21:55:57 +0000 (08:55 +1100)] 
 
Dynamic outbound max requests 
 
This might be one solution to https://github.com/anacrolix/torrent/issues/698. 
 
Matt Joiner [Thu, 23 Dec 2021 07:55:57 +0000 (18:55 +1100)] 
 
Include requests pending cancel in current request count 
 
This fix a situation where peers might be dropping our requests, and since we depend on all requests being satisfied before re-requesting, we get stuck waiting for the request to be filled. 
 
Matt Joiner [Thu, 23 Dec 2021 06:01:39 +0000 (17:01 +1100)] 
 
Replace piece availability with frequencies in Torrent status 
 
Matt Joiner [Thu, 23 Dec 2021 02:45:51 +0000 (13:45 +1100)] 
 
Revert go directive to 1.16 
 
Matt Joiner [Thu, 23 Dec 2021 01:36:53 +0000 (12:36 +1100)] 
 
cmd/torrent: Add --linear-discard 
 
Matt Joiner [Mon, 20 Dec 2021 03:32:37 +0000 (14:32 +1100)] 
 
Fix panic in webseeds updating requests when Torrent is closed 
 
I think this was caused by PieceRequestOrder being removed if all pieces in a storage capacity key are deleted. 
 
Matt Joiner [Mon, 20 Dec 2021 03:30:22 +0000 (14:30 +1100)] 
 
cmd/torrent: Lower burst when there's a download rate limit 
 
Matt Joiner [Mon, 20 Dec 2021 03:29:43 +0000 (14:29 +1100)] 
 
Apply download rate limiter to webseeds 
 
Matt Joiner [Mon, 20 Dec 2021 01:09:28 +0000 (12:09 +1100)] 
 
Don't wait for DHT pings 
 
Fixes a growing backlog of pings if DHT servers are rate-limited in their queries. 
 
Matt Joiner [Fri, 17 Dec 2021 22:22:18 +0000 (09:22 +1100)] 
 
Make Torrent.cancelRequestsForPiece more efficient 
 
Matt Joiner [Fri, 17 Dec 2021 11:06:21 +0000 (22:06 +1100)] 
 
Use relative availabilities to determine piece request order 
 
Most overhead comes from peers that connect that have everything, and we just increment every single piece's availability. There may be some unresolved determinism with torrents that share the same ordering. 
 
Matt Joiner [Fri, 17 Dec 2021 21:58:56 +0000 (08:58 +1100)] 
 
gofumpt -extra 
 
Matt Joiner [Fri, 17 Dec 2021 08:12:10 +0000 (19:12 +1100)] 
 
Add TestHaveAllThenBitfield 
 
The result of a misguided attempt to reduce piece peer availability increment and decrement overhead for have all/full-bitfield and conn closes. 
 
Preston [Thu, 23 Dec 2021 01:34:16 +0000 (09:34 +0800)] 
 
fix http tracker arg position (#700) 
 
Co-authored-by: Bot Git <bot@example.com>  
martin [Tue, 14 Dec 2021 15:57:19 +0000 (23:57 +0800)] 
 
* set proxy of websocket tracker to the proxy used by client config 
 
Matt Joiner [Thu, 16 Dec 2021 00:41:31 +0000 (11:41 +1100)] 
 
Fix leaked mmap storage in test 
 
Matt Joiner [Thu, 16 Dec 2021 00:07:19 +0000 (11:07 +1100)] 
 
Fix race in TextPexConnState 
 
Matt Joiner [Wed, 15 Dec 2021 22:44:59 +0000 (09:44 +1100)] 
 
Fix go-libutp import when CGO is disabled 
 
Matt Joiner [Thu, 16 Dec 2021 03:19:19 +0000 (14:19 +1100)] 
 
Test benchmarks in a separate step and limit executions 
 
Matt Joiner [Wed, 15 Dec 2021 08:09:22 +0000 (19:09 +1100)] 
 
Fix BenchmarkUpdatePiecePriorities 
 
Matt Joiner [Wed, 15 Dec 2021 07:54:47 +0000 (18:54 +1100)] 
 
Fix BenchmarkConnectionMainReadLoop 
 
Broken by piece request order changes. 
 
Matt Joiner [Wed, 15 Dec 2021 07:07:17 +0000 (18:07 +1100)] 
 
Some optimizations in PieceRequestOrder.Update and item comparisons 
 
Matt Joiner [Mon, 13 Dec 2021 01:16:43 +0000 (12:16 +1100)] 
 
Retract v1.39.0 
 
Matt Joiner [Mon, 13 Dec 2021 01:12:30 +0000 (12:12 +1100)] 
 
Tidy up request heaping comments 
 
Matt Joiner [Mon, 13 Dec 2021 01:11:38 +0000 (12:11 +1100)] 
 
Add Peer.cancelAllRequests for webseedPeer 
 
Matt Joiner [Mon, 13 Dec 2021 01:09:12 +0000 (12:09 +1100)] 
 
Update requests after deleting all in some corner cases 
 
Choked by non-fast PeerConn, deleted PeerConn. They're not exactly guarded as strictly as they could be, so there's plenty of room for performance improvements here. 
 
Matt Joiner [Mon, 13 Dec 2021 00:56:57 +0000 (11:56 +1100)] 
 
Assert that a request isn't cancelled before requesting it again 
 
Matt Joiner [Mon, 13 Dec 2021 00:55:47 +0000 (11:55 +1100)] 
 
Update peer requests if not interested when piece priorities change 
 
This should fix a starvation issue where we don't signal interest to a peer that has us choked. 
 
Matt Joiner [Sun, 12 Dec 2021 10:32:29 +0000 (21:32 +1100)] 
 
Explicitly use go-libutp synchronous firewall callback 
 
Matt Joiner [Sun, 12 Dec 2021 07:38:33 +0000 (18:38 +1100)] 
 
Merge branch 'request-strategy-experiments' 
 
This should bring in significant performance improvements that fix issues with the peer-requesting that existed from v1.34.0. 
 
Matt Joiner [Sat, 11 Dec 2021 13:04:06 +0000 (00:04  +1100)] 
 
More consistent cancellation management 
 
Matt Joiner [Sat, 11 Dec 2021 03:14:24 +0000 (14:14 +1100)] 
 
Remove unused request strategy code 
 
Matt Joiner [Sat, 11 Dec 2021 02:46:29 +0000 (13:46 +1100)] 
 
Don't group Torrent piece request orders without a storage capacity together 
 
Matt Joiner [Thu, 9 Dec 2021 10:49:29 +0000 (21:49 +1100)] 
 
Minimize allocations due to heap escapes 
 
Matt Joiner [Tue, 7 Dec 2021 03:19:44 +0000 (14:19 +1100)] 
 
Only steal an odd request if the stealer more recently received a chunk 
 
This helps break the stealing cycle during endgame, and lets us trickle the request to the peer conn with the best record. It might not be sufficient but works nice in testing so far. 
 
Matt Joiner [Tue, 7 Dec 2021 03:17:43 +0000 (14:17 +1100)] 
 
Only use last requested when both requests are already pending 
 
Matt Joiner [Fri, 10 Dec 2021 07:04:45 +0000 (18:04 +1100)] 
 
Add Torrent-level request cancel for consistency 
 
Matt Joiner [Mon, 6 Dec 2021 08:02:29 +0000 (19:02 +1100)] 
 
Update peer cancel assumptions and return 
 
Matt Joiner [Fri, 3 Dec 2021 10:31:40 +0000 (21:31 +1100)] 
 
Improve panic message 
 
Matt Joiner [Fri, 3 Dec 2021 10:30:41 +0000 (21:30 +1100)] 
 
Try request stealing 
 
Matt Joiner [Fri, 3 Dec 2021 05:41:52 +0000 (16:41 +1100)] 
 
Don't try to request anything without the torrent info 
 
Matt Joiner [Thu, 2 Dec 2021 02:10:02 +0000 (13:10 +1100)] 
 
Wait between duplicate requests 
 
Matt Joiner [Wed, 1 Dec 2021 08:31:29 +0000 (19:31 +1100)] 
 
Stop iterating pieces when storage is exhausted 
 
Matt Joiner [Wed, 1 Dec 2021 08:21:25 +0000 (19:21 +1100)] 
 
Use interfaces to lazily expose the bare minimum inputs to GetRequestablePieces 
 
Matt Joiner [Wed, 1 Dec 2021 04:20:42 +0000 (15:20 +1100)] 
 
Provide mapping from infohash to Torrent in Input 
 
Matt Joiner [Wed, 1 Dec 2021 03:38:47 +0000 (14:38 +1100)] 
 
Implement piece request ordering with retained state 
 
Matt Joiner [Tue, 30 Nov 2021 10:31:32 +0000 (21:31 +1100)] 
 
Avoid reflection sorting request pieces 
 
Matt Joiner [Tue, 30 Nov 2021 04:26:05 +0000 (15:26 +1100)] 
 
Use indices to lookup pieces for comparison 
 
Matt Joiner [Tue, 30 Nov 2021 04:18:38 +0000 (15:18 +1100)] 
 
Cache piece request orderings 
 
Matt Joiner [Sun, 12 Dec 2021 07:24:27 +0000 (18:24 +1100)] 
 
Retract last few minor versions with peer-requesting issues
(cherry picked from commit 
85a436a5ca75a47a52dcab9648d85f3c3fb53e35 )
 
Matt Joiner [Sun, 12 Dec 2021 06:20:02 +0000 (17:20 +1100)] 
 
Revert "Link to godocs.io for documentation"
This reverts commit 
c2ed60f9f2d100ddd15a38a6c260121a9ad6e893 .
 
Matt Joiner [Mon, 29 Nov 2021 02:07:18 +0000 (13:07 +1100)] 
 
Partition piece request strategy by storage capacity key 
 
Matt Joiner [Mon, 6 Dec 2021 08:24:04 +0000 (19:24 +1100)] 
 
Do webseed request updates asynchronously 
 
Fixes a bug where received chunks are immediately requested while still being processed. 
 
Matt Joiner [Mon, 6 Dec 2021 08:02:55 +0000 (19:02 +1100)] 
 
Add more identifying information to PeerConn.String 
 
Some logs for unexpected protocol violations could be helped by them. 
 
Matt Joiner [Sat, 11 Dec 2021 02:43:25 +0000 (13:43 +1100)] 
 
Add generalized decodeJsonByteString and a fuzz target for it 
 
Matt Joiner [Fri, 3 Dec 2021 06:15:59 +0000 (17:15 +1100)] 
 
Add failing bencode fuzz input 
 
Matt Joiner [Tue, 7 Dec 2021 03:16:02 +0000 (14:16 +1100)] 
 
Transmission does not reject cancelled requests 
 
Matt Joiner [Mon, 6 Dec 2021 08:24:48 +0000 (19:24 +1100)] 
 
Don't log webseed request context cancellation results 
 
Matt Joiner [Fri, 10 Dec 2021 04:10:26 +0000 (15:10 +1100)] 
 
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. 
 
Matt Joiner [Fri, 10 Dec 2021 03:29:35 +0000 (14:29 +1100)] 
 
bencode: Fix decoding integer with leading + 
 
Matt Joiner [Fri, 10 Dec 2021 03:05:00 +0000 (14:05 +1100)] 
 
bencode: Enforce dict key ordering 
 
Fix bencode dict key ordering in HTTP tracker test 
 
Matt Joiner [Fri, 10 Dec 2021 02:36:53 +0000 (13:36 +1100)] 
 
bencode incorrectly parsed integers with leading zeroes 
 
Matt Joiner [Fri, 10 Dec 2021 02:35:57 +0000 (13:35 +1100)] 
 
Add bencode FuzzInterfaceRoundTrip 
 
Matt Joiner [Sun, 12 Dec 2021 05:56:00 +0000 (16:56 +1100)] 
 
Shuffle duplicate requests 
 
Add missing import 
 
Matt Joiner [Wed, 1 Dec 2021 23:50:02 +0000 (10:50 +1100)] 
 
Generate full sintel magnet link in fs test 
 
Matt Joiner [Wed, 1 Dec 2021 23:49:30 +0000 (10:49 +1100)] 
 
Add sintel.torrent 
 
Matt Joiner [Wed, 1 Dec 2021 07:24:17 +0000 (18:24 +1100)] 
 
Fix races using resources on Close 
 
Matt Joiner [Wed, 1 Dec 2021 04:02:36 +0000 (15:02 +1100)] 
 
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. 
 
Matt Joiner [Wed, 1 Dec 2021 00:27:16 +0000 (11:27 +1100)] 
 
Remove unused torrent_pending_pieces.go 
 
Unfortunately github.com/elliotchance/orderedmap is still used in ./analysis, so no deps are removed. 
 
Matt Joiner [Tue, 30 Nov 2021 04:19:59 +0000 (15:19 +1100)] 
 
Filter update requests on piece priority change by peer choking and allowed fast 
 
Matt Joiner [Mon, 29 Nov 2021 02:46:44 +0000 (13:46 +1100)] 
 
Ensure peerRequests.torrentStrategyInput is set 
 
Yaroslav Kolomiiets [Wed, 8 Dec 2021 13:02:36 +0000 (13:02 +0000)] 
 
PEX: remove workaround for krpc marshaller 
 
Yaroslav Kolomiiets [Wed, 8 Dec 2021 10:16:54 +0000 (10:16 +0000)] 
 
PEX: use new NodeAddr search methods in krpc 
 
Yaroslav Kolomiiets [Mon, 6 Dec 2021 18:46:25 +0000 (18:46 +0000)] 
 
PEX: fluid event log 
 
Matt Joiner [Tue, 7 Dec 2021 02:07:58 +0000 (13:07 +1100)] 
 
Fix wasm build 
 
This was broken in the move to zombiezen sqlite, which still doesn't work on WASM/JS. 
 
Matt Joiner [Tue, 7 Dec 2021 01:42:35 +0000 (12:42 +1100)] 
 
Don't fail-fast on go versions 
 
Matt Joiner [Mon, 6 Dec 2021 04:14:59 +0000 (15:14 +1100)] 
 
Handle 503 returns from webseed peer endpoints 
 
Matt Joiner [Thu, 2 Dec 2021 02:48:52 +0000 (13:48 +1100)] 
 
Record an observation about why webseed peers are doing most of the work in recent testing 
 
Matt Joiner [Thu, 2 Dec 2021 02:47:06 +0000 (13:47 +1100)] 
 
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. 
 
Matt Joiner [Thu, 2 Dec 2021 02:10:54 +0000 (13:10 +1100)] 
 
Handle cancelled webseed peer requests if they're not active 
 
Matt Joiner [Fri, 3 Dec 2021 10:31:16 +0000 (21:31 +1100)] 
 
Check if Torrent is closed before receiving webseed chunks 
 
Matt Joiner [Fri, 3 Dec 2021 09:36:34 +0000 (20:36 +1100)] 
 
Fix minimum peer extensions error message 
 
Matt Joiner [Mon, 29 Nov 2021 01:12:30 +0000 (12:12 +1100)] 
 
Reduce idle request updates due to choke and unchoke messages 
 
Matt Joiner [Mon, 29 Nov 2021 00:19:54 +0000 (11:19 +1100)] 
 
Merge branch 'udp-tracker-no-dial' into te 
 
Matt Joiner [Sun, 28 Nov 2021 23:14:16 +0000 (10:14 +1100)] 
 
Remove unused peer stuff in request strategy 
 
Matt Joiner [Sun, 28 Nov 2021 23:07:48 +0000 (10:07 +1100)] 
 
Optimize the use of worstConnSlice again 
 
Matt Joiner [Sun, 28 Nov 2021 13:44:24 +0000 (00:44  +1100)] 
 
Optimize Torrent.haveAnyPieces 
 
Matt Joiner [Sun, 28 Nov 2021 11:46:45 +0000 (22:46 +1100)] 
 
Announce to DHT if we want conns, not just peers 
 
Matt Joiner [Sun, 28 Nov 2021 11:37:56 +0000 (22:37 +1100)] 
 
Wanting peers is a subset of wanting conns 
 
Matt Joiner [Sun, 28 Nov 2021 11:40:53 +0000 (22:40 +1100)] 
 
Don't want conns for seeding unless we have a piece 
 
Matt Joiner [Sun, 28 Nov 2021 11:36:19 +0000 (22:36 +1100)] 
 
Peers with all pieces have wanted pieces only if we want any piece 
 
Matt Joiner [Sun, 28 Nov 2021 06:06:10 +0000 (17:06 +1100)] 
 
Abstract worseConn comparisons and add tests 
 
Matt Joiner [Sun, 28 Nov 2021 01:53:18 +0000 (12:53 +1100)] 
 
Rename worst_conns.go 
 
Matt Joiner [Fri, 26 Nov 2021 22:38:58 +0000 (09:38 +1100)] 
 
Merge branch 'bsi-pending-requests' into te 
 
Matt Joiner [Fri, 26 Nov 2021 06:06:13 +0000 (17:06 +1100)] 
 
Use modernc.org/sqlite version that fixes temp dir race 
 
Matt Joiner [Thu, 25 Nov 2021 11:59:20 +0000 (22:59 +1100)] 
 
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. 
 
Matt Joiner [Thu, 25 Nov 2021 11:32:52 +0000 (22:32 +1100)] 
 
Revert "Use a flat slice for pending request counts"
This reverts commit 
dfc421824ce6c146ff9d9062ad25748c0f8c9990 .