]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Sun, 14 Nov 2021 02:52:05 +0000 (13:52 +1100)]
Provide context to readahead func
Matt Joiner [Wed, 10 Nov 2021 23:24:28 +0000 (10:24 +1100)]
Add Reader.SetReadaheadFunc
Fixes https://github.com/anacrolix/torrent/issues/687.
Matt Joiner [Sun, 14 Nov 2021 03:01:46 +0000 (14:01 +1100)]
Add a comment about not discarding in webseed OK response bodies
Matt Joiner [Fri, 12 Nov 2021 04:58:32 +0000 (15:58 +1100)]
Don't log legitimate non-range requests
Matt Joiner [Fri, 12 Nov 2021 04:18:20 +0000 (15:18 +1100)]
Should fix failing go1.16 CI build
Matt Joiner [Fri, 12 Nov 2021 03:43:22 +0000 (14:43 +1100)]
Improve error handling for bad webseeds
DNS "no such host" errors didn't interrupt the stream of outbound requests.
Matt Joiner [Fri, 12 Nov 2021 03:16:14 +0000 (14:16 +1100)]
Pass HTTP Proxy config into webseeding HTTP client
Matt Joiner [Fri, 12 Nov 2021 02:55:43 +0000 (13:55 +1100)]
Remove unused Client.updateRequests
Matt Joiner [Fri, 12 Nov 2021 02:51:58 +0000 (13:51 +1100)]
Boost webseed max requests
Matt Joiner [Fri, 12 Nov 2021 02:41:55 +0000 (13:41 +1100)]
Increment webseed peer piece availability
Matt Joiner [Fri, 12 Nov 2021 02:30:13 +0000 (13:30 +1100)]
Allow non-partial webseed part responses for small files
Matt Joiner [Fri, 12 Nov 2021 01:40:15 +0000 (12:40 +1100)]
webseed: Close unused part responses after error
Also don't bother to read their response bodies.
Matt Joiner [Fri, 12 Nov 2021 01:37:40 +0000 (12:37 +1100)]
Don't use non-directory webseed URLs for multi-file torrents
Matt Joiner [Thu, 11 Nov 2021 23:46:35 +0000 (10:46 +1100)]
Make TorrentSpecFromMetaInfoErr still usable on info error
Matt Joiner [Thu, 11 Nov 2021 23:45:47 +0000 (10:45 +1100)]
Comment that BEP 19 is WebSeeds
Matt Joiner [Thu, 11 Nov 2021 23:37:21 +0000 (10:37 +1100)]
cmd/torrentfs: Add missing envpprof.Stop
Matt Joiner [Tue, 9 Nov 2021 22:48:01 +0000 (09:48 +1100)]
Pull uninitialized DHT store fix from anacrolix/dht
Fixes https://github.com/anacrolix/torrent/issues/686.
Matt Joiner [Mon, 8 Nov 2021 03:47:01 +0000 (14:47 +1100)]
gofumpt
Matt Joiner [Thu, 4 Nov 2021 22:30:25 +0000 (09:30 +1100)]
Improve dht bootstrap stats logging
Matt Joiner [Thu, 4 Nov 2021 09:02:55 +0000 (20:02 +1100)]
cmd/torrent: Add serve subcommand
Matt Joiner [Thu, 4 Nov 2021 09:01:25 +0000 (20:01 +1100)]
bencode: Fix marshalling of unaddressable array of bytes
Matt Joiner [Thu, 4 Nov 2021 09:00:31 +0000 (20:00 +1100)]
Export addTorrentOpts
Now I see what the lint was complaining about.
Matt Joiner [Thu, 4 Nov 2021 00:36:34 +0000 (11:36 +1100)]
Move download subcmd code into separate file
Matt Joiner [Wed, 3 Nov 2021 02:49:06 +0000 (13:49 +1100)]
cmd/torrent: Add bencode {json,spew} commands
Matt Joiner [Tue, 2 Nov 2021 06:28:05 +0000 (17:28 +1100)]
bencode.Bytes: Tests and stricter checks
Matt Joiner [Mon, 1 Nov 2021 00:46:22 +0000 (11:46 +1100)]
Run Go GitHub action with Go 1.16 as well as 1.17
1.16 is still used by some downstream projects, and it might ensure support for pkg.go.dev (via old build constraint tags).
Matt Joiner [Mon, 1 Nov 2021 00:45:08 +0000 (11:45 +1100)]
Run Go GitHub action on all branches
Matt Joiner [Mon, 1 Nov 2021 00:53:58 +0000 (11:53 +1100)]
Remove some unused parameter names
https://deepsource.io/gh/anacrolix/torrent/run/
cfd6fa3d -c65b-4bf7-83f7-
3bee87c21a4b /go/RVV-B0012
Matt Joiner [Mon, 1 Nov 2021 00:50:12 +0000 (11:50 +1100)]
Alter some directory permissioning in storage
Matt Joiner [Mon, 1 Nov 2021 00:49:36 +0000 (11:49 +1100)]
Remove unused Torrent.numActivePeers
Matt Joiner [Mon, 1 Nov 2021 00:49:27 +0000 (11:49 +1100)]
Remove unused conn piece inclinations
afjoseph [Fri, 29 Oct 2021 08:34:38 +0000 (10:34 +0200)]
fixup! [trackerscraper] Add custom DNS lookup function
afjoseph [Thu, 28 Oct 2021 08:54:46 +0000 (10:54 +0200)]
[fuzz] Put +build tags to support go1.16 as well
afjoseph [Thu, 28 Oct 2021 08:53:04 +0000 (10:53 +0200)]
Revert "Remove old-style build tags"
This reverts commit
11ae25660ad3048ee5736694793fead3305f5c5b .
afjoseph [Thu, 28 Oct 2021 08:13:21 +0000 (10:13 +0200)]
[trackerscraper] Add custom DNS lookup function
Matt Joiner [Fri, 29 Oct 2021 00:57:57 +0000 (11:57 +1100)]
Link to godocs.io for documentation
Matt Joiner [Fri, 29 Oct 2021 00:52:28 +0000 (11:52 +1100)]
Fix unnecessary modification of Torrent.CancelPieces API
https://github.com/anacrolix/torrent/issues/681
Matt Joiner [Thu, 28 Oct 2021 05:21:23 +0000 (16:21 +1100)]
bencode: Encode arrays of bytes as strings
This looks appropriate with the use of byte arrays in DHT for BEP44.
Matt Joiner [Wed, 27 Oct 2021 04:15:27 +0000 (15:15 +1100)]
Run all tests and benchmarks twice
This helps detect bad cleanup in tests, which is very common.
Matt Joiner [Wed, 27 Oct 2021 04:14:48 +0000 (15:14 +1100)]
Remove unnecessary intermediate steps in Go workflow
Matt Joiner [Wed, 27 Oct 2021 04:14:11 +0000 (15:14 +1100)]
Check if torrent is closed before handling peer request data read failures
Should fix panics using storage after its been closed, like in https://github.com/anacrolix/torrent/runs/
4017475163 .
Matt Joiner [Wed, 27 Oct 2021 02:57:19 +0000 (13:57 +1100)]
Fix panic in benchmark
Matt Joiner [Wed, 27 Oct 2021 01:42:26 +0000 (12:42 +1100)]
Merge branch 'peer-requesting'
Matt Joiner [Tue, 26 Oct 2021 23:13:39 +0000 (10:13 +1100)]
Retain the desired request ordering
This means we don't have to randomize the request order when we finally apply it to avoid favouring lower indices. The difference is very subtle but should be impactful with smaller connection counts and rarer torrents.
Matt Joiner [Tue, 26 Oct 2021 04:03:04 +0000 (15:03 +1100)]
Add Peer.mustRequest
Matt Joiner [Tue, 26 Oct 2021 03:42:42 +0000 (14:42 +1100)]
Only assert pending requests when check is enabled
Uses too much CPU for production from its current callsites.
Matt Joiner [Mon, 25 Oct 2021 10:37:25 +0000 (21:37 +1100)]
Add disabled code for limiting wasted chunks
Matt Joiner [Mon, 25 Oct 2021 10:03:51 +0000 (21:03 +1100)]
Quote webrtc offer ID as ASCII-only
Matt Joiner [Mon, 25 Oct 2021 09:53:39 +0000 (20:53 +1100)]
Fix iter pending chunk request offsets
Matt Joiner [Mon, 25 Oct 2021 09:52:44 +0000 (20:52 +1100)]
Support minimum peer extensions
Matt Joiner [Mon, 25 Oct 2021 05:36:58 +0000 (16:36 +1100)]
Always count unhandled requests as pending
Fixes https://github.com/anacrolix/torrent/issues/679.
Matt Joiner [Mon, 25 Oct 2021 05:17:55 +0000 (16:17 +1100)]
Record webseed request result bytes against client stats
Should fix the issue where webseeds cause >100% useful data readings.
Matt Joiner [Mon, 25 Oct 2021 05:16:56 +0000 (16:16 +1100)]
Add more comprehensive pending requests assertions
Matt Joiner [Mon, 25 Oct 2021 05:16:06 +0000 (16:16 +1100)]
Fix panic in update requests timer func on closed conn
Matt Joiner [Mon, 25 Oct 2021 05:15:42 +0000 (16:15 +1100)]
Fix race running and closing webtorrent tracker clients
Matt Joiner [Mon, 25 Oct 2021 02:00:56 +0000 (13:00 +1100)]
Fix panic when sustaining unrejected requests after being choked
Fixes https://github.com/anacrolix/torrent/issues/680.
Matt Joiner [Thu, 21 Oct 2021 00:40:06 +0000 (11:40 +1100)]
Demote Torrent.runHandshookConnLoggingErr level to debug
Matt Joiner [Wed, 20 Oct 2021 23:48:43 +0000 (10:48 +1100)]
Add low requests check
This is an optimization for webseeds, which have 10 synchronous request routines, and if the request count dips below 10, some sit idle. There is probably something similar to be done with PeerConns, which won't update until there are zero requests, but there there is a timer to refresh updates, and the queues are very long (typically 512-2048).
Matt Joiner [Wed, 20 Oct 2021 23:28:57 +0000 (10:28 +1100)]
Update webseeds for peer requesting
Matt Joiner [Wed, 20 Oct 2021 05:41:33 +0000 (16:41 +1100)]
cmd/torrent: Use updated args module
Matt Joiner [Wed, 20 Oct 2021 05:35:45 +0000 (16:35 +1100)]
Remove unused peerImpl methods
Matt Joiner [Wed, 20 Oct 2021 00:36:48 +0000 (11:36 +1100)]
go mod tidy
Matt Joiner [Wed, 20 Oct 2021 00:22:35 +0000 (11:22 +1100)]
Demote some recent logs to debug
Matt Joiner [Wed, 20 Oct 2021 00:22:20 +0000 (11:22 +1100)]
Improve protocol behaviour logging
Matt Joiner [Tue, 19 Oct 2021 02:39:31 +0000 (13:39 +1100)]
go fmt
Matt Joiner [Tue, 19 Oct 2021 02:36:37 +0000 (13:36 +1100)]
Don't error receiving unchoke while already unchoked
Matt Joiner [Mon, 18 Oct 2021 10:52:31 +0000 (21:52 +1100)]
Refresh updates after 3s instead of 1s
Matt Joiner [Mon, 18 Oct 2021 10:52:09 +0000 (21:52 +1100)]
Randomize request order
Matt Joiner [Mon, 18 Oct 2021 10:50:50 +0000 (21:50 +1100)]
Include pending cancel count in peer status
Matt Joiner [Mon, 18 Oct 2021 10:50:13 +0000 (21:50 +1100)]
Don't panic on request refresh if there are no existing requests
Matt Joiner [Mon, 18 Oct 2021 08:06:33 +0000 (19:06 +1100)]
Improvements to request refreshing
Matt Joiner [Mon, 18 Oct 2021 07:40:33 +0000 (18:40 +1100)]
Refresh requests after a second of no updates
Matt Joiner [Mon, 18 Oct 2021 05:32:32 +0000 (16:32 +1100)]
go mod tidy
Matt Joiner [Mon, 18 Oct 2021 05:32:22 +0000 (16:32 +1100)]
glr resolve anacrolix/args
Matt Joiner [Mon, 18 Oct 2021 05:31:16 +0000 (16:31 +1100)]
Use roaring.Bitmap.IsEmpty where appropriate
Matt Joiner [Thu, 14 Oct 2021 12:14:39 +0000 (23:14 +1100)]
Make useful data stat more readable
Matt Joiner [Thu, 14 Oct 2021 12:14:10 +0000 (23:14 +1100)]
Print average download rate
Matt Joiner [Wed, 13 Oct 2021 08:05:19 +0000 (19:05 +1100)]
Add expvar for successful peer wire protocol handshake peer reserved bytes
Matt Joiner [Wed, 13 Oct 2021 04:18:12 +0000 (15:18 +1100)]
Fix log message argument
Matt Joiner [Wed, 13 Oct 2021 04:17:48 +0000 (15:17 +1100)]
Avoid allocation putting undirtiedChunksIter into interface
Matt Joiner [Wed, 13 Oct 2021 04:16:53 +0000 (15:16 +1100)]
Use roaring bitmap for pending pieces
Also makes a significant optimization for peerHasWantedPieces possible.
Matt Joiner [Tue, 12 Oct 2021 23:16:56 +0000 (10:16 +1100)]
Wait for cancelled requests to be rejected per the spec
Matt Joiner [Tue, 12 Oct 2021 02:06:59 +0000 (13:06 +1100)]
Panic if pending request count goes negative in requesting
Matt Joiner [Tue, 12 Oct 2021 02:06:32 +0000 (13:06 +1100)]
Use pointer receiver for peerRequests.{Less,Len}
Matt Joiner [Tue, 12 Oct 2021 02:06:11 +0000 (13:06 +1100)]
Track requests that are preserved across chokings
Matt Joiner [Tue, 12 Oct 2021 01:31:47 +0000 (12:31 +1100)]
Simplify request ordering for reversed conditions
Matt Joiner [Tue, 12 Oct 2021 00:58:46 +0000 (11:58 +1100)]
Some fixes to pending request accounting
Matt Joiner [Mon, 11 Oct 2021 11:04:53 +0000 (22:04 +1100)]
Handle allowed fast while choked when requests already exist in the same piece
Matt Joiner [Mon, 11 Oct 2021 07:22:02 +0000 (18:22 +1100)]
Add missing request updates on cancels, rejects
Matt Joiner [Mon, 11 Oct 2021 07:21:24 +0000 (18:21 +1100)]
Don't automatically delete requests if we're choked with fast extension
Matt Joiner [Mon, 11 Oct 2021 05:21:26 +0000 (16:21 +1100)]
Don't put requests we can't make into the request heap
In particular this should save a lot of overhead if we're choked.
Matt Joiner [Mon, 11 Oct 2021 04:46:40 +0000 (15:46 +1100)]
Optimize Peer.peerHasWantedPieces
Matt Joiner [Mon, 11 Oct 2021 04:45:55 +0000 (15:45 +1100)]
Optimize request updates due to conn and reader state changes
Matt Joiner [Sun, 10 Oct 2021 01:02:29 +0000 (12:02 +1100)]
Extend nominal max requests upper bound to 2048
Matt Joiner [Sun, 10 Oct 2021 00:54:19 +0000 (11:54 +1100)]
Use a flat slice for pending request counts
Under heavy load, seems to be 2-3x faster.
Matt Joiner [Sun, 10 Oct 2021 00:32:27 +0000 (11:32 +1100)]
Optimize chunk calculations in request strategy
Matt Joiner [Sun, 10 Oct 2021 00:19:40 +0000 (11:19 +1100)]
Ignore request strategy run gobs and envrcs
Matt Joiner [Sun, 10 Oct 2021 00:19:08 +0000 (11:19 +1100)]
Implement pending requests using BSI
Matt Joiner [Sat, 9 Oct 2021 08:00:58 +0000 (19:00 +1100)]
Extract pendingRequests
Matt Joiner [Fri, 8 Oct 2021 22:14:57 +0000 (09:14 +1100)]
Add reasons for updateRequests to be triggered