fix(tsnet): add timeout handling for tsnet server initialization
This commit is contained in:
+4
-1
@@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
fmt2 "fmt"
|
fmt2 "fmt"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
|
"time"
|
||||||
|
|
||||||
"tailscale.com/ipn"
|
"tailscale.com/ipn"
|
||||||
|
|
||||||
@@ -40,7 +41,9 @@ func InitTsNet(ctx context.Context, cfg *Core, logger *slog.Logger, withDebugLog
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
status, err := srv.Up(ctx)
|
cnclCtx, cancel := context.WithTimeout(ctx, 30*time.Second)
|
||||||
|
defer cancel()
|
||||||
|
status, err := srv.Up(cnclCtx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.With(slog.String("error", err.Error())).Error("bring up tsnet server failed")
|
logger.With(slog.String("error", err.Error())).Error("bring up tsnet server failed")
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package main
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"errors"
|
||||||
"flag"
|
"flag"
|
||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
@@ -21,9 +22,14 @@ func serviceLogic(configPath string, isTsnetDebug bool, logger *slog.Logger) boo
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctx, cancelAll := context.WithCancel(context.Background())
|
ctx, cancelAll := context.WithCancel(context.Background())
|
||||||
|
defer cancelAll()
|
||||||
logger.Info("initializing tsnet server")
|
logger.Info("initializing tsnet server")
|
||||||
srv, err := core.InitTsNet(ctx, &cfg.Core, logger, isTsnetDebug)
|
srv, err := core.InitTsNet(ctx, &cfg.Core, logger, isTsnetDebug)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
if errors.Is(err, context.DeadlineExceeded) {
|
||||||
|
logger.Debug("tsnet initialization timed out, retrying")
|
||||||
|
return false
|
||||||
|
}
|
||||||
logger.With(
|
logger.With(
|
||||||
slog.String("error", err.Error())).Error("Error initializing tsnet")
|
slog.String("error", err.Error())).Error("Error initializing tsnet")
|
||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user