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/tsnet
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
..
example tsnet: split user facing and backend logging 2 years ago
depaware.txt logtail: avoid racing eventbus subscriptions with shutdown (#17695) 1 month ago
example_tshello_test.go tsnet: add examples (#8289) 2 years ago
example_tsnet_test.go tsnet: split user facing and backend logging 2 years ago
packet_filter_test.go tsnet: add test for packet filter generation from netmap 7 months ago
tsnet.go feature/c2n: move answerC2N code + deps out of control/controlclient 2 months ago
tsnet_test.go feature/portlist: pull portlist service porting into extension, use eventbus 2 months ago