Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(14)

Issue 8836002: Revert 113300 - Revert of 112134 of Revert 112130 - Close idle connections / SPDY sessions when n... (Closed)

Created:
9 years ago by ramant (doing other things)
Modified:
9 years ago
CC:
chromium-reviews, cbentzel+watch_chromium.org, darin-cc_chromium.org, Paweł Hajdan Jr.
Visibility:
Public.

Description

Revert 113305 - Revert 113300 - Revert of 112134 of Revert 112130 - Close idle connections / SPDY sessions when needed. Due to the idle connection state being held by different socket pools, it's possible for one socket pool to hold an idle socket in a lower layer socket pool. From the lower level socket pool's perspective, the socket is being "actively" used. From the higher socket pool's (including SpdySession, which is more of a connection manager) perspective, the connection is idle and can be closed if we have hit a limit. Normally this isn't a big deal, except when we have a lot of idle SPDY connections and are connecting via a proxy, so we have low connection limits through the proxy server. We address this problem by allowing lower-level socket pools to tell higher level socket pools to close a socket. Fixed ASAN test failures by removing .Times(1) and .Times(2) from CloseMultipleIdleSocketsHeldByLayeredPoolWhenNeeded unittest (this removes the tests relying on the order of std::set in CloseOneIdleConnectionInLayeredPool). ASAN is prob ably causing the memory allocator to allocate the pools differently. The std::set is ordered by LayeredPool* which is the address of the LayeredPool (willchan). Added NET_EXPORT for layered_pool class defintion to fix windows shared compile. BUG=62364, 92244, 105839 TEST=none Review URL: http://codereview.chromium.org/8340012 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/8745007 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/8803019 TBR=rtenneti@chromium.org Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=113305 TBR=willchan@chromium.org Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=113405

Patch Set 1 #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+662 lines, -47 lines) Patch
M net/http/http_network_transaction_unittest.cc View 1 chunk +178 lines, -0 lines 0 comments Download
M net/http/http_proxy_client_socket_pool.h View 4 chunks +11 lines, -1 line 0 comments Download
M net/http/http_proxy_client_socket_pool.cc View 4 chunks +34 lines, -2 lines 0 comments Download
M net/socket/client_socket_handle.h View 2 chunks +5 lines, -0 lines 0 comments Download
M net/socket/client_socket_handle.cc View 3 chunks +19 lines, -0 lines 0 comments Download
M net/socket/client_socket_pool.h View 3 chunks +21 lines, -0 lines 2 comments Download
M net/socket/client_socket_pool_base.h View 10 chunks +38 lines, -9 lines 0 comments Download
M net/socket/client_socket_pool_base.cc View 9 chunks +68 lines, -13 lines 0 comments Download
M net/socket/client_socket_pool_base_unittest.cc View 13 chunks +167 lines, -18 lines 0 comments Download
M net/socket/socks_client_socket_pool.h View 4 chunks +11 lines, -1 line 0 comments Download
M net/socket/socks_client_socket_pool.cc View 4 chunks +26 lines, -1 line 0 comments Download
M net/socket/ssl_client_socket_pool.h View 4 chunks +10 lines, -0 lines 0 comments Download
M net/socket/ssl_client_socket_pool.cc View 4 chunks +33 lines, -0 lines 0 comments Download
M net/socket/transport_client_socket_pool.h View 2 chunks +6 lines, -0 lines 0 comments Download
M net/socket/transport_client_socket_pool.cc View 2 chunks +12 lines, -0 lines 0 comments Download
M net/spdy/spdy_session.h View 3 chunks +6 lines, -1 line 0 comments Download
M net/spdy/spdy_session.cc View 3 chunks +17 lines, -1 line 0 comments Download

Messages

Total messages: 6 (0 generated)
ramant (doing other things)
Added NET_EXPORT to LayeredPool class to fix win shared build. I am at fault for ...
9 years ago (2011-12-07 03:36:38 UTC) #1
willchan no longer on Chromium
LGTM On Tue, Dec 6, 2011 at 7:36 PM, <rtenneti@chromium.org> wrote: > Reviewers: willchan, > ...
9 years ago (2011-12-07 03:39:15 UTC) #2
willchan no longer on Chromium
http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h File net/socket/client_socket_pool.h (right): http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h#newcode34 net/socket/client_socket_pool.h:34: class NET_EXPORT LayeredPool { Wait, is this only used ...
9 years ago (2011-12-07 03:40:56 UTC) #3
ramant (doing other things)
SpdySession and HttpProxyClientSocketPool use it. http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h File net/socket/client_socket_pool.h (right): http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h#newcode34 net/socket/client_socket_pool.h:34: class NET_EXPORT LayeredPool { ...
9 years ago (2011-12-07 03:47:52 UTC) #4
willchan no longer on Chromium
Those are within the same library and don't need NET_EXPORT. On Tue, Dec 6, 2011 ...
9 years ago (2011-12-07 03:49:29 UTC) #5
ramant (doing other things)
9 years ago (2011-12-07 03:57:37 UTC) #6
willchan and I had talked. We will go with NET_EXPORT and will talk to rvargas
about the right fix.

On 2011/12/07 03:49:29, willchan wrote:
> Those are within the same library and don't need NET_EXPORT.
> 
> On Tue, Dec 6, 2011 at 7:47 PM, <mailto:rtenneti@chromium.org> wrote:
> 
> > SpdySession and HttpProxyClientSocketPool use it.
> >
> >
> >
> > http://codereview.chromium.**org/8836002/diff/1/net/socket/**
> >
>
client_socket_pool.h<http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h>
> > File net/socket/client_socket_pool.**h (right):
> >
> > http://codereview.chromium.**org/8836002/diff/1/net/socket/**
> >
>
client_socket_pool.h#newcode34<http://codereview.chromium.org/8836002/diff/1/net/socket/client_socket_pool.h#newcode34>
> > net/socket/client_socket_pool.**h:34: class NET_EXPORT LayeredPool {
> > On 2011/12/07 03:40:56, willchan wrote:
> >
> >> Wait, is this only used in tests? Perhaps it should be
> >>
> > NET_EXPORT_PRIVATE?
> >
> > It is used by SpdySession, HttpProxyClientSocketPool
> >
> > ./http/http_proxy_client_**socket_pool.h:171:    : public
> > ClientSocketPool, public LayeredPool {
> > ./spdy/spdy_session.h:50:                               public
> > LayeredPool {
> >
> >
>
http://codereview.chromium.**org/8836002/%3Chttp://codereview.chromium.org/88...>
> >

Powered by Google App Engine
This is Rietveld 408576698