]>
Sergey Matveev's repositories - btrtrc.git/log
Matt Joiner [Tue, 5 Aug 2025 12:45:13 +0000 (22:45 +1000)]
Simplify part file promotion and demotion
Matt Joiner [Tue, 5 Aug 2025 12:43:41 +0000 (22:43 +1000)]
Replace nasty SI file size prefix
Matt Joiner [Tue, 5 Aug 2025 12:42:59 +0000 (22:42 +1000)]
Propagate better webseed cancellation errors and cancel requests on peer context
Matt Joiner [Tue, 5 Aug 2025 12:41:13 +0000 (22:41 +1000)]
Fix pointless double open on unhandled open for write errors
Matt Joiner [Tue, 5 Aug 2025 12:40:18 +0000 (22:40 +1000)]
Expose TORRENT_WEBSEED_REQUEST_CHUNK_SIZE
Matt Joiner [Tue, 5 Aug 2025 12:38:40 +0000 (22:38 +1000)]
Fix very rare double Torrent close panic
Matt Joiner [Tue, 5 Aug 2025 10:02:18 +0000 (20:02 +1000)]
Extract webseed end request calculation and avoid bug for now
Matt Joiner [Tue, 5 Aug 2025 10:01:13 +0000 (20:01 +1000)]
Make webseedUrlKey more ergonomic to use
Matt Joiner [Tue, 5 Aug 2025 09:59:32 +0000 (19:59 +1000)]
Ensure Torrent.pieceCompletionChanged always runs on piece init
Matt Joiner [Tue, 5 Aug 2025 09:56:39 +0000 (19:56 +1000)]
Ignore pieces with unknown completion for requests
Matt Joiner [Tue, 5 Aug 2025 09:55:16 +0000 (19:55 +1000)]
Set deferred unique actions map to nil rather than clear
Matt Joiner [Tue, 5 Aug 2025 09:54:51 +0000 (19:54 +1000)]
Add TORRENT_MAX_ACTIVE_PIECE_HASHERS
Matt Joiner [Tue, 5 Aug 2025 05:49:34 +0000 (15:49 +1000)]
Extra pedantry in chunkIndexSpec
Matt Joiner [Tue, 5 Aug 2025 05:49:09 +0000 (15:49 +1000)]
Add request-strategy.Btree.Contains
We'll need it later when we use piece request order instead of Torrent._pendingPieces.
Matt Joiner [Tue, 5 Aug 2025 02:32:30 +0000 (12:32 +1000)]
Convert GetRequestablePieces to an iterator
Matt Joiner [Tue, 5 Aug 2025 02:30:40 +0000 (12:30 +1000)]
Fix panic in piece request order length status
Matt Joiner [Mon, 4 Aug 2025 23:55:05 +0000 (09:55 +1000)]
Use unique.Handle for webseedUrlKey
Should greatly improve apriori map lookup performance.
Matt Joiner [Mon, 4 Aug 2025 12:15:41 +0000 (22:15 +1000)]
Include webseed update reason and some extra debug stuff
Matt Joiner [Mon, 4 Aug 2025 10:27:59 +0000 (20:27 +1000)]
Include CF-Cache-Status in webseed debug
Matt Joiner [Fri, 1 Aug 2025 13:51:28 +0000 (23:51 +1000)]
Tons of webseed optimizations
Avoid extra allocation in firstDirtyChunk
Allow multiple requests per file (now called slices or webseed chunks)
Reduce many allocations and extra work in webseed heap ordering
Add webseed request update pprof labels
Use a larger buffer for copying webseed response parts
Matt Joiner [Fri, 1 Aug 2025 08:20:13 +0000 (18:20 +1000)]
Switch segments to use iterators
Trying to reduce allocations
Matt Joiner [Fri, 1 Aug 2025 06:11:50 +0000 (16:11 +1000)]
Switch to segments.Index.LocateIter everywhere
Matt Joiner [Fri, 1 Aug 2025 05:51:52 +0000 (15:51 +1000)]
Avoid Iterator allocation
Matt Joiner [Fri, 1 Aug 2025 03:38:51 +0000 (13:38 +1000)]
Use unique.Handle for piece order infohashes
Matt Joiner [Fri, 1 Aug 2025 03:04:30 +0000 (13:04 +1000)]
Make Client.Close more responsive
Stop updating webseed requests ASAP.
Set the Client closed event outside of the Client lock.
Make Client initialization more consistent for Close.
Matt Joiner [Thu, 31 Jul 2025 13:18:44 +0000 (23:18 +1000)]
gorond
Matt Joiner [Thu, 31 Jul 2025 13:18:33 +0000 (23:18 +1000)]
Update missinggo/v2 to fix stm test errors
Matt Joiner [Thu, 31 Jul 2025 01:54:39 +0000 (11:54 +1000)]
Truncate webseed requests to response body cache boundaries
Matt Joiner [Thu, 31 Jul 2025 01:54:06 +0000 (11:54 +1000)]
Rejigger the webseed debug logging
Matt Joiner [Thu, 31 Jul 2025 01:52:19 +0000 (11:52 +1000)]
Prevent webseed requests when torrent data download disallowed
Matt Joiner [Thu, 31 Jul 2025 01:50:52 +0000 (11:50 +1000)]
Tidy
Matt Joiner [Thu, 31 Jul 2025 01:49:14 +0000 (11:49 +1000)]
Drop torrents on Client.Close not just close them
Matt Joiner [Thu, 31 Jul 2025 01:16:27 +0000 (11:16 +1000)]
Add separate MetainfoSourcesClient
Matt Joiner [Wed, 30 Jul 2025 07:47:31 +0000 (17:47 +1000)]
Expose TORRENT_WEBSEED_HOST_REQUEST_CONCURRENCY
Matt Joiner [Wed, 30 Jul 2025 07:46:57 +0000 (17:46 +1000)]
Aggregate connection stats by peer implementation
Matt Joiner [Tue, 29 Jul 2025 04:03:48 +0000 (14:03 +1000)]
Fix panicif.Nil not working correctly
Matt Joiner [Mon, 28 Jul 2025 03:23:22 +0000 (13:23 +1000)]
Set piece incomplete if part file size incorrect
Matt Joiner [Mon, 28 Jul 2025 02:17:50 +0000 (12:17 +1000)]
Make peer conns minimize request overlap with webseeds
Matt Joiner [Mon, 28 Jul 2025 02:16:19 +0000 (12:16 +1000)]
Update code comments
Matt Joiner [Wed, 23 Jul 2025 03:44:10 +0000 (13:44 +1000)]
Webseeds favour requesting partial files
Matt Joiner [Wed, 23 Jul 2025 03:42:46 +0000 (13:42 +1000)]
file storage: Rename anyway if both files exist
Matt Joiner [Mon, 21 Jul 2025 12:06:19 +0000 (22:06 +1000)]
Skip holes in file piece WriteTo
Overkill optimization, saves about 10% reading from disk in test. Probably not worth it.
Matt Joiner [Mon, 21 Jul 2025 12:04:34 +0000 (22:04 +1000)]
Ignore webseed request start offset in prioritization
Matt Joiner [Tue, 22 Jul 2025 13:17:41 +0000 (23:17 +1000)]
Fix peer request handling concurrency
Matt Joiner [Mon, 21 Jul 2025 12:01:38 +0000 (22:01 +1000)]
Limit piece hashers per client
Matt Joiner [Sun, 20 Jul 2025 02:52:00 +0000 (12:52 +1000)]
Try Claude branch of possum to fix Windows CI
Matt Joiner [Sun, 20 Jul 2025 02:47:26 +0000 (12:47 +1000)]
Don't build ./fs on Windows
Matt Joiner [Sun, 20 Jul 2025 02:08:56 +0000 (12:08 +1000)]
fs test: Get interrupt to work as expected
Matt Joiner [Sun, 20 Jul 2025 02:10:06 +0000 (12:10 +1000)]
CI: Add 20 minute timeout
Matt Joiner [Sun, 20 Jul 2025 01:41:14 +0000 (11:41 +1000)]
Count actual webseed data read rather than expected
Note they probably never differ at this point but still.
Matt Joiner [Sat, 19 Jul 2025 11:45:58 +0000 (21:45 +1000)]
Coalesce synchronous webseed request updates
Matt Joiner [Sat, 19 Jul 2025 11:45:34 +0000 (21:45 +1000)]
Fix piece hashing expvars update condition
Matt Joiner [Sat, 19 Jul 2025 11:44:39 +0000 (21:44 +1000)]
Skip smartban hashing if there's no peers to ban for a piece
Also take smartban.Cache lock only once per piece when forgetting blocks
Matt Joiner [Sat, 19 Jul 2025 11:41:18 +0000 (21:41 +1000)]
Implement io.WriterTo for file storage pieces
Matt Joiner [Fri, 18 Jul 2025 13:22:18 +0000 (23:22 +1000)]
go mod tidy && gorond
Matt Joiner [Fri, 18 Jul 2025 13:10:32 +0000 (23:10 +1000)]
Fix webseed request update timer callback queuing when it takes too long
Matt Joiner [Fri, 18 Jul 2025 13:08:33 +0000 (23:08 +1000)]
Fix panic when setting info bytes after Torrent closed
Matt Joiner [Fri, 18 Jul 2025 13:08:15 +0000 (23:08 +1000)]
Allocate Torrent file segments index just once
Matt Joiner [Wed, 16 Jul 2025 04:59:18 +0000 (14:59 +1000)]
Claude moved PeerConn methods from peer.go to peerconn.go
Matt Joiner [Tue, 15 Jul 2025 06:36:01 +0000 (16:36 +1000)]
Move requestState into PeerConn so cancelAllRequests doesn't crash
Matt Joiner [Mon, 14 Jul 2025 12:16:14 +0000 (22:16 +1000)]
Debug webseed read length after cancellation
Matt Joiner [Mon, 14 Jul 2025 12:15:55 +0000 (22:15 +1000)]
Set webseed.PrintDebug from environment
Matt Joiner [Mon, 14 Jul 2025 12:15:34 +0000 (22:15 +1000)]
Fix shortened webseed request debugging condition
Matt Joiner [Mon, 14 Jul 2025 12:15:11 +0000 (22:15 +1000)]
Remove useless error type debugging
Matt Joiner [Mon, 14 Jul 2025 12:14:57 +0000 (22:14 +1000)]
Fix logging of method ptr instead of calling it
Matt Joiner [Mon, 14 Jul 2025 06:05:02 +0000 (16:05 +1000)]
Reduce webseed download waste
Don't close request on cancellation, try to drain it.
Shorten webseed requests to wanted region.
Matt Joiner [Mon, 14 Jul 2025 05:38:41 +0000 (15:38 +1000)]
Panic on unhandled completion error
Matt Joiner [Mon, 14 Jul 2025 05:37:37 +0000 (15:37 +1000)]
Fix code comment
Matt Joiner [Mon, 14 Jul 2025 05:37:10 +0000 (15:37 +1000)]
Fix test that sets zero download rate limiter
Matt Joiner [Mon, 14 Jul 2025 05:36:08 +0000 (15:36 +1000)]
Remove rate limit test
It's old and too hard to update to new Read implementation
Matt Joiner [Mon, 14 Jul 2025 05:34:15 +0000 (15:34 +1000)]
Set pieces incomplete when files go missing or are truncated
Matt Joiner [Mon, 14 Jul 2025 05:32:31 +0000 (15:32 +1000)]
Reduce ban logging
Matt Joiner [Fri, 11 Jul 2025 05:02:33 +0000 (15:02 +1000)]
Misc webseed tweaks
Matt Joiner [Fri, 11 Jul 2025 04:31:18 +0000 (14:31 +1000)]
Fix webseed max discard chunk condition
Matt Joiner [Fri, 11 Jul 2025 04:30:15 +0000 (14:30 +1000)]
Remove unused field
Matt Joiner [Fri, 11 Jul 2025 04:30:03 +0000 (14:30 +1000)]
Alter log levels webseed chunk reading errors for ENHANCE_YOUR_CALM
Matt Joiner [Fri, 11 Jul 2025 04:28:36 +0000 (14:28 +1000)]
Update golang.org/x/net
Make absolutely sure our errors.As for ENHANCE_YOUR_CALM works as expected.
Matt Joiner [Thu, 10 Jul 2025 14:15:01 +0000 (00:15 +1000)]
Make webseed.PrintDebug a var
Matt Joiner [Thu, 10 Jul 2025 14:14:52 +0000 (00:14 +1000)]
Simplify and probably fix rate limited reader
Matt Joiner [Thu, 10 Jul 2025 14:13:20 +0000 (00:13 +1000)]
Set default webseed download rate burst
Matt Joiner [Thu, 10 Jul 2025 14:12:12 +0000 (00:12 +1000)]
Add DialForPeerConns config option so you can disable peer conns
Matt Joiner [Thu, 10 Jul 2025 14:10:06 +0000 (00:10 +1000)]
Fix panic writing webseed peer status
Matt Joiner [Thu, 10 Jul 2025 06:34:38 +0000 (16:34 +1000)]
Tidy
Matt Joiner [Thu, 10 Jul 2025 06:32:45 +0000 (16:32 +1000)]
Fix race on webtorrent RTC peer conn stats map
Matt Joiner [Thu, 10 Jul 2025 06:32:02 +0000 (16:32 +1000)]
Fix benign race on webseed cancellation flag
Matt Joiner [Thu, 10 Jul 2025 06:31:28 +0000 (16:31 +1000)]
file storage: When file verification fails, we forgot to pass back incomplete
Matt Joiner [Thu, 10 Jul 2025 06:30:31 +0000 (16:30 +1000)]
cmd/torrent: Rip out OTLP bullshit
It spams crap to the standard log and I hates it.
Matt Joiner [Thu, 10 Jul 2025 06:29:54 +0000 (16:29 +1000)]
cmd/torrent: Use default download rate limit burst
Matt Joiner [Thu, 10 Jul 2025 06:29:21 +0000 (16:29 +1000)]
cmd/torrent: Dump client stats atomically
Matt Joiner [Fri, 4 Jul 2025 06:13:59 +0000 (16:13 +1000)]
Fixes for webseed peers not having request state
Matt Joiner [Thu, 3 Jul 2025 06:04:52 +0000 (16:04 +1000)]
Deprecate WebSeedTorrentMaxRequests
Matt Joiner [Thu, 3 Jul 2025 06:17:51 +0000 (16:17 +1000)]
Move some peer request stuff out of Peer
Matt Joiner [Thu, 3 Jul 2025 06:05:15 +0000 (16:05 +1000)]
Add separate webseed rate limit option
Matt Joiner [Wed, 2 Jul 2025 07:53:17 +0000 (17:53 +1000)]
Maybe fix a warning serving peer requests?
Matt Joiner [Wed, 2 Jul 2025 05:11:34 +0000 (15:11 +1000)]
Fix panic iterating webseed request that hasn't closed out yet
Matt Joiner [Wed, 2 Jul 2025 05:10:51 +0000 (15:10 +1000)]
Improve some webseed debugging
Matt Joiner [Wed, 2 Jul 2025 05:10:20 +0000 (15:10 +1000)]
Remove unused request stuff for webseed peers
Matt Joiner [Wed, 2 Jul 2025 05:09:16 +0000 (15:09 +1000)]
Stop reading webseed response if enough chunks are no longer wanted
Matt Joiner [Wed, 2 Jul 2025 05:06:34 +0000 (15:06 +1000)]
Consider dirty chunks in apriori webseed request generation
Matt Joiner [Wed, 2 Jul 2025 05:04:40 +0000 (15:04 +1000)]
Fix leaked goroutines when webseed requests are cancelled