graphaware / neo4j-expire

GraphAware Module for Expiring (Deleting) Nodes and Relationships
29 stars 10 forks source link

why throw below exception by set 1 hours time to live? #16

Closed lyfxmw closed 3 years ago

lyfxmw commented 4 years ago

org.neo4j.graphdb.TransactionFailureException: Transaction was marked as successful, but unable to commit transaction so rolled back.

Everything is normal before expiration.

lyfxmw commented 4 years ago

Caused by: org.neo4j.internal.kernel.api.exceptions.TransactionFailureException: at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:624) at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:550) at org.neo4j.internal.kernel.api.Transaction.close(Transaction.java:189) at org.neo4j.kernel.impl.coreapi.TopLevelTransaction.close(TopLevelTransaction.java:78) ... 9 more Caused by: java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936) at org.neo4j.kernel.impl.index.IndexConfigStore.get(IndexConfigStore.java:206) at org.neo4j.kernel.impl.api.state.ExplicitIndexTransactionStateImpl.checkIndexExistence(ExplicitIndexTransactionStateImpl.java:239) at org.neo4j.kernel.impl.api.CachingExplicitIndexTransactionState.checkIndexExistence(CachingExplicitIndexTransactionState.java:101) at org.neo4j.kernel.impl.newapi.AllStoreHolder.relationshipExplicitIndexExists(AllStoreHolder.java:311) at org.neo4j.kernel.impl.coreapi.IndexProviderImpl.getOrCreateRelationshipIndex(IndexProviderImpl.java:73) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.forRelationships(IndexManagerImpl.java:122) at org.neo4j.kernel.impl.coreapi.IndexManagerImpl.forRelationships(IndexManagerImpl.java:115) at com.graphaware.neo4j.expire.indexer.LegacyExpirationIndexer.removeRelationship(LegacyExpirationIndexer.java:130) at com.graphaware.neo4j.expire.ExpirationModule.handleDeletedRelationships(ExpirationModule.java:134) at com.graphaware.neo4j.expire.ExpirationModule.beforeCommit(ExpirationModule.java:71) at com.graphaware.neo4j.expire.ExpirationModule.beforeCommit(ExpirationModule.java:48) at com.graphaware.runtime.manager.BaseTxDrivenModuleManager.beforeCommit(BaseTxDrivenModuleManager.java:204) at com.graphaware.runtime.TxDrivenRuntime.beforeCommit(TxDrivenRuntime.java:76) at com.graphaware.runtime.TxDrivenRuntime.beforeCommit(TxDrivenRuntime.java:39) at org.neo4j.kernel.internal.TransactionEventHandlers.beforeCommit(TransactionEventHandlers.java:124) at org.neo4j.kernel.internal.TransactionEventHandlers.beforeCommit(TransactionEventHandlers.java:49) at org.neo4j.kernel.impl.api.TransactionHooks.beforeCommit(TransactionHooks.java:60) at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:620) ... 12 more

bachmanm commented 4 years ago

could you please post versions of:

Thanks!

lyfxmw commented 4 years ago

i think i ask wrong question。。 Does GraphAware have to set the time to live of nodes and relationships at the same time?

The above problem is only set the node。

versions: Neo4j 3.4.6 GraphAware Framework:community-all-3.4.6.52 Neo4j expire:3.4.6.52.4

lyfxmw commented 4 years ago

case 1: only start nodeTtl nodeExpirationStrategy choose orphan When nodes is deleted, transactions may not be committed...

neo4j can't delete anyone by cypher statement latter it throw this error:Neo.ClientError.Transaction.TransactionHookFailed

case 2:only start nodeTtl nodeExpirationStrategy choose force

when time is up, neo4j loop reports the following error: Task execution threw an exception: Transaction was marked as successful, but unable to commit transaction so rolled back. Transaction was marked as successful, but unable to commit transaction so rolled back.