You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Todd Pagni (JIRA)" <ji...@apache.org> on 2013/05/07 21:05:15 UTC
[jira] [Created] (JCR-3592) Retry fails when updating stream
Todd Pagni created JCR-3592:
-------------------------------
Summary: Retry fails when updating stream
Key: JCR-3592
URL: https://issues.apache.org/jira/browse/JCR-3592
Project: Jackrabbit Content Repository
Issue Type: Bug
Components: jackrabbit-core
Affects Versions: 2.5
Reporter: Todd Pagni
DbDataStore.addRecord executes a few update statements. We are getting deadlocks when the update statements are executed (different issue), which cause the update statements to fail. When the update fails, it should be retried in RetryManager.doTry. When the failure occurs due to the deadlock, we do see a retry, but they retry fails for the (UPDATE DATASTORE SET DATA=? WHERE ID=?) query because the stream has already been read. See error below:
com.microsoft.sqlserver.jdbc.SQLServerException: The stream value is not the specified length. The specified length was 6,985, the actual length is 0.
at com.microsoft.sqlserver.jdbc.TDSWriter.error(IOBuffer.java:2224)
at com.microsoft.sqlserver.jdbc.TDSWriter.writeStream(IOBuffer.java:2146)
at com.microsoft.sqlserver.jdbc.TDSWriter.writeRPCInputStream(IOBuffer.java:2958)
at com.microsoft.sqlserver.jdbc.DTV$SendByRPCOp.execute(dtv.java:546)
at com.microsoft.sqlserver.jdbc.DTV.executeOp(dtv.java:749)
at com.microsoft.sqlserver.jdbc.DTV.sendByRPC(dtv.java:790)
at com.microsoft.sqlserver.jdbc.Parameter.sendByRPC(Parameter.java:645)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.sendParamsByRPC(SQLServerPreparedStatement.java:457)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doPrepExec(SQLServerPreparedStatement.java:612)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:384)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:338)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:185)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:160)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.execute(SQLServerPreparedStatement.java:320)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.execute(ConnectionHelper.java:473)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyExec(ConnectionHelper.java:303)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$1.call(ConnectionHelper.java:285)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$1.call(ConnectionHelper.java:281)
at org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:493)
at org.apache.jackrabbit.core.util.db.ConnectionHelper.exec(ConnectionHelper.java:281)
at org.apache.jackrabbit.core.data.db.DbDataStore.addRecord(DbDataStore.java:356)
at org.apache.jackrabbit.core.value.BLOBInDataStore.getInstance(BLOBInDataStore.java:121)
at org.apache.jackrabbit.core.value.InternalValue.getBLOBFileValue(InternalValue.java:629)
at org.apache.jackrabbit.core.value.InternalValue.create(InternalValue.java:384)
at org.apache.jackrabbit.core.value.InternalValueFactory.create(InternalValueFactory.java:102)
at org.apache.jackrabbit.core.value.ValueFactoryImpl.createValue(ValueFactoryImpl.java:121)
at org.apache.jackrabbit.core.value.ValueFactoryImpl.createValue(ValueFactoryImpl.java:110)
at org.apache.jackrabbit.core.NodeImpl.setProperty(NodeImpl.java:3404)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira