query: return 'missed eose' error explicitly.
This commit is contained in:
+12
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"crypto/rand"
|
||||
"encoding/base32"
|
||||
"errors"
|
||||
"fmt"
|
||||
"git.wisehodl.dev/jay/go-mana-component"
|
||||
"git.wisehodl.dev/jay/go-mana-prism/observer"
|
||||
@@ -13,6 +14,14 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Errors
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
var (
|
||||
ErrMissedEOSE = errors.New("timeout: missed eose")
|
||||
)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// Types
|
||||
// ----------------------------------------------------------------------------
|
||||
@@ -258,6 +267,7 @@ func (m *RequestManager) Query(
|
||||
}
|
||||
return result, &cl, nil
|
||||
case <-ctx.Done():
|
||||
if ctx.Err() == context.DeadlineExceeded {
|
||||
// query timed out
|
||||
m.observer.Record(m.envoy.URL(),
|
||||
MissedEOSE{ID: id, At: time.Now()})
|
||||
@@ -265,6 +275,8 @@ func (m *RequestManager) Query(
|
||||
m.logger.Warn("missed eose", "req", id)
|
||||
}
|
||||
m.Cancel(id)
|
||||
return result, nil, ErrMissedEOSE
|
||||
}
|
||||
return result, nil, nil
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -558,7 +558,7 @@ func TestRequestManager_Query(t *testing.T) {
|
||||
start := time.Now()
|
||||
events, closed, err := m.Query(filters, queryTimeout)
|
||||
elapsed := time.Since(start)
|
||||
assert.NoError(t, err)
|
||||
assert.ErrorIs(t, err, ErrMissedEOSE)
|
||||
|
||||
assert.GreaterOrEqual(t, elapsed, queryTimeout)
|
||||
assert.Len(t, events, 2)
|
||||
|
||||
Reference in New Issue
Block a user