You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailscale/wgengine
Josh Bleecher Snyder 8d2a90529e wgengine/bench: hold lock in TrafficGen.GotPacket while calling first packet callback
Without any synchronization here, the "first packet" callback can
be delayed indefinitely, while other work continues.
Since the callback starts the benchmark timer, this could skew results.
Worse, if the benchmark manages to complete before the benchmark timer begins,
it'll cause a data race with the benchmark shutdown performed by package testing.
That is what is reported in #1881.

This is a bit unfortunate, in that it means that users of TrafficGen have
to be careful to keep this callback speedy and lightweight and to avoid deadlocks.

Fixes #1881

Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
3 years ago
..
bench wgengine/bench: hold lock in TrafficGen.GotPacket while calling first packet callback 3 years ago
filter net/packet, wgengine/{filter,tstun}: add TSMP ping 3 years ago
magicsock wgengine/magicsock: rename discoEndpoint.wgEndpointHostPort to wgEndpoint 3 years ago
monitor wgengine/monitor: reduce Linux log spam on down 3 years ago
netstack wgengine/netstack: avoid delivering incoming packets to both netstack + host 3 years ago
router wgengine/router: use net.IP.Equal instead of bytes.Equal to compare IPs 3 years ago
wgcfg all: s/CreateEndpoint/ParseEndpoint/ in docs 3 years ago
wglog wgengine/wglog: improve wireguard-go logging rate limiting 3 years ago
winnet wgengine/winnet: don't build on non-windows 3 years ago
pendopen.go wgengine: fix pendopen debug to not track SYN+ACKs, show Node.Online state 3 years ago
userspace.go wgengine/wgcfg: use autogenerated Clone methods 3 years ago
userspace_ext_test.go cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows 3 years ago
userspace_test.go cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows 3 years ago
watchdog.go wgengine: take in dns.Config, split out to resolver.Config and dns.OSConfig. 3 years ago
watchdog_test.go wgengine: extend TestWatchdog timeout on macOS 3 years ago
wgengine.go tailcfg: add Endpoint, EndpointType, MapRequest.EndpointType 3 years ago