commit | 7ce5fdcd922f5ff36c5692af8042450629e41b3c | [log] [tgz] |
---|---|---|
author | Brad Fitzpatrick <bradfitz@golang.org> | Wed Oct 02 20:37:15 2019 +0000 |
committer | Brad Fitzpatrick <bradfitz@golang.org> | Fri Oct 04 04:14:01 2019 +0000 |
tree | 1a8577ca2124b0a39384ac9cd71973e40782f8fb | |
parent | 74dc4d7220e7acc4e100824340f3e66577424772 [diff] |
[release-branch.go1.13] http2: fix memory leak in random write scheduler In certain shutdown cases (from the client and/or server), the http2 Server can Push stream-specific frames on closed streams. This caused memory leaks in the random write scheduler. As a conservative fix for backporting, just clear the map element whenever its queue value is empty. The map entry is re-created as needed anyway. This isn't perfectly ideal (it adds a map+delete and free queue put+get) in the case where a stream is open & actively writing, but it's an easy fix for now. A future CL can optimize all this code. It looks like there are some other good optimization opportunities in related code anyway. But I'd rather that happen on master and not be done in a backported change. Updates golang/go#34636 (needs bundle to std before fixed) Updates golang/go#33812 Change-Id: I21508ba2ebc361e8b8532d0d1cebf882e82c473c Reviewed-on: https://go-review.googlesource.com/c/net/+/198462 Reviewed-by: Bryan C. Mills <bcmills@google.com> (cherry picked from commit d98b1b4438230571bd7fbc5aaa89843e92937bd3) Reviewed-on: https://go-review.googlesource.com/c/net/+/198617 Reviewed-by: Andrew Bonventre <andybons@golang.org> Run-TryBot: Andrew Bonventre <andybons@golang.org>
This repository holds supplementary Go networking libraries.
The easiest way to install is to run go get -u golang.org/x/net
. You can also manually git clone the repository to $GOPATH/src/golang.org/x/net
.
This repository uses Gerrit for code changes. To learn how to submit changes to this repository, see https://golang.org/doc/contribute.html. The main issue tracker for the net repository is located at https://github.com/golang/go/issues. Prefix your issue with “x/net:” in the subject line, so it is easy to find.