We upgraded a number of non-production servers starting last night to Tomcat 9.0.93 from 9.0.91. We are now receiving complaints from application teams with issues around: java.sql.SQLException: ResultSet closed.
Here are some stack-traces. 1. 024-08-28 04:01:37,081 [gaRULES-ShutDownTask] [ STANDARD] [ ] [ ] (l.access.RDBPageResultPackager) ERROR - Problem getting database results com.pega.pegarules.pub.database.ConnectionException: Database-General Problem processing list results 0 ResultSet closed. DatabaseException caused by prior exception: java.sql.SQLException: ResultSet closed. | SQL Code: 0 | SQL State: null at com.pega.pegarules.data.internal.access.ExceptionInformation.createAppropriateExceptionDueToDBFailure(ExceptionInformation.java:379) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:364) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageDataStoreResults(RDBPageResultPackager.java:439) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageResults(RDBPageResultPackager.java:462) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.listWithResultPackager(Lister.java:426) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.list(Lister.java:196) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DBQueryExecutor.executeRDB(DBQueryExecutor.java:126) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DBQueryExecutor.executeRDB(DBQueryExecutor.java:73) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:3234) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:3214) ~[prprivate-data.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.deleteUsageDetails(RuleUsageImpl.java:464) ~[prprivate-monitor.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.updateSnapshot(RuleUsageImpl.java:278) ~[prprivate-monitor.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl$1.run(RuleUsageImpl.java:382) ~[prprivate-monitor.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1381) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1124) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:931) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:897) ~[prprivate-session.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.updateSnapshot(RuleUsageImpl.java:380) ~[prprivate-monitor.jar:?] at com.pega.pegarules.session.internal.engineinterface.shutdown.shutdowntasks.RuleUsageSnapshotTask.exec(RuleUsageSnapshotTask.java:41) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.engineinterface.shutdown.shutdowntasks.IParallelShutdownTask.run(IParallelShutdownTask.java:43) ~[prprivate-session.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?] at java.lang.Thread.run(Thread.java:834) ~[?:?] Caused by: java.sql.SQLException: ResultSet closed. at org.apache.tomcat.jdbc.pool.StatementFacade$ResultSetProxy.invoke(StatementFacade.java:210) ~[tomcat-jdbc.jar:?] at com.sun.proxy.$Proxy6.getType(Unknown Source) ~[?:?] at com.pega.pegarules.data.internal.store.rdbms.DatabaseResultSet$DatabaseResultSetBuilder.build(DatabaseResultSet.java:636) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.store.DatabasePreparedStatementImpl.getResultSet(DatabasePreparedStatementImpl.java:1053) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.store.DatabasePreparedStatementImpl.getResultSet(DatabasePreparedStatementImpl.java:221) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageDataStoreResults(RDBPageResultPackager.java:317) ~[prprivate-data.jar:?] ... 22 more 2024-08-28 04:01:37,082 [gaRULES-ShutDownTask] [ STANDARD] [ ] [ ] ( internal.access.Lister) ERROR - There was a problem with the database when getting a list: com.pega.pegarules.pub.database.ConnectionException: Database-General Problem processing list results 0 ResultSet closed. DatabaseException caused by prior exception: java.sql.SQLException: ResultSet closed. | SQL Code: 0 | SQL State: null at com.pega.pegarules.data.internal.access.ExceptionInformation.createAppropriateExceptionDueToDBFailure(ExceptionInformation.java:379) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:364) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageDataStoreResults(RDBPageResultPackager.java:439) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.RDBPageResultPackager.packageResults(RDBPageResultPackager.java:462) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.listWithResultPackager(Lister.java:426) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.list(Lister.java:196) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DBQueryExecutor.executeRDB(DBQueryExecutor.java:126) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DBQueryExecutor.executeRDB(DBQueryExecutor.java:73) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:3234) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:3214) ~[prprivate-data.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.deleteUsageDetails(RuleUsageImpl.java:464) ~[prprivate-monitor.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.updateSnapshot(RuleUsageImpl.java:278) ~[prprivate-monitor.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl$1.run(RuleUsageImpl.java:382) ~[prprivate-monitor.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.performTargetActionWithLock(PRSessionProviderImpl.java:1381) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:1124) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:931) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.PRSessionProviderImpl.doWithRequestorLocked(PRSessionProviderImpl.java:897) ~[prprivate-session.jar:?] at com.pega.pegarules.monitor.internal.context.RuleUsageImpl.updateSnapshot(RuleUsageImpl.java:380) ~[prprivate-monitor.jar:?] at com.pega.pegarules.session.internal.engineinterface.shutdown.shutdowntasks.RuleUsageSnapshotTask.exec(RuleUsageSnapshotTask.java:41) ~[prprivate-session.jar:?] at com.pega.pegarules.session.internal.engineinterface.shutdown.shutdowntasks.IParallelShutdownTask.run(IParallelShutdownTask.java:43) ~[prprivate-session.jar:?] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?] at java.lang.Thread.run(Thread.java:834) ~[?:?] Caused by: java.sql.SQLException: ResultSet closed. 2. AK AMIT KUMAR Work notes* 2024-08-28 05:51:36 Error logs: Caused by: com.pega.pegarules.pub.database.ConnectionException: Database-General Problem processing list results 0 ResultSet closed. DatabaseException caused by prior exception: java.sql.SQLException: ResultSet closed. | SQL Code: 0 | SQL State: null at com.pega.pegarules.data.internal.access.ExceptionInformation.createAppropriateExceptionDueToDBFailure(ExceptionInformation.java:379) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.ExceptionInformation.createExceptionDueToDBFailure(ExceptionInformation.java:364) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.NativeSQLResultSetPackagerImpl.packageResults(NativeSQLResultSetPackagerImpl.java:157) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.listWithResultPackager(Lister.java:413) ~[prprivate-data.jar:?] at com.pega.pegarules.data.internal.access.Lister.list(Lister. and then RG Rajesh Gandham Work notes* 2024-08-28 15:14:46 Below is the error message from the logs 28-Aug-2024 05:13:08.479 WARNING [Thread-34] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [prweb] appears to have started a thread named [ServiceRegistryBasedDiscovery] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) java.lang.Thread.run(Thread.java:750) 28-Aug-2024 05:13:08.503 WARNING [Thread-34] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [dropbox] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) java.lang.Object.wait(Object.java:502) java.util.TimerThread.mainLoop(Timer.java:526) java.util.TimerThread.run(Timer.java:505) 28-Aug-2024 05:13:08.504 WARNING [Thread-34] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [dropbox] appears to have started a thread named [oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) oracle.jdbc.driver.BlockSource$ThreadedCachingBlockSource$BlockReleaser.run(BlockSource.java:331) 28-Aug-2024 05:13:08.504 WARNING [Thread-34] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [dropbox] appears to have started a thread named [InterruptTimer] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread: java.lang.Object.wait(Native Method) java.util.TimerThread.mainLoop(Timer.java:552) java.util.TimerThread.run(Timer.java:505) Any insight to the cause would be appreciated. Thank you kindly. Dream * Excel * Explore * Inspire Jon McAlexander Senior Infrastructure Engineer Asst. Vice President He/His Middleware Product Engineering Enterprise CIO | EAS | Middleware | Infrastructure Solutions 8080 Cobblestone Rd | Urbandale, IA 50322 MAC: F4469-010 Tel 515-988-2508 | Cell 515-988-2508 jonmcalexan...@wellsfargo.com<mailto:jonmcalexan...@wellsfargo.com> This message may contain confidential and/or privileged information. If you are not the addressee or authorized to receive this for the addressee, you must not use, copy, disclose, or take any action based on this message or any information herein. If you have received this message in error, please advise the sender immediately by reply e-mail and delete this message. Thank you for your cooperation.