hedera-mirror-node icon indicating copy to clipboard operation
hedera-mirror-node copied to clipboard

Mirror Node Web3 returns exception when nonce is more consensus node

Open georgi-l95 opened this issue 1 year ago • 0 comments

Description

In case that account ethereum nonce is different from the one in the consensus node. And this difference is larger than 1, this results in web3 exception, which breaks the flow of sending the transaction.

  org.springframework.dao.IncorrectResultSizeDataAccessException: Query did not return a unique result: 2 results were returned
2024-02-13 13:49:47     at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:301)
2024-02-13 13:49:47     at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:244)
2024-02-13 13:49:47     at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550)
2024-02-13 13:49:47     at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61)
2024-02-13 13:49:47     at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:335)
2024-02-13 13:49:47     at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152)
2024-02-13 13:49:47     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
2024-02-13 13:49:47     at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135)
2024-02-13 13:49:47     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
2024-02-13 13:49:47     at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
2024-02-13 13:49:47     at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184)
2024-02-13 13:49:47     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:220)
2024-02-13 13:49:47     at jdk.proxy2/jdk.proxy2.$Proxy206.findByEvmAddressAndDeletedIsFalse(Unknown Source)
2024-02-13 13:49:47     at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(Unknown Source)
2024-02-13 13:49:47     at java.base/java.lang.reflect.Method.invoke(Unknown Source)
2024-02-13 13:49:47     at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:351)
2024-02-13 13:49:47     at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
2024-02-13 13:49:47     at jdk.proxy2/jdk.proxy2.$Proxy206.findByEvmAddressAndDeletedIsFalse(Unknown Source)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.accessor.EntityDatabaseAccessor.lambda$getEntityByEvmAddressAndTimestamp$3(EntityDatabaseAccessor.java:64)
2024-02-13 13:49:47     at java.base/java.util.Optional.orElseGet(Unknown Source)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.accessor.EntityDatabaseAccessor.getEntityByEvmAddressAndTimestamp(EntityDatabaseAccessor.java:64)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.accessor.EntityDatabaseAccessor.get(EntityDatabaseAccessor.java:47)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.accessor.AccountDatabaseAccessor.get(AccountDatabaseAccessor.java:79)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.DatabaseBackedStateFrame.getValue(DatabaseBackedStateFrame.java:56)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.CachingStateFrame$AccessorImpl.get(CachingStateFrame.java:176)
2024-02-13 13:49:47     at com.hedera.mirror.web3.evm.store.ROCachingStateFrame.lambda$getValue$0(ROCachingStateFrame.java:40)

Steps to reproduce

  1. Start local-node
  2. Change account nonce to be at least 2 more than the one in the consensus node
  3. Try to send ETHEREUMTRANSACTION
  4. Observe mirror-node-web3

Additional context

No response

Hedera network

other

Version

main

Operating system

None

georgi-l95 avatar Feb 13 '24 14:02 georgi-l95