1
0
mirror of https://github.com/golang/go synced 2024-10-04 21:11:22 -06:00
go/src/net
Brad Fitzpatrick 2e30218223 net/http: remove idle transport connections from Transport when server closes
Previously the Transport would cache idle connections from the
Transport for later reuse, but if a peer server disconnected
(e.g. idle timeout), we would not proactively remove the *persistConn
from the Transport's idle list, leading to a waste of memory
(potentially forever).

Instead, when the persistConn's readLoop terminates, remote it from
the idle list, if present.

This also adds the beginning of accounting for the total number of
idle connections, which will be needed for Transport.MaxIdleConns
later.

Updates #15461

Change-Id: Iab091f180f8dd1ee0d78f34b9705d68743b5557b
Reviewed-on: https://go-review.googlesource.com/22492
Reviewed-by: Andrew Gerrand <adg@golang.org>
2016-04-27 03:30:59 +00:00
..
http net/http: remove idle transport connections from Transport when server closes 2016-04-27 03:30:59 +00:00
internal/socktest net/internal/socktest: add missing support for AcceptEx 2016-02-21 03:09:25 +00:00
mail net/mail: allow utf-8 in ParseAddress 2016-04-15 13:57:26 +00:00
rpc net/rpc: don't assume b.N > 0 2016-03-18 15:54:55 +00:00
smtp all: single space after period. 2016-03-02 00:13:47 +00:00
testdata net: mirror Tom Sawyer in the net package for tests 2016-04-12 22:22:36 +00:00
textproto all: single space after period. 2016-03-02 00:13:47 +00:00
url net/url: validate ports in IPv4 addresses 2016-04-22 21:43:22 +00:00
addrselect_test.go net: fix IPv4 address selection 2015-11-17 23:48:43 +00:00
addrselect.go all: single space after period. 2016-03-02 00:13:47 +00:00
cgo_android.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_bsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_linux.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_netbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_openbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_resnew.go
cgo_resold.go
cgo_socknew.go net: fix parsing literal IPv6 address with zone identifier when using cgo 2015-12-04 02:50:00 +00:00
cgo_sockold.go net: fix parsing literal IPv6 address with zone identifier when using cgo 2015-12-04 02:50:00 +00:00
cgo_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_unix_test.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
cgo_unix.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_windows.go
conf_netcgo.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
conf_test.go all: delete dead test code 2016-03-21 07:10:08 +00:00
conf.go all: single space after period. 2016-03-02 00:13:47 +00:00
conn_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
dial_test.go net: enable TestDialParallel, TestDialerFallbackDelay and TestDialCancel on Plan 9 2016-04-19 01:38:34 +00:00
dial.go net: enable DualStack mode on Plan 9 2016-04-19 01:48:44 +00:00
dnsclient_test.go net: don't require recursion be available in DNS responses 2015-11-17 20:11:22 +00:00
dnsclient_unix_test.go net: ignore lame referral responses like libresolv 2016-04-26 16:23:39 +00:00
dnsclient_unix.go net: ignore lame referral responses like libresolv 2016-04-26 16:23:39 +00:00
dnsclient.go all: single space after period. 2016-03-02 00:13:47 +00:00
dnsconfig_unix_test.go net: fix race in (*resolverConfig).tryUpdate 2016-02-20 10:03:47 +00:00
dnsconfig_unix.go all: single space after period. 2016-03-02 00:13:47 +00:00
dnsmsg_test.go net: keep waiting for valid DNS response until timeout 2016-04-22 22:16:08 +00:00
dnsmsg.go net: keep waiting for valid DNS response until timeout 2016-04-22 22:16:08 +00:00
dnsname_test.go all: standardize RFC mention format 2016-04-12 21:07:52 +00:00
error_plan9_test.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
error_posix_test.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
error_test.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
error_unix_test.go net: prevent spurious TCP connection setup notification on darwin 2016-03-16 03:09:28 +00:00
error_windows_test.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
example_test.go
external_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
fd_mutex_test.go net: make unexposed methods start with lowercase letters 2016-03-17 21:43:41 +00:00
fd_mutex.go net: factor out fdMutex-related methods on netFD 2016-04-04 22:31:06 +00:00
fd_plan9.go net: handle hangup in read on Plan 9 2016-04-18 21:58:54 +00:00
fd_poll_nacl.go net: make unexposed methods start with lowercase letters 2016-03-17 21:43:41 +00:00
fd_poll_runtime.go net: make unexposed methods start with lowercase letters 2016-03-17 21:43:41 +00:00
fd_posix_test.go
fd_posix.go
fd_unix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
fd_windows.go net: stop using GetHostByName and GetServByName 2016-04-19 05:53:25 +00:00
file_plan9.go
file_stub.go
file_test.go net: add missing File{Conn,Listener,PacketConn} read/write tests 2015-12-14 03:14:53 +00:00
file_unix.go net: do not unlink unix socket in UnixListener created from fd 2015-12-11 04:43:44 +00:00
file_windows.go
file.go
hook_cloexec.go
hook_plan9.go
hook_unix.go net: fix the build even harder 2015-12-17 18:43:12 +00:00
hook_windows.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
hook.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
hosts_test.go net: ensure lookupStatic* returns copy of slice to disallow cache corruption. 2016-02-21 16:36:56 +00:00
hosts.go net: ensure lookupStatic* returns copy of slice to disallow cache corruption. 2016-02-21 16:36:56 +00:00
interface_bsd_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_bsd.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
interface_darwin.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_dragonfly.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_freebsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_linux.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
interface_netbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_openbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_stub.go all: single space after period. 2016-03-02 00:13:47 +00:00
interface_test.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
interface_unix_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
interface_windows_test.go net, internal/syscall/windows: fix interface and address identification on windows 2015-12-10 08:04:07 +00:00
interface_windows.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
interface.go net: cache IPv6 zone information for applications using IPv6 link-local address 2016-04-15 01:45:27 +00:00
ip_test.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
ip.go net: add support for Zone of IPNet 2016-04-19 09:21:57 +00:00
iprawsock_plan9.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
iprawsock_posix.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
iprawsock_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
iprawsock.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
ipsock_plan9.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
ipsock_posix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
ipsock_test.go
ipsock.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
listen_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
lookup_plan9.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
lookup_stub.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
lookup_test.go net: fix looking up port numbers starting with numbers. 2016-04-15 23:11:47 +00:00
lookup_unix.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
lookup_windows_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
lookup_windows.go net: stop using GetHostByName and GetServByName 2016-04-19 05:53:25 +00:00
lookup.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
mac_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
mac.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
main_cloexec_test.go
main_conf_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
main_noconf_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
main_plan9_test.go
main_posix_test.go
main_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
main_unix_test.go
main_windows_test.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
mockserver_test.go net: make newLocalPacketListener handle network argument correcly 2016-04-14 04:20:00 +00:00
net_test.go net: add missing aborted connection handling on accept test 2016-02-21 03:32:36 +00:00
net_windows_test.go net: skip TestInterfacesWithNetsh if "netsh help" contains no English words 2016-03-30 01:51:23 +00:00
net.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
netgo_unix_test.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
nss_test.go
nss.go
packetconn_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
parse_test.go net: make Dial, Listen{,Packet} for TCP/UDP with invalid port fail 2015-11-01 05:28:17 +00:00
parse.go all: remove unnecessary type conversions 2016-04-15 07:31:45 +00:00
pipe_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
pipe.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
platform_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
port_test.go net: fix looking up port numbers starting with numbers. 2016-04-15 23:11:47 +00:00
port_unix.go
port.go net: fix looking up port numbers starting with numbers. 2016-04-15 23:11:47 +00:00
protoconn_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sendfile_dragonfly.go all: use new io.SeekFoo constants instead of os.SEEK_FOO 2016-04-13 05:25:23 +00:00
sendfile_freebsd.go all: use new io.SeekFoo constants instead of os.SEEK_FOO 2016-04-13 05:25:23 +00:00
sendfile_linux.go net: make unexposed methods start with lowercase letters 2016-03-17 21:43:41 +00:00
sendfile_solaris.go all: use new io.SeekFoo constants instead of os.SEEK_FOO 2016-04-13 05:25:23 +00:00
sendfile_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sendfile_test.go net: mirror Tom Sawyer in the net package for tests 2016-04-12 22:22:36 +00:00
sendfile_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
server_test.go net: Make Listen(":port") use IPv6 when IPv4 is not supported. 2015-09-05 02:31:22 +00:00
sock_bsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sock_cloexec.go
sock_linux.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sock_plan9.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sock_posix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
sock_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sock_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockopt_bsd.go all: single space after period. 2016-03-02 00:13:47 +00:00
sockopt_linux.go all: single space after period. 2016-03-02 00:13:47 +00:00
sockopt_plan9.go net: deduplicate TCP socket code 2016-03-03 04:23:59 +00:00
sockopt_posix.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockopt_solaris.go all: single space after period. 2016-03-02 00:13:47 +00:00
sockopt_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockopt_windows.go all: single space after period. 2016-03-02 00:13:47 +00:00
sockoptip_bsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockoptip_linux.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockoptip_posix.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockoptip_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sockoptip_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
sys_cloexec.go
tcpsock_plan9.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
tcpsock_posix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
tcpsock_test.go net: make use of internal/testenv package 2016-04-14 06:13:45 +00:00
tcpsock_unix_test.go net: prevent spurious TCP connection setup notification on darwin 2016-03-16 03:09:28 +00:00
tcpsock.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
tcpsockopt_darwin.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_dragonfly.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_openbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_plan9.go net: deduplicate TCP socket code 2016-03-03 04:23:59 +00:00
tcpsockopt_posix.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_stub.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_unix.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tcpsockopt_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
timeout_test.go net: make two tests not parallel 2016-04-12 21:07:58 +00:00
udpsock_plan9.go net: fix plan9 after context change, propagate contexts more 2016-04-18 16:30:03 +00:00
udpsock_posix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
udpsock_test.go net: cache IPv6 zone information for applications using IPv6 link-local address 2016-04-15 01:45:27 +00:00
udpsock.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
unixsock_plan9.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
unixsock_posix.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00
unixsock_test.go net, runtime: skip flaky tests on OpenBSD 2016-04-06 19:28:24 +00:00
unixsock.go net: context plumbing, add Dialer.DialContext 2016-04-15 22:48:12 +00:00