Two bugs:
- minPoolSize should mean "the number of inactive clients to keep cached in the pool", so when a client is pushed, if there are already minPoolSize clients in the pool, the oldest should be freed. Instead, minPoolSize is compared to pool->size, which is the total number of active or inactive clients. So if there are 10 clients total and minPoolSize is 3, all pushed clients are freed, not just clients in excess of the first 3.
- The pool is supposed to be a LIFO for memory coherence (
CDRIVER-1196) but it destroys the most-recently used client, not the least-recently used.
Discovered investigating this message:
https://groups.google.com/forum/#!topic/mongodb-user/FmQHSSJreTA
- related to
-
CDRIVER-2389 Deprecate minPoolSize and log a warning if it's used
- Closed