package test is failing - prob goroutine hanging

This commit is contained in:
Alexis Couvreur
2024-11-17 13:16:11 -05:00
parent b3f9559cb0
commit 4ed237f23e
4 changed files with 11 additions and 1 deletions

1
pkg/sablier/autostop.go Normal file
View File

@@ -0,0 +1 @@
package sablier

View File

@@ -1,6 +1,7 @@
package sablier
import (
"context"
"github.com/sablierapp/sablier/pkg/promise"
"github.com/sablierapp/sablier/pkg/provider"
"github.com/sablierapp/sablier/pkg/tinykv"
@@ -24,6 +25,10 @@ func NewSablier(provider provider.Provider) *Sablier {
lock.Lock()
defer lock.Unlock()
log.Printf("instance [%s] expired - removing from promises", k)
err := provider.Stop(context.Background(), k)
if err != nil {
log.Printf("error stopping instance [%s]: %v", k, err)
}
delete(promises, k)
})
return &Sablier{

View File

@@ -31,7 +31,7 @@ func (s *Sablier) StartInstance(name string, opts StartOptions) *promise.Promise
}
if ok && pr.Fulfilled() {
log.Printf("request to start instance [%v] is already started, refreshing duration", name)
log.Printf("instance [%s] will expire after [%v]", name, opts.ExpiresAfter)
err := s.expirations.Put(name, name, opts.ExpiresAfter)
if err != nil {
log.Printf("failed to refresh instance [%v]: %v", name, err)

View File

@@ -76,6 +76,7 @@ func TestStartExpires(t *testing.T) {
DesiredReplicas: opts.DesiredReplicas,
ConsiderReadyAfter: opts.ConsiderReadyAfter,
}).Return(nil).Twice()
m.EXPECT().Stop(mock.Anything, name).Return(nil).Once()
s := sablier.NewSablier(m)
@@ -125,6 +126,9 @@ func TestStartRefreshes(t *testing.T) {
p3 := s.StartInstance(name, opts)
assert.Same(t, p1, p2, p3)
_, err := promise.AllSettled(context.Background(), p1, p2, p3).Await(context.Background())
assert.NoError(t, err)
}
func TestStartAgainOnError(t *testing.T) {