Skip to content

Fix goroutine leaks in HTTP fetcher causing test timeouts#1233

Merged
monkeyWie merged 4 commits intoperf/dht_error_logsfrom
copilot/sub-pr-1186
Jan 10, 2026
Merged

Fix goroutine leaks in HTTP fetcher causing test timeouts#1233
monkeyWie merged 4 commits intoperf/dht_error_logsfrom
copilot/sub-pr-1186

Conversation

Copy link
Contributor

Copilot AI commented Jan 10, 2026

TestDownloader_ContinueBatch was timing out after 10 minutes due to goroutines blocking indefinitely on WaitGroup.Wait() when downloads were paused or cancelled.

Changes

HTTP Fetcher (internal/protocol/http/fetcher.go)

  • Make completion waiters respect context cancellation using select with done channel
  • Apply fix to both fresh non-range downloads and resumed downloads in waitForCompletion()
// Before: blocks forever if context cancelled
f.wg.Wait()
f.onDownloadComplete()

// After: respects cancellation
done := make(chan struct{})
go func() {
    f.wg.Wait()
    close(done)
}()

select {
case <-done:
    f.onDownloadComplete()
case <-f.ctx.Done():
    return
}

Downloader (pkg/download/downloader.go)

  • Add listenerLock (RWMutex) protecting d.listener field access
  • Use statusLock consistently in watch() when reading task status/progress
  • Clone tasks under lock before storage to prevent concurrent modification during serialization

Test Results

  • TestDownloader_ContinueBatch: 15.5s (was 10min timeout)
  • TestFetcher_Resolve_Torrent: 0.05s (passing)

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI self-assigned this Jan 10, 2026
Copilot AI and others added 3 commits January 10, 2026 03:15
When non-range downloads are paused/stopped, the goroutine waiting on
f.wg.Wait() would hang forever since connections don't complete when
context is cancelled. This caused TestDownloader_ContinueBatch to timeout.

Solution: Make the completion waiter goroutine respect context cancellation
by using a select statement to wait for either wg.Wait() completion or
context cancellation.

Tested: TestDownloader_ContinueBatch now passes consistently (5/5 runs)

Co-authored-by: monkeyWie <[email protected]>
The waitForCompletion function was blocking indefinitely when downloads
were paused, because it waited on f.wg.Wait() without checking for context
cancellation. When connections are cancelled, they don't complete normally,
so the WaitGroup never reaches zero.

Solution: Use a select statement to wait for either WaitGroup completion
or context cancellation, similar to the fix applied to fresh non-range
downloads.

This fixes TestDownloader_ContinueBatch which was timing out after 10 minutes.

Co-authored-by: monkeyWie <[email protected]>
- Add listenerLock to protect concurrent access to d.listener field
- Use statusLock to protect task.Status and task.Progress updates in watch()
- Clone task with proper locking before storage to prevent data races

These changes reduce data races without affecting functional correctness.
Tests pass without -race flag as expected by CI.

Co-authored-by: monkeyWie <[email protected]>
Copy link
Contributor Author

