diff options
| author | Nick Khyl <nickk@tailscale.com> | 2025-01-15 16:03:21 -0600 |
|---|---|---|
| committer | Nick Khyl <1761190+nickkhyl@users.noreply.github.com> | 2025-01-15 16:57:09 -0600 |
| commit | 0481042738b6320fd328cfcd4998bdaae1c93534 (patch) | |
| tree | d7e3711faba27f96994e9cf0754c6a1e7b95f42c /control/controlhttp/controlhttpserver/controlhttpserver.go | |
| parent | 62fb85785710f9249e943eb8f248facf28eda6f7 (diff) | |
| download | tailscale-0481042738b6320fd328cfcd4998bdaae1c93534.tar.xz tailscale-0481042738b6320fd328cfcd4998bdaae1c93534.zip | |
ipn/ipnserver: fix a deadlock in (*Server).blockWhileIdentityInUse
If the server was in use at the time of the initial check, but disconnected and was removed
from the activeReqs map by the time we registered a waiter, the ready channel will never
be closed, resulting in a deadlock. To avoid this, we check whether the server is still busy
after registering the wait.
Fixes #14655
Signed-off-by: Nick Khyl <nickk@tailscale.com>
Diffstat (limited to 'control/controlhttp/controlhttpserver/controlhttpserver.go')
0 files changed, 0 insertions, 0 deletions
