Yikes, that's no good.  Did you test this using the first revision of
the fix or the second (changed to use 'setIdleDuration' in
ManagedClientConnection)?

Think it'd be possible to isolate the problem to a unit test?

Sam

On Mon, Jun 30, 2008 at 10:33 AM, Paul Lindner <[EMAIL PROTECTED]> wrote:
>
> I tested this code using production traffic and the results are not so good.
>  Ended up with a connection/memory leak.  The jmap histogram of a server in
> this bad state is attached.
>
> Also, I had some issues with one host, it used a keepalive with a timeout=1.
>  It appears that the route pool filled up with connections.  It also appears
> that when it closes an expired free connection that it is not released back
> into the pool...  Here's the debug output showing the final connection
> allocation and the attempt to get a connection from a full pool.  It appears
> that Freeing the connection puts it back on the Idle pool, but it becomes
> inaccessible for some reason.
>
>
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager  -
> ThreadSafeClientConnManager.getConnection:
> HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com], timeout =
> 50002008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Getting free connection
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Closing expired free
> connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.DefaultClientConnection  - Connection closed
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - No free connections
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Available capacity: 1
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Creating new connection
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]]
> 2008-06-29 19:22:27,761 [http-80-55] DEBUG
> org.apache.http.impl.conn.DefaultClientConnection  - Connection closed
> 2008-06-29 19:22:27,818 [http-80-55] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Freeing connection
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:27,818 [http-80-55] DEBUG
> org.apache.http.impl.conn.IdleConnectionHandler  - Adding connection at:
> 12147925478182008-06-29 19:22:27,818
> [http-80-55] DEBUG org.apache.http.impl.conn.tsccm.ConnPoolByRoute  -
> Notifying no-one, there are no waiting threads
>
> -----------------------------------------------
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager  -
> ThreadSafeClientConnManager.getConnection:
> HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com], timeout = 5000
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Getting free connection
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Closing expired free
> connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.DefaultClientConnection  - Connection closed
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - No free connections
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Available capacity: 0
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,274 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Need to wait for
> connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-79] DEBUG
> org.apache.http.impl.conn.DefaultClientConnection  - Connection shut down
> 2008-06-29 19:22:29,331 [http-80-79] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Freeing connection
> [HttpRoute[{}->http://ads.socialmedia.com]][null]
> 2008-06-29 19:22:29,331 [http-80-79] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Notifying thread waiting
> on any pool
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - No free connections
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Available capacity: 0
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Need to wait for
> connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - No free connections
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Available capacity: 0
> [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
> 2008-06-29 19:22:29,331 [http-80-26] DEBUG
> org.apache.http.impl.conn.tsccm.ConnPoolByRoute  - Need to wait for
> connection [HttpRoute[{}->http://ayi.h5.snapinteractiveapps.com]][null]
>
>
>
> Size    Count   Class description
> -------------------------------------------------------
> 684164112       558913  byte[]
> 492584016       2134710 char[]
> 209551728       4365661 java.util.concurrent.locks.ReentrantLock$NonfairSync
> 209517696       4364952 java.util.concurrent.ConcurrentHashMap$Segment
> 144470200       4364956 java.util.concurrent.ConcurrentHashMap$HashEntry[]
> 101379880       2534497 java.lang.String
> 65693112        628849  java.lang.Object[]
> 47067200        588340  com.friend.data.UserAppBean
> 41467120        272810  java.util.concurrent.ConcurrentHashMap$Segment[]
> 37081896        272661  org.apache.catalina.session.StandardSession
> 32830608        683971  java.util.HashMap$Entry
> 30965200        275343  java.util.Hashtable$Entry[]
> 24135760        603394  java.util.ArrayList
> 22612816        115641  java.util.HashMap$Entry[]
> 19871936        620998  java.util.Date
> 19642320        272810  java.util.concurrent.ConcurrentHashMap
> 18644208        224156  int[]
> 17608256        275129  java.util.Hashtable
> 14569296        303527  java.util.concurrent.ConcurrentHashMap$HashEntry
> 13089600        272700  java.beans.PropertyChangeSupport
> 13054072        97229   * ConstMethodKlass
> 12340480        154256  org.apache.tomcat.util.buf.MessageBytes
> 11679960        97229   * MethodKlass
> 10593856        165529  org.apache.tomcat.util.buf.ByteChunk
> 10529104        10652   * ConstantPoolKlass
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to