From dd0021fd9abc8b9c6d26260bc7efb57e67682478 Mon Sep 17 00:00:00 2001 From: Levi Neely Date: Thu, 13 Aug 2026 20:55:02 +0200 Subject: [PATCH] fix: restore sessions after 9P listener is ready ConsumeFeed dials the 9P socket. Moving session restore to after the listener starts ensures the socket exists when feed consumers connect. --- cmd/olliesrv/internal/fs/newroot.go | 9 ++++++--- cmd/olliesrv/main.go | 3 +++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmd/olliesrv/internal/fs/newroot.go b/cmd/olliesrv/internal/fs/newroot.go index 91834b2..b7574b4 100644 --- a/cmd/olliesrv/internal/fs/newroot.go +++ b/cmd/olliesrv/internal/fs/newroot.go @@ -41,7 +41,12 @@ func NewRoot(cfg Config) *Tree { helpSpec = &spec tree := virtfs.BuildTree(spec) - // Restore persisted sessions from disk. + return tree +} + +// RestoreSessions restores persisted sessions from disk. +// Must be called after the 9P listener is ready. +func RestoreSessions() { for _, r := range session.RestoreAllSessions() { for _, ra := range r.Agents { if ag := r.Session.FindAgent(ra.ID); ag != nil { @@ -50,6 +55,4 @@ func NewRoot(cfg Config) *Tree { } } } - - return tree } diff --git a/cmd/olliesrv/main.go b/cmd/olliesrv/main.go index 0337957..580ecbc 100644 --- a/cmd/olliesrv/main.go +++ b/cmd/olliesrv/main.go @@ -108,6 +108,9 @@ func runServer(sockPath string) { fmt.Printf("olliesrv listening on %s\n", sockPath) + // Restore sessions now that the 9P listener is ready. + fs.RestoreSessions() + var tcpListener net.Listener if *tcpAddr != "" { tcpListener, err = net.Listen("tcp", *tcpAddr)