diff options
| author | Taras Madan <tarasmadan@google.com> | 2024-12-13 08:39:44 +0100 |
|---|---|---|
| committer | Alexander Potapenko <glider@google.com> | 2024-12-13 09:09:28 +0000 |
| commit | 647bf39da1e082c92585c97815db7fc28a668c8d (patch) | |
| tree | 434f0802c583b66d30a509266bb09968bd099de1 | |
| parent | 3547e30f257972086e8e28292f3ff266f914b58b (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.go | 9 |
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 |
