query: return 'missed eose' error explicitly.

This commit is contained in:
Jay
2026-08-06 09:51:08 -04:00
parent b0e0561f0a
commit 70c47d7421
2 changed files with 19 additions and 7 deletions
+12
View File
@@ -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
View File
@@ -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)