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>
2021-05-10 09:45:35 -07:00
..
bench wgengine/bench: hold lock in TrafficGen.GotPacket while calling first packet callback 2021-05-10 09:45:35 -07:00
filter net/packet, wgengine/{filter,tstun}: add TSMP ping 2021-03-24 09:50:01 -07:00
magicsock wgengine/magicsock: rename discoEndpoint.wgEndpointHostPort to wgEndpoint 2021-05-06 12:44:22 -07:00
monitor wgengine/monitor: reduce Linux log spam on down 2021-04-12 10:38:51 -07:00
netstack wgengine/netstack: avoid delivering incoming packets to both netstack + host 2021-05-06 06:43:16 -07:00
router wgengine/router: use net.IP.Equal instead of bytes.Equal to compare IPs 2021-05-04 08:54:50 -07:00
wgcfg all: s/CreateEndpoint/ParseEndpoint/ in docs 2021-05-06 12:44:22 -07:00
wglog wgengine/wglog: improve wireguard-go logging rate limiting 2021-04-30 09:45:10 -07:00
winnet wgengine/winnet: don't build on non-windows 2021-02-09 21:09:24 -08:00
pendopen.go wgengine: fix pendopen debug to not track SYN+ACKs, show Node.Online state 2021-05-05 15:25:11 -07:00
userspace.go wgengine/wgcfg: use autogenerated Clone methods 2021-05-06 12:44:22 -07:00
userspace_ext_test.go cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows 2021-04-06 21:37:28 -07:00
userspace_test.go cmd/tailscaled, wgengine{,/netstack}: add netstack hybrid mode, add to Windows 2021-04-06 21:37:28 -07:00
watchdog.go wgengine: take in dns.Config, split out to resolver.Config and dns.OSConfig. 2021-04-02 00:59:44 -07:00
watchdog_test.go wgengine: extend TestWatchdog timeout on macOS 2021-03-27 09:27:11 -07:00
wgengine.go tailcfg: add Endpoint, EndpointType, MapRequest.EndpointType 2021-04-13 10:12:14 -07:00