Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

RRC 2 error loop after entering a requirement with <link&

I entered a requirement into RRC 2.0.0.2 iFix1 with the following content as text within it

<link rel="shortcut icon" type="image/x-icon" href=http://loewen.com/app/system/modules/com.loewen.frontend.main/resources/img/favicon.ico" />

This has caused RRC to not be able to list any of the requirements in the project any more. All of the other artifact types still work fine. The server continues to output error messages, even after a restart. I think the indexing service is choking on the link type contained within the text I entered (specifically the type="image/x-icon" portion)

The partial error log is below.

Any ideas on how to delete this requirement? Or fix the server? Because i can't list requirements, I can't delete them. I've tried the RRC API but can't get it to connect.

<h6>Throwable</h6>
com.hp.hpl.jena.tdb.base.block.BlockException: BlockMgrFile: Bounds exception: C:\Program Files\IBM\RRCS20\server\jfs-rdfindex\GSPO.idn: (1121,1119)<br>
at com.hp.hpl.jena.tdb.base.block.BlockMgrFile.check(BlockMgrFile.java:110)<br>
at com.hp.hpl.jena.tdb.base.block.BlockMgrDirect.get(BlockMgrDirect.java:40)<br>
at com.hp.hpl.jena.tdb.base.block.BlockMgrWrapper.get(BlockMgrWrapper.java:41)<br>
at com.hp.hpl.jena.tdb.base.block.BlockMgrCache.fetchEntry(BlockMgrCache.java:118)<br>
at com.hp.hpl.jena.tdb.base.block.BlockMgrCache.get(BlockMgrCache.java:79)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNodeMgr._get(BPTreeNodeMgr.java:103)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNodeMgr.get(BPTreeNodeMgr.java:96)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.get(BPTreeNode.java:125)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.rebalance(BPTreeNode.java:752)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.internalDelete(BPTreeNode.java:631)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPTreeNode.delete(BPTreeNode.java:216)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.deleteAndReturnOld(BPlusTree.java:272)<br>
at com.hp.hpl.jena.tdb.index.bplustree.BPlusTree.delete(BPlusTree.java:265)<br>
at com.hp.hpl.jena.tdb.index.TupleIndexRecord.delete(TupleIndexRecord.java:69)<br>
at com.hp.hpl.jena.tdb.index.TupleTable.delete(TupleTable.java:84)<br>
at com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeWorker(BulkUpdateHandlerTDB.java:133)<br>
at com.hp.hpl.jena.tdb.graph.BulkUpdateHandlerTDB.removeAll(BulkUpdateHandlerTDB.java:89)<br>
at com.hp.hpl.jena.rdf.model.impl.ModelCom.removeAll(ModelCom.java:306)<br>
at com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider.delete(BaseJenaProvider.java:169)<br>
at com.ibm.team.jfs.rdf.internal.jenatdb.JenaRdfService.delete(JenaRdfService.java:73)<br>
at sun.reflect.GeneratedMethodAccessor199.invoke(Unknown Source)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)<br>
at java.lang.reflect.Method.invoke(Method.java:618)<br>
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)<br>
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)<br>
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)<br>
at $Proxy125.delete(Unknown Source)<br>
at com.ibm.team.jfs.indexing.service.internal.task.TripleIndexAgent.deleteIndex(TripleIndexAgent.java:388)<br>
at com.ibm.team.jfs.indexing.service.internal.task.AbstractIndexAgent.performUpdate(AbstractIndexAgent.java:718)<br>
at com.ibm.team.jfs.indexing.service.internal.task.AbstractIndexAgent.perform(AbstractIndexAgent.java:550)<br>
at com.ibm.team.jfs.indexing.service.internal.task.AbstractIndexAgent.run(AbstractIndexAgent.java:1053)<br>
at java.lang.Thread.run(Thread.java:811)<br>

<h6>Location</h6>
com.ibm.team.jfs.indexing.service.internal.task.TripleIndexAgent.deleteIndex(TripleIndexAgent.java:390), eventPriority: , eventExpiration: 2011-07-11 10:27:48.63)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.createIRE(BatchingRowReceiver.java:417)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.createIRE(BatchingRowReceiver.java:426)
at com.ibm.team.repository.service.internal.dataaccess.AbstractRow.handleExecuteException(AbstractRow.java:326)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.simulatedBatch(BatchingRowReceiver.java:396)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.executeBatch(BatchingRowReceiver.java:269)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.execute(BatchingRowReceiver.java:196)
at com.ibm.team.repository.service.internal.dataaccess.IRowReceiver$IRowReceiverLocator.executePendingChanges(IRowReceiver.java:140)
at com.ibm.team.repository.service.internal.dataaccess.IRowReceiver$IRowReceiverLocator.executePendingChanges(IRowReceiver.java:118)
at com.ibm.team.repository.service.internal.RdbRepositoryDataMediator.preCommitNotify(RdbRepositoryDataMediator.java:1534)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$WriteExclusiveTransaction.completeTransaction(RepositoryDatabase.java:666)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$Transaction.finishTransaction(RepositoryDatabase.java:500)
at com.ibm.team.repository.service.internal.rdb.RepositoryDatabase$1.run(RepositoryDatabase.java:293)
... 50 more
Caused by:
java.sql.SQLException: ORA-01653: unable to extend table JAZZRRC.REPOSITORY_ITEM_STATES by 8192 in tablespace RATIONALRRC

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:213)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:952)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3368)
at com.ibm.team.repository.service.internal.db.jdbcwrappers.stat.PreparedStatementStatWrapper.executeUpdate(PreparedStatementStatWrapper.java:62)
at com.ibm.team.repository.service.internal.db.jdbcwrappers.errlog.PreparedStatementErrLogWrapper.executeUpdate(PreparedStatementErrLogWrapper.java:86)
at com.ibm.team.repository.service.internal.db.jdbcwrappers.leak.PreparedStatementLeakWrapper.executeUpdate(PreparedStatementLeakWrapper.java:58)
at com.ibm.team.repository.service.internal.dataaccess.BatchingRowReceiver.simulatedBatch(BatchingRowReceiver.java:388)
... 58 more
2011-06-27 10:32:13,411 ERROR com.ibm.team.jfs - CRJZS5264E Error executing SPARQL query
com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider$TripleStoreQueryException: com.hp.hpl.jena.shared.BadURIException: Only well-formed absolute URIrefs can be included in RDF/XML output: <view> Code: 45/UNREGISTERED_NONIETF_SCHEME_TREE in SCHEME: The scheme name has a "-" in it, but it does not start in "x-" and the prefix is not known as the prefix of an alternative tree for URI schemes.
at com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider.query(BaseJenaProvider.java:538)
at com.ibm.team.jfs.rdf.internal.jenatdb.JenaQueryService.performQuery(JenaQueryService.java:439)
at com.ibm.team.jfs.rdf.internal.jenatdb.JenaQueryService.perform_POST(JenaQueryService.java:230)
at com.ibm.team.repository.service.TeamRawService.service(TeamRawService.java:90)
at sun.reflect.GeneratedMethodAccessor145.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy155.service(Unknown Source)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.doRestService(AbstractTeamServerServlet.java:879)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest2(AbstractTeamServerServlet.java:1768)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.handleRequest(AbstractTeamServerServlet.java:1642)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.access$0(AbstractTeamServerServlet.java:1627)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet$1.service(AbstractTeamServerServlet.java:200)
at com.ibm.team.repository.service.internal.oauth.OAuthServiceProvider.handleProxiedRequest(OAuthServiceProvider.java:383)
at com.ibm.team.repository.service.internal.oauth.OAuthServiceProvider.handleOAuthRequest(OAuthServiceProvider.java:183)
at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
at org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
at $Proxy134.handleOAuthRequest(Unknown Source)
at com.ibm.team.repository.servlet.AbstractTeamServerServlet.service(AbstractTeamServerServlet.java:1477)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:75)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.eclipse.equinox.servletbridge.BridgeServlet.service(BridgeServlet.java:121)
at com.ibm.team.repository.server.servletbridge.JazzServlet.service(JazzServlet.java:54)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:873)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
at java.lang.Thread.run(Thread.java:811)
Caused by:
com.hp.hpl.jena.shared.BadURIException: Only well-formed absolute URIrefs can be included in RDF/XML output: <view> Code: 45/UNREGISTERED_NONIETF_SCHEME_TREE in SCHEME: The scheme name has a "-" in it, but it does not start in "x-" and the prefix is not known as the prefix of an alternative tree for URI schemes.
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.checkURI(BaseXMLWriter.java:797)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.relativize(BaseXMLWriter.java:774)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeResourceReference(Basic.java:148)
at com.hp.hpl.jena.xmloutput.impl.Basic.writePredicate(Basic.java:101)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:77)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeRDFStatements(Basic.java:66)
at com.hp.hpl.jena.xmloutput.impl.Basic.writeBody(Basic.java:40)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.writeXMLBody(BaseXMLWriter.java:481)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:453)
at com.hp.hpl.jena.xmloutput.impl.BaseXMLWriter.write(BaseXMLWriter.java:439)
at com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider.renderDescribe(BaseJenaProvider.java:548)
at com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider.performDescribe(BaseJenaProvider.java:470)
at com.ibm.team.jfs.rdf.internal.jenatdb.BaseJenaProvider.query(BaseJenaProvider.java:533)
... 49 more

0 votes



7 answers

Permanent link
That is strange - I am not sure why the indexer is trying to index that element; it is contained within the requirement text itself, so I would think would be encoded like the rest of the text when persisted to jazz storage.

In any case, do you have the Resource ID or URL of the offending requirement? If so, you could use something like the HttpRequester addon for Firefox https://addons.mozilla.org/en-US/firefox/addon/httprequester/ and call DELETE on the URI directly.

Let me know if that's possible. If you don't know the URI, we can likely still query for the requirement and get to it that way.

-Tom

0 votes


Permanent link
I thought this was strange as well, but the exception does explicitly mention x- and this is the only requirement entered that has that text. The problem also started occurring directly after entering the requirement

I can view the requirement from the web dashboard Requirements viewlet, and have found that the ID is rrc1490.

I would assume that I would call DELETE https://:/rdm/resources/rrc1490 from HttpRequester? When I try this, I got a 500 Internal Server Error - Response - 500 Internal Server Errornull

I had just restarted the RRC server to stop the exception loop it seems to be in. As soon as I called DELETE, the exceptions started again. I don't know if somehow the call started the indexer?

Any suggestions?

PS: HttpRequester is a nice plugin. Good work! I was using the REST Client plugin previously.

0 votes


Permanent link
Hi there,

Yes, any modification/deletion of a resource would likely trigger the indexing as it needs to get up-to-date.
I am curious as to why the DELETE would fail; I wonder if the resource itself actually did get deleted, but something failed in the post-operation (like indexing). Can you do a GET on the same resource and see if it is still retrievable or not?

One other thing - try appending "?accept=*" on the URI that you are deleting:
https://:/rdm/resources/rrc1490?accept=*

That simulates an accept header, and ensures that the HTTP web UI does not try to intercept the request.

Tom

0 votes


Permanent link
Thanks Tom,

Unfortunately the ?accept=* still does not work.

I can retrieve rrc1490 with a GET request without any problems

I also tried sending a DELETE request with ?accept=* against rrc1491, and that ran successfully. This (to me anyways), seems to confirm my suspicion that it is rrc1490 causing all my issues. The requirement isn't very long (20 lines) and I don't know what else in it's content could cause issues like this.

I'm assuming that I have to be logged into the RRC web UI within FF to allow authentication to work correctly.

I hope you have another suggestion?

Thanks,
Jules

0 votes


Permanent link
Ok. One last thing might be to try to update the artifact to remove the offending text. Are you able to successfully retrieve the contents via a GET?
If so, you could issue a GET via HTTPRequester, grab the requirement contents in the response winodw and fix them up (remove the suspected offending code). Then try doing a PUT to that same URI with the updated contents.
If that works, it might fix the indexing issue.
Let me know.

0 votes


Permanent link
Thanks for all your help Tom,

I can retrieve the artifact with a GET request

However, when I try to clean up the contents and issue a PUT request with the cleaned up contents, I get:

400 Bad Request - No project context was provided

Is there a command i have to issue to provide a project context?

0 votes


Permanent link
I feel like I'm leading you deeper and deeper down the rabbit hole...

To specify a project, you need to set a header on the PUT request. First you'll need to grab the URI of the project the resource resides in. (It should come back in one of the headers on a GET of the resource).
Then add a header 'net.jazz.jfs.owning-context' with the value being the absolute project URI. Example:
net.jazz.jfs.owning-context: https://clmweb:9443/jts/process/project-areas/_kfzB8JwsEeCYsZLaz_3Gpw

That should allow the PUT request.

0 votes

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Jun 27 '11, 12:21 p.m.

Question was seen: 6,666 times

Last updated: Jun 27 '11, 12:21 p.m.

Confirmation Cancel Confirm