Re: [Neo] Fwd: Node not in use exception when using tx event handler
This was indeed a bug and I just committed a fix for it in trunk. -Johan On Tue, May 18, 2010 at 6:28 PM, Garrett Smith wrote: > See attached. > > To reproduce, run against r4415: > > $ java -cp PATH NodeNotInUse DBDIR create > $ java -cp PATH NodeNotInUse DBDIR delete NODEID > > I modified > src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java > to get the error info: > > --- src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java > (revision > 4415) > +++ src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java > (working > copy) > @@ -35,6 +35,7 @@ > > public void beforeCompletion() > { > + try { > this.transactionData = nodeManager.getTransactionData(); > states = new ArrayList(); > for ( TransactionEventHandler handler : this.handlers ) > @@ -55,6 +56,10 @@ > throw new RuntimeException( t ); > } > } > + } catch (Throwable th) { > + th.printStackTrace(); > + throw new RuntimeException(th); > + } > } > > On Tue, May 18, 2010 at 6:38 AM, Johan Svensson > wrote: >> Garrett, >> >> This could be a bug. Could you please provide a test case that trigger >> this behavior. >> >> -Johan >> >> On Sat, May 15, 2010 at 8:46 PM, Tobias Ivarsson >> wrote: >>> Create a ticket for it, I've tagged it for reviewing when I get back to the >>> office, you had the great unfortune to send this right at the beginning of a >>> 4 day Swedish holiday. >>> >>> If you could supply code that can reproduce it that would be even better. >>> >>> Cheers, >>> Tobias >>> >>> On Sat, May 15, 2010 at 8:42 PM, Garrett Smith wrote: >>> Is this something I should open a ticket for, or is it something the dev team is aware of? Or is it user error? Garrett -- Forwarded message -- From: Garrett Smith Date: Thu, May 13, 2010 at 2:52 PM Subject: Node not in use exception when using tx event handler To: Neo4j Users I'm running into the exception below when I try to delete a node when first starting up a graph database. I'm experimenting with a transaction event handler. The error, however, occurs before my handler gets called. org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[10] not in use at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeGetProperties(WriteTransaction.java:1009) at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaConnection$NodeEventConsumerImpl.getProperties(NeoStoreXaConnection.java:228) at org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.nodeLoadProperties(NioNeoDbPersistenceSource.java:432) at org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:100) at org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:628) at org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:84) at org.neo4j.kernel.impl.core.Primitive.ensureFullLightProperties(Primitive.java:591) at org.neo4j.kernel.impl.core.Primitive.getAllCommittedProperties(Primitive.java:604) at org.neo4j.kernel.impl.core.LockReleaser.populateNodeRelEvent(LockReleaser.java:855) at org.neo4j.kernel.impl.core.LockReleaser.getTransactionData(LockReleaser.java:740) at org.neo4j.kernel.impl.core.NodeManager.getTransactionData(NodeManager.java:914) at org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:39) at org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:341) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:556) at org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:103) at org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:410) at gv.graph.Nodes.deleteNode(Nodes.java:349) at gv.graph.NodeDelete.handle(NodeDelete.java:20) at gv.graph.MessageHandler.run(MessageHandler.java:59) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) May 13, 2010 2:42:56 PM org.neo4j.kernel.impl.transaction.TransactionImpl doBeforeCompletion WARNING: Caught exception from tx syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 ] beforeCompletion() May 13, 2010 2:42:56 PM org.neo4j.kernel.impl.transaction.TransactionImpl doAfterCompletion WARNING: Caugh
Re: [Neo] Fwd: Node not in use exception when using tx event handler
See attached. To reproduce, run against r4415: $ java -cp PATH NodeNotInUse DBDIR create $ java -cp PATH NodeNotInUse DBDIR delete NODEID I modified src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java to get the error info: --- src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java (revision 4415) +++ src/main/java/org/neo4j/kernel/impl/core/TransactionEventsSyncHook.java (working copy) @@ -35,6 +35,7 @@ public void beforeCompletion() { +try { this.transactionData = nodeManager.getTransactionData(); states = new ArrayList(); for ( TransactionEventHandler handler : this.handlers ) @@ -55,6 +56,10 @@ throw new RuntimeException( t ); } } +} catch (Throwable th) { +th.printStackTrace(); +throw new RuntimeException(th); +} } On Tue, May 18, 2010 at 6:38 AM, Johan Svensson wrote: > Garrett, > > This could be a bug. Could you please provide a test case that trigger > this behavior. > > -Johan > > On Sat, May 15, 2010 at 8:46 PM, Tobias Ivarsson > wrote: >> Create a ticket for it, I've tagged it for reviewing when I get back to the >> office, you had the great unfortune to send this right at the beginning of a >> 4 day Swedish holiday. >> >> If you could supply code that can reproduce it that would be even better. >> >> Cheers, >> Tobias >> >> On Sat, May 15, 2010 at 8:42 PM, Garrett Smith wrote: >> >>> Is this something I should open a ticket for, or is it something the >>> dev team is aware of? Or is it user error? >>> >>> Garrett >>> >>> >>> -- Forwarded message -- >>> From: Garrett Smith >>> Date: Thu, May 13, 2010 at 2:52 PM >>> Subject: Node not in use exception when using tx event handler >>> To: Neo4j Users >>> >>> >>> I'm running into the exception below when I try to delete a node when >>> first starting up a graph database. >>> >>> I'm experimenting with a transaction event handler. The error, >>> however, occurs before my handler gets called. >>> >>> org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[10] not in >>> use >>> at >>> org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeGetProperties(WriteTransaction.java:1009) >>> at >>> org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaConnection$NodeEventConsumerImpl.getProperties(NeoStoreXaConnection.java:228) >>> at >>> org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.nodeLoadProperties(NioNeoDbPersistenceSource.java:432) >>> at >>> org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:100) >>> at >>> org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:628) >>> at >>> org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:84) >>> at >>> org.neo4j.kernel.impl.core.Primitive.ensureFullLightProperties(Primitive.java:591) >>> at >>> org.neo4j.kernel.impl.core.Primitive.getAllCommittedProperties(Primitive.java:604) >>> at >>> org.neo4j.kernel.impl.core.LockReleaser.populateNodeRelEvent(LockReleaser.java:855) >>> at >>> org.neo4j.kernel.impl.core.LockReleaser.getTransactionData(LockReleaser.java:740) >>> at >>> org.neo4j.kernel.impl.core.NodeManager.getTransactionData(NodeManager.java:914) >>> at >>> org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:39) >>> at >>> org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:341) >>> at >>> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:556) >>> at >>> org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:103) >>> at >>> org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:410) >>> at gv.graph.Nodes.deleteNode(Nodes.java:349) >>> at gv.graph.NodeDelete.handle(NodeDelete.java:20) >>> at gv.graph.MessageHandler.run(MessageHandler.java:59) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >>> at >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >>> at java.lang.Thread.run(Thread.java:619) >>> May 13, 2010 2:42:56 PM >>> org.neo4j.kernel.impl.transaction.TransactionImpl doBeforeCompletion >>> WARNING: Caught exception from tx >>> syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 >>> ] >>> beforeCompletion() >>> May 13, 2010 2:42:56 PM >>> org.neo4j.kernel.impl.transaction.TransactionImpl doAfterCompletion >>> WARNING: Caught exception from tx >>> syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 >>> ] >>> afterCompletion() >>> >>> Code details: >>> >>> URL: https://svn.neo4j.org/components/kernel/trunk >>> Repository Root: https://svn.neo4j.org >>> Repository UUID: 0b971d98
Re: [Neo] Fwd: Node not in use exception when using tx event handler
Garrett, This could be a bug. Could you please provide a test case that trigger this behavior. -Johan On Sat, May 15, 2010 at 8:46 PM, Tobias Ivarsson wrote: > Create a ticket for it, I've tagged it for reviewing when I get back to the > office, you had the great unfortune to send this right at the beginning of a > 4 day Swedish holiday. > > If you could supply code that can reproduce it that would be even better. > > Cheers, > Tobias > > On Sat, May 15, 2010 at 8:42 PM, Garrett Smith wrote: > >> Is this something I should open a ticket for, or is it something the >> dev team is aware of? Or is it user error? >> >> Garrett >> >> >> -- Forwarded message -- >> From: Garrett Smith >> Date: Thu, May 13, 2010 at 2:52 PM >> Subject: Node not in use exception when using tx event handler >> To: Neo4j Users >> >> >> I'm running into the exception below when I try to delete a node when >> first starting up a graph database. >> >> I'm experimenting with a transaction event handler. The error, >> however, occurs before my handler gets called. >> >> org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[10] not in >> use >> at >> org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeGetProperties(WriteTransaction.java:1009) >> at >> org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaConnection$NodeEventConsumerImpl.getProperties(NeoStoreXaConnection.java:228) >> at >> org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.nodeLoadProperties(NioNeoDbPersistenceSource.java:432) >> at >> org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:100) >> at >> org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:628) >> at >> org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:84) >> at >> org.neo4j.kernel.impl.core.Primitive.ensureFullLightProperties(Primitive.java:591) >> at >> org.neo4j.kernel.impl.core.Primitive.getAllCommittedProperties(Primitive.java:604) >> at >> org.neo4j.kernel.impl.core.LockReleaser.populateNodeRelEvent(LockReleaser.java:855) >> at >> org.neo4j.kernel.impl.core.LockReleaser.getTransactionData(LockReleaser.java:740) >> at >> org.neo4j.kernel.impl.core.NodeManager.getTransactionData(NodeManager.java:914) >> at >> org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:39) >> at >> org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:341) >> at >> org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:556) >> at >> org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:103) >> at >> org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:410) >> at gv.graph.Nodes.deleteNode(Nodes.java:349) >> at gv.graph.NodeDelete.handle(NodeDelete.java:20) >> at gv.graph.MessageHandler.run(MessageHandler.java:59) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:619) >> May 13, 2010 2:42:56 PM >> org.neo4j.kernel.impl.transaction.TransactionImpl doBeforeCompletion >> WARNING: Caught exception from tx >> syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 >> ] >> beforeCompletion() >> May 13, 2010 2:42:56 PM >> org.neo4j.kernel.impl.transaction.TransactionImpl doAfterCompletion >> WARNING: Caught exception from tx >> syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 >> ] >> afterCompletion() >> >> Code details: >> >> URL: https://svn.neo4j.org/components/kernel/trunk >> Repository Root: https://svn.neo4j.org >> Repository UUID: 0b971d98-bb2f-0410-8247-b05b2b5feb2a >> Revision: 4415 ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
Re: [Neo] Fwd: Node not in use exception when using tx event handler
Create a ticket for it, I've tagged it for reviewing when I get back to the office, you had the great unfortune to send this right at the beginning of a 4 day Swedish holiday. If you could supply code that can reproduce it that would be even better. Cheers, Tobias On Sat, May 15, 2010 at 8:42 PM, Garrett Smith wrote: > Is this something I should open a ticket for, or is it something the > dev team is aware of? Or is it user error? > > Garrett > > > -- Forwarded message -- > From: Garrett Smith > Date: Thu, May 13, 2010 at 2:52 PM > Subject: Node not in use exception when using tx event handler > To: Neo4j Users > > > I'm running into the exception below when I try to delete a node when > first starting up a graph database. > > I'm experimenting with a transaction event handler. The error, > however, occurs before my handler gets called. > > org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[10] not in > use >at > org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeGetProperties(WriteTransaction.java:1009) >at > org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaConnection$NodeEventConsumerImpl.getProperties(NeoStoreXaConnection.java:228) >at > org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.nodeLoadProperties(NioNeoDbPersistenceSource.java:432) >at > org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:100) >at > org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:628) >at > org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:84) >at > org.neo4j.kernel.impl.core.Primitive.ensureFullLightProperties(Primitive.java:591) >at > org.neo4j.kernel.impl.core.Primitive.getAllCommittedProperties(Primitive.java:604) >at > org.neo4j.kernel.impl.core.LockReleaser.populateNodeRelEvent(LockReleaser.java:855) >at > org.neo4j.kernel.impl.core.LockReleaser.getTransactionData(LockReleaser.java:740) >at > org.neo4j.kernel.impl.core.NodeManager.getTransactionData(NodeManager.java:914) >at > org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:39) >at > org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:341) >at > org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:556) >at > org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:103) >at > org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:410) >at gv.graph.Nodes.deleteNode(Nodes.java:349) >at gv.graph.NodeDelete.handle(NodeDelete.java:20) >at gv.graph.MessageHandler.run(MessageHandler.java:59) >at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >at java.lang.Thread.run(Thread.java:619) > May 13, 2010 2:42:56 PM > org.neo4j.kernel.impl.transaction.TransactionImpl doBeforeCompletion > WARNING: Caught exception from tx > syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 > ] > beforeCompletion() > May 13, 2010 2:42:56 PM > org.neo4j.kernel.impl.transaction.TransactionImpl doAfterCompletion > WARNING: Caught exception from tx > syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6 > ] > afterCompletion() > > Code details: > > URL: https://svn.neo4j.org/components/kernel/trunk > Repository Root: https://svn.neo4j.org > Repository UUID: 0b971d98-bb2f-0410-8247-b05b2b5feb2a > Revision: 4415 > ___ > Neo mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > -- Tobias Ivarsson Hacker, Neo Technology www.neotechnology.com Cellphone: +46 706 534857 ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user
[Neo] Fwd: Node not in use exception when using tx event handler
Is this something I should open a ticket for, or is it something the dev team is aware of? Or is it user error? Garrett -- Forwarded message -- From: Garrett Smith Date: Thu, May 13, 2010 at 2:52 PM Subject: Node not in use exception when using tx event handler To: Neo4j Users I'm running into the exception below when I try to delete a node when first starting up a graph database. I'm experimenting with a transaction event handler. The error, however, occurs before my handler gets called. org.neo4j.kernel.impl.nioneo.store.InvalidRecordException: Node[10] not in use at org.neo4j.kernel.impl.nioneo.xa.WriteTransaction.nodeGetProperties(WriteTransaction.java:1009) at org.neo4j.kernel.impl.nioneo.xa.NeoStoreXaConnection$NodeEventConsumerImpl.getProperties(NeoStoreXaConnection.java:228) at org.neo4j.kernel.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.nodeLoadProperties(NioNeoDbPersistenceSource.java:432) at org.neo4j.kernel.impl.persistence.PersistenceManager.loadNodeProperties(PersistenceManager.java:100) at org.neo4j.kernel.impl.core.NodeManager.loadProperties(NodeManager.java:628) at org.neo4j.kernel.impl.core.NodeImpl.loadProperties(NodeImpl.java:84) at org.neo4j.kernel.impl.core.Primitive.ensureFullLightProperties(Primitive.java:591) at org.neo4j.kernel.impl.core.Primitive.getAllCommittedProperties(Primitive.java:604) at org.neo4j.kernel.impl.core.LockReleaser.populateNodeRelEvent(LockReleaser.java:855) at org.neo4j.kernel.impl.core.LockReleaser.getTransactionData(LockReleaser.java:740) at org.neo4j.kernel.impl.core.NodeManager.getTransactionData(NodeManager.java:914) at org.neo4j.kernel.impl.core.TransactionEventsSyncHook.beforeCompletion(TransactionEventsSyncHook.java:39) at org.neo4j.kernel.impl.transaction.TransactionImpl.doBeforeCompletion(TransactionImpl.java:341) at org.neo4j.kernel.impl.transaction.TxManager.commit(TxManager.java:556) at org.neo4j.kernel.impl.transaction.TransactionImpl.commit(TransactionImpl.java:103) at org.neo4j.kernel.EmbeddedGraphDbImpl$TransactionImpl.finish(EmbeddedGraphDbImpl.java:410) at gv.graph.Nodes.deleteNode(Nodes.java:349) at gv.graph.NodeDelete.handle(NodeDelete.java:20) at gv.graph.MessageHandler.run(MessageHandler.java:59) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) May 13, 2010 2:42:56 PM org.neo4j.kernel.impl.transaction.TransactionImpl doBeforeCompletion WARNING: Caught exception from tx syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6] beforeCompletion() May 13, 2010 2:42:56 PM org.neo4j.kernel.impl.transaction.TransactionImpl doAfterCompletion WARNING: Caught exception from tx syncronization[org.neo4j.kernel.impl.core.transactioneventssynch...@edf3f6] afterCompletion() Code details: URL: https://svn.neo4j.org/components/kernel/trunk Repository Root: https://svn.neo4j.org Repository UUID: 0b971d98-bb2f-0410-8247-b05b2b5feb2a Revision: 4415 ___ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user