[jboss-jira] [JBoss JIRA] (AG-114) Connection failure stack traces are confusing

Luis Barreiro (Jira) issues at jboss.org
Tue Apr 2 10:52:47 EDT 2019


     [ https://issues.jboss.org/browse/AG-114?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Luis Barreiro closed AG-114.
----------------------------
    Resolution: Done


Thanks!

> Connection failure stack traces are confusing
> ---------------------------------------------
>
>                 Key: AG-114
>                 URL: https://issues.jboss.org/browse/AG-114
>             Project: Agroal
>          Issue Type: Bug
>          Components: pool
>    Affects Versions: 1.4
>            Reporter: David Lloyd
>            Assignee: David Lloyd
>            Priority: Major
>             Fix For: 1.5
>
>
> The stack traces for failed connections are not correct due to incorrect handling of exceptions thrown from {{Future.get()}}.  They include intermediate causes that are not relevant to the problem or any debugging effort.
> Here's an example too-long stack trace:
> {noformat}
> java.sql.SQLException: Exception while creating new connection
> 	at io.agroal.pool.ConnectionPool.handlerFromSharedCache(ConnectionPool.java:225)
> 	at io.agroal.pool.ConnectionPool.getConnection(ConnectionPool.java:146)
> 	at io.agroal.pool.DataSource.getConnection(DataSource.java:61)
> 	at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122)
> 	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180)
> 	at org.hibernate.resource.transaction.backend.jta.internal.DdlTransactionIsolatorJtaImpl.<init>(DdlTransactionIsolatorJtaImpl.java:59)
> 	... 20 more
> Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Exception while creating new connection
> 	at java.util.concurrent.FutureTask.report(FutureTask.java:122)
> 	at java.util.concurrent.FutureTask.get(FutureTask.java:192)
> 	at io.agroal.pool.ConnectionPool.handlerFromSharedCache(ConnectionPool.java:193)
> 	... 25 more
> Caused by: java.lang.RuntimeException: Exception while creating new connection
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:357)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:337)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:63)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> 	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:481)
> 	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
> Caused by: org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-197]
> 	at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:451)
> 	at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:332)
> 	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
> 	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
> 	at org.h2.Driver.connect(Driver.java:69)
> 	at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:178)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:348)
> 	... 8 more
> Caused by: java.net.ConnectException: Connection refused
> 	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:5193)
> 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
> 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
> 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
> 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
> 	at java.net.Socket.connect(Socket.java:589)
> 	at org.h2.util.NetUtils.createSocket(NetUtils.java:103)
> 	at org.h2.util.NetUtils.createSocket(NetUtils.java:83)
> 	at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:114)
> 	at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:447)
> 	... 14 more
> {noformat}
> Here's the preferred output:
> {noformat}
> org.h2.jdbc.JdbcSQLException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-197]
> 	at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:451)
> 	at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:332)
> 	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
> 	at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
> 	at org.h2.Driver.connect(Driver.java:69)
> 	at io.agroal.pool.ConnectionFactory.createConnection(ConnectionFactory.java:178)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:355)
> 	at io.agroal.pool.ConnectionPool$CreateConnectionTask.call(ConnectionPool.java:344)
> 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
> 	at io.agroal.pool.util.PriorityScheduledExecutor.beforeExecute(PriorityScheduledExecutor.java:63)
> 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
> 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> 	at java.lang.Thread.run(Thread.java:748)
> 	at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:481)
> 	at com.oracle.svm.core.posix.thread.PosixJavaThreads.pthreadStartRoutine(PosixJavaThreads.java:193)
> Caused by: java.net.ConnectException: Connection refused
> 	at java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:5193)
> 	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
> 	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
> 	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
> 	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
> 	at java.net.Socket.connect(Socket.java:589)
> 	at org.h2.util.NetUtils.createSocket(NetUtils.java:103)
> 	at org.h2.util.NetUtils.createSocket(NetUtils.java:83)
> 	at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:114)
> 	at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:447)
> 	... 14 more
> {noformat}



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jboss-jira mailing list