mirror of
https://github.com/cloudnative-pg/plugin-barman-cloud.git
synced 2026-01-13 22:23:11 +01:00
Compare commits
2 Commits
90b583c4cb
...
0e5a0caf5b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0e5a0caf5b | ||
|
|
5cac225e33 |
@ -55,7 +55,6 @@ type ExtendedClient struct {
|
|||||||
cachedObjects []cachedEntry
|
cachedObjects []cachedEntry
|
||||||
mux *sync.Mutex
|
mux *sync.Mutex
|
||||||
cleanupInterval time.Duration
|
cleanupInterval time.Duration
|
||||||
cleanupDone chan struct{} // Signals when cleanup routine exits
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewExtendedClient returns an extended client capable of caching secrets on the 'Get' operation.
|
// NewExtendedClient returns an extended client capable of caching secrets on the 'Get' operation.
|
||||||
@ -69,7 +68,6 @@ func NewExtendedClient(
|
|||||||
Client: baseClient,
|
Client: baseClient,
|
||||||
mux: &sync.Mutex{},
|
mux: &sync.Mutex{},
|
||||||
cleanupInterval: DefaultCleanupIntervalSeconds * time.Second,
|
cleanupInterval: DefaultCleanupIntervalSeconds * time.Second,
|
||||||
cleanupDone: make(chan struct{}),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the background cleanup routine
|
// Start the background cleanup routine
|
||||||
@ -227,7 +225,6 @@ func (e *ExtendedClient) Patch(
|
|||||||
// startCleanupRoutine periodically removes expired entries from the cache.
|
// startCleanupRoutine periodically removes expired entries from the cache.
|
||||||
// It runs until the context is cancelled.
|
// It runs until the context is cancelled.
|
||||||
func (e *ExtendedClient) startCleanupRoutine(ctx context.Context) {
|
func (e *ExtendedClient) startCleanupRoutine(ctx context.Context) {
|
||||||
defer close(e.cleanupDone)
|
|
||||||
contextLogger := log.FromContext(ctx).WithName("extended_client_cleanup")
|
contextLogger := log.FromContext(ctx).WithName("extended_client_cleanup")
|
||||||
ticker := time.NewTicker(e.cleanupInterval)
|
ticker := time.NewTicker(e.cleanupInterval)
|
||||||
defer ticker.Stop()
|
defer ticker.Stop()
|
||||||
|
|||||||
@ -302,12 +302,10 @@ var _ = Describe("ExtendedClient Cache Cleanup", func() {
|
|||||||
// Cancel the context immediately
|
// Cancel the context immediately
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
// Verify the cleanup routine actually stops by waiting for the done channel
|
// Give the goroutine time to stop
|
||||||
select {
|
time.Sleep(50 * time.Millisecond)
|
||||||
case <-ec.cleanupDone:
|
|
||||||
// Success: cleanup routine exited as expected
|
// The goroutine should have stopped gracefully (no panic or hanging)
|
||||||
case <-time.After(1 * time.Second):
|
// This test mainly verifies the cleanup routine respects context cancellation
|
||||||
Fail("cleanup routine did not stop within timeout")
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user