You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Nick Khyl
c9836b454d
net/netmon: fix goroutine leak in winMon if the monitor is never started
...
When the portable Monitor creates a winMon via newOSMon, we register
address and route change callbacks with Windows. Once a callback is hit,
it starts a goroutine that attempts to send the event into messagec and returns.
The newly started goroutine then blocks until it can send to the channel.
However, if the monitor is never started and winMon.Receive is never called,
the goroutines remain indefinitely blocked, leading to goroutine leaks and
significant memory consumption in the tailscaled service process on Windows.
Unlike the tailscaled subprocess, the service process creates but never starts
a Monitor.
This PR adds a check within the callbacks to confirm the monitor's active status,
and exits immediately if the monitor hasn't started.
Updates #9864
Signed-off-by: Nick Khyl <nickk@tailscale.com>
2 years ago
..
art
net/art: allow non-pointers as values
3 years ago
connstats
net/connstats: exclude traffic with internal Tailscale service ( #7904 )
3 years ago
dns
net/dns: use an additional registry setting to disable dynamic DNS updates for our interface on Windows
2 years ago
dnscache
net/dnscache: remove completed TODO
2 years ago
dnsfallback
net/dnsfallback: add singleflight to recursive resolver
2 years ago
flowtrack
all: update copyright and license headers
3 years ago
interfaces
net/interfaces: better handle multiple interfaces in LikelyHomeRouterIP
2 years ago
memnet
net/memnet: export the network name ( #9111 )
3 years ago
netaddr
all: update copyright and license headers
3 years ago
netcheck
net/netcheck: use DERP frames as a signal for home region liveness
2 years ago
neterror
net/neterror, wgengine/magicsock: use UDP GSO and GRO on Linux ( #7791 )
3 years ago
netkernelconf
client/tailscale,ipn/{ipnlocal,localapi}: check UDP GRO config ( #10071 )
2 years ago
netknob
all: update copyright and license headers
3 years ago
netmon
net/netmon: fix goroutine leak in winMon if the monitor is never started
2 years ago
netns
net/{interfaces,netmon}: remove "interesting", EqualFiltered API
3 years ago
netstat
net/{netns,netstat}: use new x/sys/cpu.IsBigEndian
3 years ago
netutil
net/netutil: add function to check rp_filter value ( #5703 )
2 years ago
packet
all: cleanup unused code, part 1 ( #10661 )
2 years ago
ping
net/ping: fix ICMP echo code field to 0
3 years ago
portmapper
all: cleanup unused code, part 1 ( #10661 )
2 years ago
proxymux
all: cleanup unused code, part 1 ( #10661 )
2 years ago
routetable
all: cleanup unused code, part 1 ( #10661 )
2 years ago
socks5
net/socks5: add password auth support
3 years ago
sockstats
net/dns: retry forwarder requests over TCP
3 years ago
speedtest
all: update copyright and license headers
3 years ago
stun
wgengine/magicsock, types/nettype, etc: finish ReadFromUDPAddrPort netip migration
3 years ago
tcpinfo
net/tcpinfo: add package to allow fetching TCP information
3 years ago
tlsdial
cmd/tailscale/cli: make netcheck run even if machine lacks TLS certs
3 years ago
tsaddr
all: cleanup unused code, part 1 ( #10661 )
2 years ago
tsdial
all: cleanup unused code, part 1 ( #10661 )
2 years ago
tshttpproxy
net/tshttpproxy: don't proxy through ourselves
3 years ago
tstun
all: cleanup unused code, part 1 ( #10661 )
2 years ago
wsconn
net/wsconn: accept a remote addr string and plumb it through
3 years ago