Copilot AI commented Jan 10, 2026

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • 239.255.255.250
    • Triggering command: REDACTED, pid is -1 (packet block)
  • dht.aelitis.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • dht.anacrolix.link
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • dht.libtorrent.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • dht.transmissionbt.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • explodie.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • https://api.github.com/repos/GopeedLab/gopeed/releases/latest
    • Triggering command: /tmp/go-build1162242378/b001/download.test /tmp/go-build1162242378/b001/download.test -test.paniconexit0 -test.timeout=3m0s -test.count=1 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z -uns�� [email protected] /tmp/go-build2382818848/b191/vet--64 .cfg -c=4 -nolocalimports -importcfg o_main.o (http block)
    • Triggering command: /tmp/go-build3657818230/b001/download.test /tmp/go-build3657818230/b001/download.test -test.paniconexit0 -test.timeout=3m0s -test.count=1 -test.run=TestDownloader_InstallExtension -bool [email protected] .cfg -errorsas -ifaceassert -nilfunc ache/go/1.24.11//tmp/ccUPI4Pq.o -uns�� -unreachable=false /tmp/go-build2382818848/b189/vet.cfg ux_amd64/vet r.go 0251217073903-48-O3 (http block)
    • Triggering command: /tmp/go-build4118270931/b001/download.test /tmp/go-build4118270931/b001/download.test -test.paniconexit0 -test.timeout=3m0s -test.count=1 -test.run=TestDownloader_ -unreachable=false /tmp/go-build2382818848/b164/vet-plugin-opt=-pass-through=-lgcc ache/go/1.24.11/x64/pkg/tool/lin-plugin-opt=-pass-through=-lc go x64/src/vendor/g-rn (http block)
  • ipv4.tracker.harry.lu
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • ipv6.torrent.ubuntu.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • non-existent-host-12345.example
    • Triggering command: /tmp/go-build1162242378/b001/download.test /tmp/go-build1162242378/b001/download.test -test.paniconexit0 -test.timeout=3m0s -test.count=1 -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z -uns�� [email protected] /tmp/go-build2382818848/b191/vet--64 .cfg -c=4 -nolocalimports -importcfg o_main.o (dns block)
    • Triggering command: /tmp/go-build2625970049/b001/download.test /tmp/go-build2625970049/b001/download.test -test.testlogfile=/tmp/go-build2625970049/b001/testlog.txt -test.paniconexit0 -test.timeout=5m0s SNAP�� 2818848/b247/_pkg_.a OCA 3a23865f3243eae7-d . dLab/gopeed/inte--64 --64 /usr/libexec/gcc/tmp/ccv2ceiC.o -qui�� cR3c/lOCUdEO8a82T6YIAcR3c /tmp/go-build2382818848/b368/ ptables . -imultiarch x86_64-linux-gnu 2818848/b247/importcfg (dns block)
    • Triggering command: /tmp/go-build2458420468/b001/download.test /tmp/go-build2458420468/b001/download.test -test.testlogfile=/tmp/go-build2458420468/b001/testlog.txt -test.paniconexit0 -test.timeout=5m0s -qui�� in.so /lto-wrapper (dns block)
  • open.stealth.si
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • opentor.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • p4p.arenabg.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • router.bittorrent.cloud
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • router.bittorrent.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • router.silotis.us
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • router.utorrent.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • torrent.ubuntu.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.birkenwald.de
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.bitsearch.to
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.cyberia.is
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.dler.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.files.fm
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.foreverpirates.co
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.moeking.me
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.opentrackr.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.tiny-vps.com
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • tracker.torrent.eu.org
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)
  • uploads.gamecoast.net
    • Triggering command: /tmp/go-build231223089/b001/bt.test /tmp/go-build231223089/b001/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true -test.run=TestFetcher_Resolve_Torrent ortcfg u/13/collect2 se il ux_amd64/vet u/13/collect2 -qui�� u/13/liblto_plugin.so _64-linux-gnu/13/lto-wrapper x64/pkg/tool/linux_amd64/vet s post/compress/zidiff x86_64-linux-gnu--name-only x64/pkg/tool/linHEAD (dns block)
    • Triggering command: /tmp/go-build2651638875/b835/bt.test /tmp/go-build2651638875/b835/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true pkg/mod/github.com/cloudflare/[email protected]/math/-race -I .cfg --gdwarf-5 --64 -o ache/go/1.24.11/HEAD -o /tmp/go-build1855710220/b601/_pkg_.a 5710220/b717/importcfg ache/go/1.24.11/x64/pkg/tool/linux_amd64/vet -p github.com/cloudcat-file -lang=go1.22 ache/go/1.24.11/0f0a2f37818e4928196dbdcd69b2018eba921d1f:go.mod (dns block)
    • Triggering command: /tmp/go-build1149876534/b466/bt.test /tmp/go-build1149876534/b466/bt.test -test.paniconexit0 -test.count=1 -test.timeout=10m0s -test.v=true /tmp/go-build185--merged -trimpath (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

Copilot AI changed the title [WIP] Fix slow down DHT announcing on errors Fix goroutine leaks in HTTP fetcher causing test timeouts Jan 10, 2026
Copilot AI requested a review from monkeyWie January 10, 2026 03:55
@monkeyWie monkeyWie marked this pull request as ready for review January 10, 2026 04:47
@monkeyWie monkeyWie merged commit 15cf455 into perf/dht_error_logs Jan 10, 2026
@monkeyWie monkeyWie deleted the copilot/sub-pr-1186 branch January 10, 2026 04:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants