Actions
Bug #16204
closedLots of new inventories leads to "can't get LDAP connection from pool" exception
Pull Request:
Severity:
Major - prevents use of part of Rudder | no simple workaround
UX impact:
User visibility:
Operational - other Techniques | Rudder settings | Plugins
Effort required:
Priority:
70
Name check:
To do
Fix check:
To do
Regression:
Description
We have observed on several systems under load (lots of new inventories), for Rudder 5.0 up to 5.0.14 at least, the following exception:
[2019-10-23 21:01:30] INFO inventory-processing - API got new inventory file 'smenode-xxxx-...-yyyy-zzzz.ocs' with signature available: process. [2019-10-23 21:01:30] INFO inventory-processing - API got new inventory file 'smenode-xxxx-...-yyyy-zzzz.ocs' with signature available: process. [2019-10-23 21:01:30] INFO inventory-processing - Watch new inventory file 'smenode-xxxx-...-yyyy-zzzz.ocs' with signature available: process. [2019-10-23 21:01:31] ERROR com.normation.ldap.sdk.RWPooledSimpleAuthConnectionProvider - Can't get a new LDAP connection com.unboundid.ldap.sdk.LDAPException: No connections are currently available in the connection pool. at com.unboundid.ldap.sdk.LDAPConnectionPool.getConnection(LDAPConnectionPool.java:1806) at com.normation.ldap.sdk.RWPooledSimpleAuthConnectionProvider.newConnection(LDAPConnectionProvider.scala:404) at com.normation.ldap.sdk.RWPooledSimpleAuthConnectionProvider.newConnection(LDAPConnectionProvider.scala:395) at com.normation.ldap.sdk.PooledConnectionProvider.getInternalConnection(LDAPConnectionProvider.scala:277) at com.normation.ldap.sdk.PooledConnectionProvider.getInternalConnection$(LDAPConnectionProvider.scala:277) at com.normation.ldap.sdk.RWPooledSimpleAuthConnectionProvider.getInternalConnection(LDAPConnectionProvider.scala:395) at com.normation.ldap.sdk.LDAPConnectionProvider.withCon(LDAPConnectionProvider.scala:145) at com.normation.ldap.sdk.LDAPConnectionProvider.withCon$(LDAPConnectionProvider.scala:143) at com.normation.ldap.sdk.RWPooledSimpleAuthConnectionProvider.withCon(LDAPConnectionProvider.scala:395) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680) at java.lang.Thread.run(Thread.java:748)
The exception is not fatal, but the corresponding inventories are not processed.
Actions