- 
    Type:Bug 
- 
    Resolution: Done
- 
    Priority:Major - P3 
- 
    Affects Version/s: 2.6
- 
    Component/s: None
- 
    None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
- 
        None
_socket_semaphore.acquire() is called in Pool.get_socket() before we attempt to pop a socket from the set of sockets or create a new socket. Unfortunately, if __check fails and/or we can't create a new socket we don't call _socket_semaphore.release(). This causes all application threads to hang once the semaphore's value reaches 0.
https://groups.google.com/forum/#!topic/mongodb-user/l0PY8zsjZ3c