cardano-foundation / cf-ledger-sync

An open-source Java application designed to facilitate access to indexed Cardano blockchain data
https://cardano-foundation.github.io/cf-ledger-sync/
Apache License 2.0
21 stars 2 forks source link

Startup Error after updating from repo #98

Open srcChain opened 11 months ago

srcChain commented 11 months ago

Hello, I wasn't sure where to put this as I am sure you have been asked this before. I just updated my local branch from main the sync errored out because of a new column in one of the tables. Is there a recommeded way to make sure the db is up to date? I assumed this was handled by the sync process somehow. In this case, I thought some migration will run to bring the db up to date. Am i missing something? I got the following error below:

java.nio.channels.ClosedChannelException: null at io.netty.handler.ssl.SslHandler.channelInactive(SslHandler.java:1150) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:305) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281) at io.netty.channel.AbstractChannelHandlerContext.fireChannelInactive(AbstractChannelHandlerContext.java:274) at io.netty.channel.DefaultChannelPipeline$HeadContext.channelInactive(DefaultChannelPipeline.java:1405) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:301) at io.netty.channel.AbstractChannelHandlerContext.invokeChannelInactive(AbstractChannelHandlerContext.java:281) at io.netty.channel.DefaultChannelPipeline.fireChannelInactive(DefaultChannelPipeline.java:901) at io.netty.channel.AbstractChannel$AbstractUnsafe$7.run(AbstractChannel.java:813) at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174) at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167) at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470) at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) at java.base/java.lang.Thread.run(Thread.java:1583) Suppressed: io.netty.handler.ssl.StacklessSSLHandshakeException: Connection closed while SSL/TLS handshake was in progress at io.netty.handler.ssl.SslHandler.channelInactive(Unknown Source)

2023-12-02 10:56:51.955 INFO 134956 --- [ntLoopGroup-5-1] o.j.i.D.logVersionSupport : Version : Database version is supported by dialect POSTGRES: 15.4 (Ubuntu 15.4-2.pgdg22.04+1) 2023-12-02 10:56:54.740 INFO 134956 --- [ntLoopGroup-5-1] org.hibernate.orm.jdbc.batch : HHH100503: On release of batch it still contained JDBC statements 2023-12-02 10:56:54.742 ERROR 134956 --- [ntLoopGroup-5-1] org.hibernate.orm.jdbc.batch : HHH100501: Exception executing batch [java.sql.BatchUpdateException: Batch entry 0 insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (NULL,3665246,3665241,0,1502011) was aborted: ERROR: column "redeemer_id" of relation "unconsume_tx_in" does not exist Position: 40 Call getNextException to see other errors in the batch.], SQL: insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (?,?,?,?,?) 2023-12-02 10:56:54.744 WARN 134956 --- [ntLoopGroup-5-1] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703 2023-12-02 10:56:54.744 ERROR 134956 --- [ntLoopGroup-5-1] o.h.engine.jdbc.spi.SqlExceptionHelper : Batch entry 0 insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (NULL,3665246,3665241,0,1502011) was aborted: ERROR: column "redeemer_id" of relation "unconsume_tx_in" does not exist Position: 40 Call getNextException to see other errors in the batch. 2023-12-02 10:56:54.744 ERROR 134956 --- [ntLoopGroup-5-1] o.h.engine.jdbc.spi.SqlExceptionHelper : ERROR: column "redeemer_id" of relation "unconsume_tx_in" does not exist Position: 40 org.springframework.dao.InvalidDataAccessResourceUsageException: could not execute batch [Batch entry 0 insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (NULL,3665246,3665241,0,1502011) was aborted: ERROR: column "redeemer_id" of relation "unconsume_tx_in" does not exist Position: 40 Call getNextException to see other errors in the batch.] [insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (?,?,?,?,?)]; SQL [insert into cexplorer.unconsume_tx_in (redeemer_id,tx_in_id,tx_out_id,tx_out_index,id) values (?,?,?,?,?)] at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:256) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:229) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:550) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:243) at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:152) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:135) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:184) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:244) at jdk.proxy2/jdk.proxy2.$Proxy230.findEpochNoByMaxSlotAndEpochNoMoreThanLastEpochParam(Unknown Source) at org.cardanofoundation.ledgersync.explorerconsumer.service.impl.EpochParamServiceImpl.handleEpochParams(EpochParamServiceImpl.java:

Thanks

Sotatek-HuyLe3a commented 11 months ago

Hi @srcChain , we updated and refactored migration files and updated theses changes in "main" branch. If you want check all migration files before they were refactored, you can check these files in commit: https://github.com/cardano-foundation/cf-ledger-sync/tree/8136b156b1474d2da25502122b5c144c5108b5dc . These are the issues where we have updated and added migration files:

52 , #53, #61

And then, we restructured migration files, remove unnecessary tables: https://github.com/cardano-foundation/cf-ledger-sync/pull/87

If you're syncing testnet networks, I recommend you should resync from genesis in branch "main" . Feel free to ask me anything if you have any blocker Thanks

satran004 commented 11 months ago

@srcChain Regarding database migration, since we don't have an official release yet, we are keeping the SQL script simple by ignoring database migration for now. However, we will support database migration after the first release.

srcChain commented 11 months ago

Thanks for the update guys!

I will checkout main and resync from genesis. I should've known that this was still being actively developed.

Thanks

On Sun, Dec 3, 2023 at 11:21 PM Satya @.***> wrote:

@srcChain https://github.com/srcChain Regarding database migration, since we don't have an official release yet, we are keeping the SQL script simple by ignoring database migration for now. However, we will support database migration after the first release.

— Reply to this email directly, view it on GitHub https://github.com/cardano-foundation/cf-ledger-sync/issues/98#issuecomment-1837817246, or unsubscribe https://github.com/notifications/unsubscribe-auth/BD5G5BG5PFYYM5HDQNAKRILYHVFWFAVCNFSM6AAAAABAEDFY7KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMZXHAYTOMRUGY . You are receiving this because you were mentioned.Message ID: @.***>