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