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/cmd
M. J. Fromberger 95426b79a9
logtail: avoid racing eventbus subscriptions with shutdown (#17695)
In #17639 we moved the subscription into NewLogger to ensure we would not race
subscribing with shutdown of the eventbus client. Doing so fixed that problem,
but exposed another: As we were only servicing events occasionally when waiting
for the network to come up, we could leave the eventbus to stall in cases where
a number of network deltas arrived later and weren't processed.

To address that, let's separate the concerns: As before, we'll Subscribe early
to avoid conflicts with shutdown; but instead of using the subscriber directly
to determine readiness, we'll keep track of the last-known network state in a
selectable condition that the subscriber updates for us.  When we want to wait,
we'll wait on that condition (or until our context ends), ensuring all the
events get processed in a timely manner.

Updates #17638
Updates #15160

Change-Id: I28339a372be4ab24be46e2834a218874c33a0d2d
Signed-off-by: M. J. Fromberger <fromberger@tailscale.com>
1 month ago
..
addlicense all: fix golangci-lint errors 11 months ago
build-webclient client/web: precompress assets 2 years ago
checkmetrics cmd/checkmetrics: add command for checking metrics against kb 1 year ago
cloner types/persist: add AttestationKey (#17281) 2 months ago
connector-gen cmd/connector-gen: add helper tool for wide app connector configurations 2 years ago
containerboot util/backoff: rename logtail/backoff package to util/backoff 2 months ago
derper health: compare warnable codes to avoid errors on release branch (#17637) 2 months ago
derpprobe cmd/derpprobe,prober: add run all probes handler (#16875) 4 months ago
dist {cmd/dist,release/dist}: add support for intermediary QNAP signing certificates 4 months ago
featuretags feature/featuretags,cmd/omitsize: support feature dependencies 3 months ago
get-authkey cmd,tsnet,internal/client: create internal shim to deprecated control plane API 10 months ago
gitops-pusher scripts/check_license_headers.sh: delete, rewrite as a Go test 6 months ago
hello cmd/hello: display native ipv4 (#15191) 9 months ago
jsonimports cmd/jsonimports: add static analyzer for consistent "json" imports (#17669) 1 month ago
jsontags cmd/jsontags: add static analyzer for incompatible `json` struct tags (#17670) 1 month ago
k8s-nameserver k8s-operator: add IPv6 support for DNS records (#16691) 3 months ago
k8s-operator logtail: avoid racing eventbus subscriptions with shutdown (#17695) 1 month ago
k8s-proxy cmd/k8s-proxy: switching to using ipn/store/kubestore (#17402) 2 months ago
mkmanifest cmd/mkmanifest, cmd/tailscale, cmd/tailscaled: remove Windows arm32 resources from OSS 3 years ago
mkpkg go.mod: upgrade nfpm to v2 (#8786) 2 years ago
mkversion version/mkversion: open-source version generation logic 3 years ago
nardump cmd/nardump: support symlinks, add basic test 8 months ago
natc cmd/natc,tsconsensus: add cluster config admin 4 months ago
netlogfmt all: use Go 1.22 range-over-int 2 years ago
nginx-auth tailcfg,all: add and use Node.IsTagged() 3 years ago
omitsize feature/featuretags,cmd/omitsize: support feature dependencies 3 months ago
pgproxy all: use new LocalAPI client package location 10 months ago
printdep cmd/printdep: print correct toolchain URL 3 years ago
proxy-test-server net/tlsdial: fix TLS cert validation of HTTPS proxies 6 months ago
proxy-to-grafana scripts/check_license_headers.sh: delete, rewrite as a Go test 6 months ago
sniproxy net/{netx,memnet},all: add netx.DialFunc, move memnet Network impl 8 months ago
speedtest all: update copyright and license headers 3 years ago
ssh-auth-none-demo ssh,tempfork/gliderlabs/ssh: replace github.com/tailscale/golang-x-crypto/ssh with golang.org/x/crypto/ssh 10 months ago
stunc cmd/stunc: enforce read timeout deadline (#14309) 1 year ago
stund types/persist: add AttestationKey (#17281) 2 months ago
stunstamp util/backoff: rename logtail/backoff package to util/backoff 2 months ago
sync-containers all: adjust some build tags for plan9 2 years ago
systray client/systray: allow specifying tailscaled socket 4 months ago
tailscale cmd/tailscale/cli: unhide serve get-config and serve set-config (#17598) 1 month ago
tailscaled logtail: avoid racing eventbus subscriptions with shutdown (#17695) 1 month ago
testcontrol all: use Go 1.22 range-over-int 2 years ago
testwrapper cmd/testwrapper/flakytest: use t.Attr annotation on flaky tests 2 months ago
tl-longchain all: use new LocalAPI client package location 10 months ago
tsconnect net/netmon: remove usage of direct callbacks from netmon (#17292) 2 months ago
tsidp logtail: avoid racing eventbus subscriptions with shutdown (#17695) 1 month ago
tsshd all: update copyright and license headers 3 years ago
tta all: use new LocalAPI client package location 10 months ago
viewer cmd/viewer: add field comments to generated view methods 3 months ago
vnet cmd/vnet: add wsproxy mode 9 months ago
xdpderper tsweb: split promvarz into an optional dependency 9 months ago