Axel, Can you isolate this into a test, and maybe send the messages.log off list for us to look at? On Nov 17, 2011 12:09 AM, "Axel Morgner" <a...@morgner.de> wrote:
> Sorry to say, but I can reproduce the behaviour with 1.5, too. > > Without deleting the node from the index manually, I get still this > org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: > > 17.11.2011 00:01:48 org.structr.core.node.TransactionCommand execute > WARNUNG: Transaction failure > org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[46] > not in use > at > org.neo4j.kernel.impl.nioneo.store.NodeStore.getRecord(NodeStore.java:215) > at > org.neo4j.kernel.impl.nioneo.store.NodeStore.getRecord(NodeStore.java:96) > at > > org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeDelete(WriteTransaction.java:683) > at > > org.neo4j.kernel.impl.persistence.PersistenceManager.nodeDelete(PersistenceManager.java:136) > at > org.neo4j.kernel.impl.core.NodeManager.deleteNode(NodeManager.java:847) > at org.neo4j.kernel.impl.core.NodeImpl.delete(NodeImpl.java:266) > at org.neo4j.kernel.impl.core.NodeProxy.delete(NodeProxy.java:57) > at org.structr.core.entity.AbstractNode.delete(AbstractNode.java:1358) > at > > org.structr.rest.constraint.ResourceConstraint$2.execute(ResourceConstraint.java:153) > at > > org.structr.core.node.TransactionCommand.execute(TransactionCommand.java:61) > at > > org.structr.rest.constraint.ResourceConstraint.doDelete(ResourceConstraint.java:129) > at > org.structr.rest.servlet.JsonRestServlet.doDelete(JsonRestServlet.java:188) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140) > at > > org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) > at > > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:679) > > Interestingly, all node properties (besides id) are empty. > > Greetings > > Axel > > > Sorry, I meant we had this with 1.4.2, but nevertheless I will > > double-check 1.5 now .. > > > > > > Am 16.11.2011 22:28, schrieb Peter Neubauer: > >> Axel, > >> please do, as we have found and squashed a number of potential > >> problems in QA for 1.5 after 1.4.1 > >> > >> Cheers, > >> > >> /peter neubauer > >> > >> GTalk: neubauer.peter > >> Skype peter.neubauer > >> Phone +46 704 106975 > >> LinkedIn http://www.linkedin.com/in/neubauer > >> Twitter http://twitter.com/peterneubauer > >> > >> http://www.neo4j.org - NOSQL for the Enterprise. > >> http://startupbootcamp.org/ - Öresund - Innovation happens HERE. > >> > >> > >> > >> On Wed, Nov 16, 2011 at 10:27 PM, Axel Morgner<a...@morgner.de> > wrote: > >>> Using neo4j 1.4.1 we had some exceptions like > >>> > >>> 15.11.2011 18:16:11 org.structr.core.entity.AbstractNode setProperty > >>> WARNUNG: Exception in setProperty > >>> org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Record[22] > >>> not in use > >>> at > >>> > org.neo4j.kernel.impl.nioneo.store.NodeStore.getRecord(NodeStore.java:178) > >>> at > org.neo4j.kernel.impl.nioneo.store.NodeStore.getRecord(NodeStore.java:95) > >>> at > >>> > org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeLoadProperties(WriteTransaction.java:1043) > >>> at > >>> > org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:114) > >>> at > >>> > org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:675) > >>> at > org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:115) > >>> at > >>> > org.neo4j.kernel.impl.core.Primitive.ensureFullProperties(Primitive.java:648) > >>> at org.neo4j.kernel.impl.core.Primitive.hasProperty(Primitive.java:283) > >>> at org.neo4j.kernel.impl.core.NodeProxy.hasProperty(NodeProxy.java:150) > >>> > >>> The exception was thrown when our new REST API was under heavy load. In > >>> our testcase, we deleted nodes in a while-true-loop while creating > nodes > >>> in another. After some concurrent requests, the nodes were not cleanly > >>> auto-removed from the (manual) index. So some nodes were still returned > >>> by an index search, but the above exception was thrown. > >>> > >>> Before fixing, our code for removing looked like this (AbstractNode and > >>> StructrRelationship are just wrapper classes for Neo's Node and > >>> Relationship). > >>> > >>> [...] > >>> // 1: delete relationships > >>> if(obj instanceof AbstractNode) { > >>> List<StructrRelationship> rels = > > > >>> ((AbstractNode)obj).getRelationships(); > >>> for(StructrRelationship rel : rels) { > >>> success&= rel.delete(); > >>> } > >>> } > >>> > >>> // 2: delete object > >>> success&= obj.delete(); > >>> [...] > >>> > >>> Removing the node from the index before deleting it resolved the > exception. > >>> > >>> [...] > >>> > >>> // 1: remove node from index > >>> Services.command(securityContext, > >>> RemoveNodeFromIndex.class).execute(obj); > >>> > >>> // 2: delete relationships > >>> if(obj instanceof AbstractNode) { > >>> List<StructrRelationship> rels = > >>> ((AbstractNode)obj).getRelationships(); > >>> for(StructrRelationship rel : rels) { > >>> success&= rel.delete(); > >>> } > >>> } > >>> > >>> // 3: delete object > >>> success&= obj.delete(); > >>> [...] > >>> Maybe this helps someone. > >>> > >>> Tonight, I will do a test with neo4j 1.5 and report back. > >>> > >>> > >>> Greetings > >>> > >>> Axel > >>> > >>> _______________________________________________ > >>> Neo4j mailing list > >>> User@lists.neo4j.org > >>> https://lists.neo4j.org/mailman/listinfo/user > >>> > >> _______________________________________________ > >> Neo4j mailing list > >> User@lists.neo4j.org > >> https://lists.neo4j.org/mailman/listinfo/user > > > > > -- > Axel Morgner > Morgner UG > Hanauer Landstr. 291a > 60314 Frankfurt > Germany > > Phone +49 151 40522060 > Skype axel.morgner > E-mail a...@morgner.de > Web http://www.morgner.de > Twitter @amorgner > > _______________________________________________ > Neo4j mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo4j mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user