Skip to content

Fix RPC writeJSON superfluous WriteHeader on encode failure#4

Merged
swetjen merged 3 commits intomainfrom
fix/rpc-superfluous-writeheader
Feb 25, 2026
Merged

Fix RPC writeJSON superfluous WriteHeader on encode failure#4
swetjen merged 3 commits intomainfrom
fix/rpc-superfluous-writeheader

Conversation

@swetjen
Copy link
Copy Markdown
Owner

@swetjen swetjen commented Feb 25, 2026

Summary

  • fix rpc.writeJSON to avoid calling http.Error after headers are already written
  • keep response write path single-header even when JSON encode/write fails (e.g. broken pipe / client disconnect)
  • add regression test asserting only one WriteHeader call occurs on encode failure
  • update changelog

Why

writeJSON previously wrote status first, then on encode failure attempted http.Error, which triggers Go's superfluous response.WriteHeader warning.

Testing

  • go test ./rpc -run 'TestWriteJSONEncodeFailureDoesNotWriteHeaderTwice|TestRPCHandleOK|TestRPCHandleInvalid'
  • go test ./httpapi

Note: full go test ./rpc currently includes an unrelated existing failure in TestRPCPgtypeOpenAPIAndClients in this environment.

@swetjen swetjen merged commit b13e71b into main Feb 25, 2026
1 check failed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant