jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Julian Reschke (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (JCR-3592) Retry fails when updating stream
Date Wed, 08 May 2013 07:25:16 GMT

    [ https://issues.apache.org/jira/browse/JCR-3592?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13651679#comment-13651679
] 

Julian Reschke commented on JCR-3592:
-------------------------------------

Is this really about 2.5? If so, please try with the latest stable branch (2.6).
                
> 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

Mime
View raw message