tailscale/wgengine
Josh Bleecher Snyder 744de615f1 health, wgenegine: fix receive func health checks for the fourth time
The old implementation knew too much about how wireguard-go worked.
As a result, it missed genuine problems that occurred due to unrelated bugs.

This fourth attempt to fix the health checks takes a black box approach.
A receive func is healthy if one (or both) of these conditions holds:

* It is currently running and blocked.
* It has been executed recently.

The second condition is required because receive functions
are not continuously executing. wireguard-go calls them and then
processes their results before calling them again.

There is a theoretical false positive if wireguard-go go takes
longer than one minute to process the results of a receive func execution.
If that happens, we have other problems.

Updates #1790

Signed-off-by: Josh Bleecher Snyder <josharian@gmail.com>
2021-04-26 17:35:49 -07:00
..
bench wgengine/bench: improved rate selection. 2021-04-26 03:51:13 -04:00
filter net/packet, wgengine/{filter,tstun}: add TSMP ping 2021-03-24 09:50:01 -07:00
magicsock health, wgenegine: fix receive func health checks for the fourth time 2021-04-26 17:35:49 -07:00
monitor wgengine/monitor: reduce Linux log spam on down 2021-04-12 10:38:51 -07:00
netstack wgengine/netstack: log error when acceptUDP fails 2021-04-21 12:25:01 -07:00
router wgengine/router{win}: ignore broadcast routes added by Windows when removing routes. 2021-04-24 14:13:35 -07:00
wgcfg wgengine/wgcfg/nmcfg: consolidate exit node log lines 2021-04-21 11:29:30 -07:00
wglog wgengine/wglog: allow wireguard-go receive routines to log 2021-04-21 12:29:28 -07:00
winnet wgengine/winnet: don't build on non-windows 2021-02-09 21:09:24 -08:00
pendopen.go wgengine: quiet connection failure diagnostics for exit nodes 2021-04-22 08:29:20 -07:00
userspace.go net/tstun: split TUN events channel into up/down and MTU 2021-04-26 17:16:51 -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