Skip to content

Commit 02a5b5d

Browse files
committed
feat: add detailed logging for session persistence
- Add debug/info logs during session loading to track persistence state - Log when persistence directory is not set - Log errors when unable to open/read/unmarshal sessions file - Log number of sessions being loaded and successfully loaded - Log mock service initialization with session count - Helps diagnose persistence issues reported in #318
1 parent a12d1ee commit 02a5b5d

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

server/services/mocks.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import (
77
"sync"
88
"time"
99

10+
log "github.com/sirupsen/logrus"
1011
"github.com/smocker-dev/smocker/server/types"
1112
"github.com/teris-io/shortid"
1213
)
@@ -47,8 +48,11 @@ func NewMocks(sessions types.Sessions, historyRetention int, persistence Persist
4748
historyRetention: historyRetention,
4849
persistence: persistence,
4950
}
50-
if sessions != nil {
51+
if sessions != nil && len(sessions) > 0 {
5152
s.sessions = sessions
53+
log.Infof("Initialized mock service with %d session(s)", len(sessions))
54+
} else {
55+
log.Info("Initialized mock service with no sessions")
5256
}
5357
return s
5458
}

server/services/persistence.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,25 +140,32 @@ func (p *persistence) LoadSessions() (types.Sessions, error) {
140140
p.mu.Lock()
141141
defer p.mu.Unlock()
142142
if p.persistenceDirectory == "" {
143+
log.Debug("Persistence directory not set, skipping session loading")
143144
return nil, nil
144145
}
146+
log.Debugf("Loading sessions from %q", p.persistenceDirectory)
145147
if _, err := os.Stat(p.persistenceDirectory); os.IsNotExist(err) {
148+
log.WithError(err).Warnf("Persistence directory %q does not exist", p.persistenceDirectory)
146149
return nil, err
147150
}
148151
file, err := os.Open(filepath.Join(p.persistenceDirectory, sessionsFileName))
149152
if err != nil {
153+
log.WithError(err).Errorf("Unable to open sessions file %q", sessionsFileName)
150154
return nil, err
151155
}
152156
defer file.Close()
153157
bytes, err := io.ReadAll(file)
154158
if err != nil {
159+
log.WithError(err).Errorf("Unable to read sessions file %q", sessionsFileName)
155160
return nil, err
156161
}
157162
var sessions types.Sessions
158163
err = yaml.Unmarshal(bytes, &sessions)
159164
if err != nil {
165+
log.WithError(err).Errorf("Unable to unmarshal sessions from %q", sessionsFileName)
160166
return nil, err
161167
}
168+
log.Infof("Loading %d session(s) from persistence", len(sessions))
162169
var sessionsGroup errgroup.Group
163170
var sessionsLock sync.Mutex
164171
for i := range sessions {
@@ -213,8 +220,10 @@ func (p *persistence) LoadSessions() (types.Sessions, error) {
213220
})
214221
}
215222
if err := sessionsGroup.Wait(); err != nil {
223+
log.WithError(err).Error("Unable to load some sessions")
216224
return nil, err
217225
}
226+
log.Infof("Successfully loaded %d session(s) from persistence", len(sessions))
218227
return sessions, nil
219228
}
220229

0 commit comments

Comments
 (0)