Issues
- Resource leak in DatasourceConnectionPool 5.3.10LDEV-4358Resolved issue: LDEV-4358Michael Offner
- .cfconfig fails to import custom-tag and component mappingsLDEV-4221Resolved issue: LDEV-4221Michael Offner
- NPE getBaseComponentPage, CFconfig lucee.additional.config=trueLDEV-4189Resolved issue: LDEV-4189Pothys - MitrahSoft
- java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.JPEGCodecLDEV-4163Pothys - MitrahSoft
- NPE in CFMLFactoryImpl.getPageContextImplLDEV-4162Resolved issue: LDEV-4162Michael Offner
- Regression - updating lucee failed to deploy the cfc files to the context directory if those files are existsLDEV-4043Zac Spitzer
6 of 6
Resource leak in DatasourceConnectionPool 5.3.10
Fixed
Description
Environment
None
Details
Assignee
Michael OffnerMichael OffnerReporter
Zac SpitzerZac SpitzerPriority
CriticalFix versions
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Details
Details
Assignee
Michael Offner
Michael OffnerReporter
Zac Spitzer
Zac SpitzerPriority
Fix versions
New Issue warning screen
Before you create a new Issue, please post to the mailing list first https://dev.lucee.org
Once the issue has been verified, one of the Lucee team will ask you to file an issue
Created 4 January 2023 at 09:02
Updated 16 June 2023 at 15:43
Resolved 16 June 2023 at 15:43
Activity
Show:
Michael Offner9 June 2023 at 17:43
applied for 5.4
reverted for 5.3 because at this point we only to security updates on 5.3
Lucee 6 uses common pool 2 for connection pooling, so that change does not apply for 6.
Darrell R Taylor6 January 2023 at 21:01
There is a PR for this here:
(from incomplete PR description)
When getDatasourceConnection() decides to create a new connection, it first calls _inc() to increment the connection count. If loadDatasourceConnection() throws a page error, _dec() is called. But if the thread is killed by a timeout _dec() never gets called and so we lose a connection slot. If enough connection slots are lost lucee will not be able to recover when the db comes back.
This changes getDatasourceConnection() so that it only calls _inc() after the connection is successfully opened. This is not a perfect solution since it could allow the ConnectionLimit to be temporarily exceeded.
Also DCStack.isValidEL was doing an incorrect conversion from miliseconds to seconds, that ended up using a timeout of zero. DataSourceSupport.NETWORK_TIMEOUT_IN_SECONDS is set at 10, so a conversion is not needed.