aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTaras Madan <tarasmadan@google.com>2024-12-13 08:39:44 +0100
committerAlexander Potapenko <glider@google.com>2024-12-13 09:09:28 +0000
commit647bf39da1e082c92585c97815db7fc28a668c8d (patch)
tree434f0802c583b66d30a509266bb09968bd099de1
parent3547e30f257972086e8e28292f3ff266f914b58b (diff)
dashboard/dashapi: change json encoding to stream
It may help to compress huge coverage json w/o OOM.
-rw-r--r--dashboard/dashapi/dashapi.go9
1 files changed, 3 insertions, 6 deletions
diff --git a/dashboard/dashapi/dashapi.go b/dashboard/dashapi/dashapi.go
index 8133d47c5..64361e155 100644
--- a/dashboard/dashapi/dashapi.go
+++ b/dashboard/dashapi/dashapi.go
@@ -1033,13 +1033,10 @@ func (dash *Dashboard) queryImpl(method string, req, reply interface{}) error {
if err != nil {
return err
}
- data, err := json.Marshal(req)
- if err != nil {
- return fmt.Errorf("failed to marshal request: %w", err)
- }
gz := gzip.NewWriter(w)
- if _, err := gz.Write(data); err != nil {
- return err
+ encoder := json.NewEncoder(gz)
+ if err := encoder.Encode(req); err != nil {
+ return fmt.Errorf("failed to marshal request: %w", err)
}
if err := gz.Close(); err != nil {
return err