Better accounting of current_size in pools.Pool

Bug #1194393 reported by zhangchao
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Cinder
Fix Released
Undecided
Xiaoxi Chen

Bug Description

Cinder uses an SSHPool to manager all ssh clients. It rewrites method get() to "check if a connection is active before returning it" in module cinder.utils. The code is consistent with eventlet whose version <= 0.9.16. But since 0.9.17, the method get() has been improved for better accounting of current_size.
http://bazaar.launchpad.net/~soren/eventlet/trunk/revision/1072#tests/pools_test.py

Besides, when we using the method get() in Huawei driver, error occured when deleting mutiple volumes at the same time.
We found the current_size(5) was larger than max_size(4).

zhangchao (zhangchao010)
description: updated
zhangchao (zhangchao010)
description: updated
Changed in cinder:
assignee: nobody → xiaoxi_chen (xiaoxi-chen)
status: New → Incomplete
status: Incomplete → Confirmed
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to cinder (master)

Fix proposed to branch: master
Review: https://review.openstack.org/36793

Changed in cinder:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to cinder (master)

Reviewed: https://review.openstack.org/36793
Committed: http://github.com/openstack/cinder/commit/cccf7b92c189bcadf6898019730d84bfd4fe70b6
Submitter: Jenkins
Branch: master

commit cccf7b92c189bcadf6898019730d84bfd4fe70b6
Author: xiaoxi_chen <email address hidden>
Date: Fri Jul 12 16:51:50 2013 +0800

    Refactor SSHPool.get() to use Pool.get()

    In previous code of SSHPool.get(), we pasted the code
    from Pool.get() and check if a connection is active before return
    it.

    However, it's much simpler and cleaner to just call the Pool.get()
    and then check the connection before return. With this,we can free
    ourselves from manually keeping up with code of Pool.get() in
    upstream package eventlet

    As a side effect,this patch fixed bug #1194393 which caused by a
    previous bug in eventlet codes before revision 1072

    fixed bug #1194393
    Change-Id: Ic2bf2fa1ad82cf8669b6c491c955dcab39eb1510

Changed in cinder:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in cinder:
milestone: none → havana-3
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in cinder:
milestone: havana-3 → 2013.2
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.