Vertica jdbc connection freezes sometimes on 'Connection.commit()' call
Hi, we're experiencing problems using Vertica jdbc driver version 6.0.0 Sometimes, when calling 'connection.commit()' method, whole application freezes. 100% utilization of the CPU of the java process can be spotted then. It seems, that there is some unfinished loop in the internal Vertica jdbc code. See the stacktrace: ------------------------------------------------- java.lang.Thread.State: RUNNABLE at com.vertica.dataengine.VResultSet.close(Unknown Source) at com.vertica.core.VConnection.executeTransactionStatement(Unknown Source) - locked <0x000000074be88028> (a com.vertica.core.VConnection) at com.vertica.core.VConnection.commit(Unknown Source) - locked <0x000000074be88028> (a com.vertica.core.VConnection) at com.vertica.jdbc.SConnection.commit(Unknown Source) at org.jetel.connection.jdbc.specific.conn.BasicSqlConnection.commit(BasicSqlConnection.java:229) at org.jetel.connection.jdbc.SQLDataParser.close(SQLDataParser.java:376) at org.jetel.component.DBInputTable.processSqlQuery(DBInputTable.java:368) at org.jetel.component.DBInputTable.execute(DBInputTable.java:301) at org.jetel.graph.Node.run(Node.java:493) at java.lang.Thread.run(Thread.java:744) ------------------------------------------------- Problem seeems to be in the com.vertica.core.VConnection.executeTransactionStatement method (as I wrote above, there is IMHO the unfinished loop) The problem is very hard to reproduce (it happens once in hunderts calls) Thanks for your quick response.
0
Comments
The release note states
This is fixed in 6.0SP1
Regards
that is another issue.
Please, read my report above - I have problem, that causes the whole process FREEZE and that causes 100% CPU utilization, because of unfinished loop in internal vertica jdbc code.
Furthermore, I do not run PreparedStatement.executeBatch(), I read data from the ResultSet.
Regards
1. Run some select - iterate over the ResultSet - you must get the exception during the iterating - in our environment, we sometimes get SocketException 'connection reset'
2. call 'commit' method on the connection right after catching the exception
Following these steps, you should be able to reproduce it. It seems, that when getting the exception, some internal flag in the vertica jdbc code is switched badly and the cycle in com.vertica.core.VConnection.executeTransactionStatement iterates forever.
What patchset are you on for v6.0.0? Checking on my side, there has been several bug fixes and changes in that part of the code you are hittng. Can you apply the latest patchset if you are not already on it?
Thanks
Should I try to reproduce it on vertsion 7.0.0?
issue command,
select version():
Regards
do we understand each other?
I'm having problems with JDBC driver - this is client (not server) code... Server version has nothing to do with this.
Could you please show my report to someone from your engeneering? This is rather client JDBC driver problem - there is unfinished loop in your JDBC driver code - that is the problem - really, server version has little to do with it.
Regards