• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ooni / netem
84%

Build:
DEFAULT BRANCH: main
Repo Added 08 Mar 2023 06:44PM UTC
Token KfVZcFhSeFSAp4eZkrJOgW6W4rc6VH5UH regen
Build 121 Last
Files 28
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • architecture
  • chore/upgrade-go1.23
  • cleanups
  • cov2
  • coverage
  • debug/dpi
  • dnsspoof
  • feat/reassemble-refactor
  • feat/reassemble-tls
  • fix-gvisor-stack-close
  • fix/cname
  • fixes
  • fixtests
  • issue-2464
  • issue/1803
  • issue/2029
  • issue/2461
  • issue/2494
  • issue/2531
  • issue/2556
  • issue/2654
  • issue/2669e
  • main
  • moredocs
  • moretests
  • other_docs
  • perf
  • quicparse
  • racedetect
  • updatedeps

15 Oct 2026 05:52AM UTC coverage: 83.654% (+0.03%) from 83.621%
38689151042

push

github

web-flow
fix: destroy the GVisor stack on Close (#52)

gvisorStack.Close only closed netem's own channel: the GVisor stack's
endpoints, protocol workers and timers kept running, so every closed
host leaked about one goroutine per CPU, plus the stack's buffers, for
the life of the process. Tests that create many topologies, such as
probe-cli's netemx QA scenarios run with -race -count=N, accumulated
gigabytes.

Close now calls stack.Destroy() after closing the channel. Closing the
channel first makes WriteNotify return at once, so GVisor cannot block
on it while the teardown aborts endpoints. A closed stack also fails new
dials at once instead of timing out.

Tested with the new gvisor_test.go (160 goroutines leaked by 5 closed
topologies before, none after), go test -race ./..., and probe-cli's
netemx, webconnectivityqa, webconnectivitylte, telegram, whatsapp and
signalclient tests against this tree.

7 of 7 new or added lines in 1 file covered. (100.0%)

2 existing lines in 1 file now uncovered.

2523 of 3016 relevant lines covered (83.65%)

0.88 hits per line

Relevant lines Covered
Build:
Build:
3016 RELEVANT LINES 2523 COVERED LINES
0.88 HITS PER LINE
Source Files on main
  • Tree
  • List 28
  • Changed 3
  • Source Changed 0
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
38689151042 main fix: destroy the GVisor stack on Close (#52) gvisorStack.Close only closed netem's own channel: the GVisor stack's endpoints, protocol workers and timers kept running, so every closed host leaked about one goroutine per CPU, plus the stack's buff... push 15 Oct 2026 05:54AM UTC web-flow github
83.65
38313030455 fix-gvisor-stack-close fix: destroy the GVisor stack on Close gvisorStack.Close only closed netem's own channel: the GVisor stack's endpoints, protocol workers and timers kept running, so every closed host leaked about one goroutine per CPU, plus the stack's buffers, f... Pull #52 12 Oct 2026 09:51PM UTC aagbsn github
83.65
29426834759 main feat: refactor tls reassembly on per-flow basis (#51) This diff makes modifications to the DPI structs to allow per-flow tls frame reassembly. The model to follow is to never stop DPI models to block irrespective of the connections established, w... push 15 Jul 2026 03:11PM UTC web-flow github
83.62
29426539389 feat/reassemble-refactor feat: refactor tls reassembly on per-flow basis Pull #51 15 Jul 2026 03:07PM UTC DecFox github
83.62
29413909975 main feat: add tls reassembly support for multi-packet client-hello (#50) This diff allows the DPI structs to handle multi-frame TLS client hello. Part of https://github.com/ooni/probe-cli/issues/1702 push 15 Jul 2026 12:07PM UTC web-flow github
82.72
29413698210 feat/reassemble-tls feat: add tls reassembly support for multi-packet client-hello Pull #50 15 Jul 2026 12:03PM UTC DecFox github
82.69
17505366459 main feat: reset tls metadata after parsing (#49) push 05 Sep 2025 10:01PM UTC web-flow github
83.5
17505365860 debug/dpi feat: allow parsing tls server name only once Pull #49 05 Sep 2025 10:01PM UTC DecFox github
83.41
17491600490 main chore: upgrade to go1.23 (#48) This diff upgrades netem to use go1.23 --------- Co-authored-by: decfox <decfox@Mac.lan> push 05 Sep 2025 11:17AM UTC web-flow github
84.93
17491537931 chore/upgrade-go1.23 feat: allow parsing tls handshake across packets Pull #48 05 Sep 2025 11:14AM UTC DecFox github
84.87
See All Builds (63)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc