Skip to content

Commit 6ecba0f

Browse files
authored
fix(coderd): prevent logging error for query cancellation in watchWorkspaceAgentMetadata (#10843)
1 parent d58239b commit 6ecba0f

File tree

2 files changed

+10
-7
lines changed

2 files changed

+10
-7
lines changed

coderd/workspaceagents.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1979,7 +1979,7 @@ func (api *API) watchWorkspaceAgentMetadata(rw http.ResponseWriter, r *http.Requ
19791979
Keys: payload.Keys,
19801980
})
19811981
if err != nil {
1982-
if !errors.Is(err, context.Canceled) {
1982+
if !database.IsQueryCanceledError(err) {
19831983
log.Error(ctx, "failed to get metadata", slog.Error(err))
19841984
_ = sseSendEvent(ctx, codersdk.ServerSentEvent{
19851985
Type: codersdk.ServerSentEventTypeError,

coderd/workspaceagents_test.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1049,7 +1049,7 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
10491049
require.EqualValues(t, 10, manifest.Metadata[0].Interval)
10501050
require.EqualValues(t, 3, manifest.Metadata[0].Timeout)
10511051

1052-
post := func(key string, mr codersdk.WorkspaceAgentMetadataResult) {
1052+
post := func(ctx context.Context, key string, mr codersdk.WorkspaceAgentMetadataResult) {
10531053
err := agentClient.PostMetadata(ctx, agentsdk.PostMetadataRequest{
10541054
Metadata: []agentsdk.Metadata{
10551055
{
@@ -1073,8 +1073,11 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
10731073
Value: "bar",
10741074
}
10751075

1076+
// Setup is complete, reset the context.
1077+
ctx = testutil.Context(t, testutil.WaitMedium)
1078+
10761079
// Initial post must come before the Watch is established.
1077-
post("foo1", wantMetadata1)
1080+
post(ctx, "foo1", wantMetadata1)
10781081

10791082
updates, errors := client.WatchWorkspaceAgentMetadata(ctx, agentID)
10801083

@@ -1116,14 +1119,14 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
11161119
require.Zero(t, update[1].Result.CollectedAt)
11171120

11181121
wantMetadata2 := wantMetadata1
1119-
post("foo2", wantMetadata2)
1122+
post(ctx, "foo2", wantMetadata2)
11201123
update = recvUpdate()
11211124
require.Len(t, update, 3)
11221125
check(wantMetadata1, update[0], true)
11231126
check(wantMetadata2, update[1], true)
11241127

11251128
wantMetadata1.Error = "error"
1126-
post("foo1", wantMetadata1)
1129+
post(ctx, "foo1", wantMetadata1)
11271130
update = recvUpdate()
11281131
require.Len(t, update, 3)
11291132
check(wantMetadata1, update[0], true)
@@ -1133,7 +1136,7 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
11331136
tooLongValueMetadata.Value = strings.Repeat("a", maxValueLen*2)
11341137
tooLongValueMetadata.Error = ""
11351138
tooLongValueMetadata.CollectedAt = time.Now()
1136-
post("foo3", tooLongValueMetadata)
1139+
post(ctx, "foo3", tooLongValueMetadata)
11371140
got := recvUpdate()[2]
11381141
for i := 0; i < 2 && len(got.Result.Value) != maxValueLen; i++ {
11391142
got = recvUpdate()[2]
@@ -1142,7 +1145,7 @@ func TestWorkspaceAgent_Metadata(t *testing.T) {
11421145
require.NotEmpty(t, got.Result.Error)
11431146

11441147
unknownKeyMetadata := wantMetadata1
1145-
post("unknown", unknownKeyMetadata)
1148+
post(ctx, "unknown", unknownKeyMetadata)
11461149
}
11471150

11481151
type testWAMErrorStore struct {

0 commit comments

Comments
 (0)