Comment 1 for bug 1235027

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to swift (master)

Reviewed: https://review.openstack.org/49739
Committed: http://github.com/openstack/swift/commit/6607beab0dc8043251b490471761fa2dd85f2816
Submitter: Jenkins
Branch: master

commit 6607beab0dc8043251b490471761fa2dd85f2816
Author: Peter Portante <email address hidden>
Date: Fri Oct 4 08:04:42 2013 -0400

    Don't apply timeout to Pool.get operation (leaks)

    The connection timeout to a memcache server is performed by using the
    "with Timeout()" construct over the sock.connect() call in the
    .create() method. In addition, the same construct was being applied to
    the Pool.get() call in ._get_conns().

    If the maximum number of connections was already created, and the
    Pool.get() called took longer than the connect timeout, then the error
    handling path would add a place holder to the connection
    pool. Eventlet's Pool class allows for additional items to be added to
    the pool, over and above the max_size setting. This additional place
    holder will eventually be pulled and a new connection created to take
    its place.

    The fix is to remove the timeout construct in the _get_conns() method.

    In addition, we also apply the unit test patch mentioned in the review
    comments for Patch Set 6 of https://review.openstack.org/45134,
    located at http://paste.openstack.org/show/47288/.

    Fixes bug 1235027

    Change-Id: I786cabefe3e8ddf7d92feb7ebc7cfb613d60a1da
    Signed-off-by: Peter Portante <email address hidden>