[ https://issues.apache.org/jira/browse/RANGER-5123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rakesh Gupta updated RANGER-5123: --------------------------------- Description: Fix the transaction log migration failure when executing ranger-admin-transaction-log-migrate.sh on a fresh setup by checking for the existence of the x_trx_log table before execution, ensuring a successful migration. *Error Details:* {code:java} [main] ERROR o.a.r.p.c.TrxLogV2MigrationUtil (TrxLogV2MigrationUtil.java:112) Error while migrating trx logs from v1 to v2 javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.12.v20230209-e5c4074ef3): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist Error Code: 1146 Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:391) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:264) at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.migrateTrxLogs(TrxLogV2MigrationUtil.java:129) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.execLoad(TrxLogV2MigrationUtil.java:110) at org.apache.ranger.patch.BaseLoader.load(BaseLoader.java:101) at org.apache.ranger.patch.BaseLoader$$FastClassBySpringCGLIB$$3c27c16d.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil$$EnhancerBySpringCGLIB$$a6bd5385.load(<generated>) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.main(TrxLogV2MigrationUtil.java:80) Caused by: org.eclipse.persistence.exceptions.DatabaseException: Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist Error Code: 1146 Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:342) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:700) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567) at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105) at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:313) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:275) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:261) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:345) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:765) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllReportQueryRows(ExpressionQueryMechanism.java:2713) at org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery(ReportQuery.java:894) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:913) at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191) at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262) ... 17 common frames omitted Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) {code} was: Fix transaction log migration failure on a fresh setup by verifying table existence before execution, ensuring successful migration. *Error Details:* {code:java} [main] ERROR o.a.r.p.c.TrxLogV2MigrationUtil (TrxLogV2MigrationUtil.java:112) Error while migrating trx logs from v1 to v2 javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.7.12.v20230209-e5c4074ef3): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist Error Code: 1146 Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") at org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:391) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:264) at org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.migrateTrxLogs(TrxLogV2MigrationUtil.java:129) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.execLoad(TrxLogV2MigrationUtil.java:110) at org.apache.ranger.patch.BaseLoader.load(BaseLoader.java:101) at org.apache.ranger.patch.BaseLoader$$FastClassBySpringCGLIB$$3c27c16d.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil$$EnhancerBySpringCGLIB$$a6bd5385.load(<generated>) at org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.main(TrxLogV2MigrationUtil.java:80) Caused by: org.eclipse.persistence.exceptions.DatabaseException: Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist Error Code: 1146 Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:342) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:700) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567) at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105) at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:313) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:275) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:261) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:345) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:765) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776) at org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllReportQueryRows(ExpressionQueryMechanism.java:2713) at org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery(ReportQuery.java:894) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:913) at org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191) at org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485) at org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845) at org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262) ... 17 common frames omitted Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'ranger.x_trx_log' doesn't exist at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) {code} > Handle Transaction Log Migration for Fresh Install > -------------------------------------------------- > > Key: RANGER-5123 > URL: https://issues.apache.org/jira/browse/RANGER-5123 > Project: Ranger > Issue Type: Bug > Components: Ranger > Reporter: Rakesh Gupta > Assignee: Rakesh Gupta > Priority: Critical > > Fix the transaction log migration failure when executing > ranger-admin-transaction-log-migrate.sh on a fresh setup by checking for the > existence of the x_trx_log table before execution, ensuring a successful > migration. > *Error Details:* > {code:java} > [main] ERROR o.a.r.p.c.TrxLogV2MigrationUtil (TrxLogV2MigrationUtil.java:112) > Error while migrating trx logs from v1 to v2 > javax.persistence.PersistenceException: Exception [EclipseLink-4002] (Eclipse > Persistence Services - 2.7.12.v20230209-e5c4074ef3): > org.eclipse.persistence.exceptions.DatabaseException > Internal Exception: > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table > 'ranger.x_trx_log' doesn't exist > Error Code: 1146 > Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) > Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog > sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") > at > org.eclipse.persistence.internal.jpa.QueryImpl.getDetailedException(QueryImpl.java:391) > at > org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:264) > at > org.eclipse.persistence.internal.jpa.QueryImpl.getResultList(QueryImpl.java:482) > at > org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.migrateTrxLogs(TrxLogV2MigrationUtil.java:129) > at > org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.execLoad(TrxLogV2MigrationUtil.java:110) > at org.apache.ranger.patch.BaseLoader.load(BaseLoader.java:101) > at > org.apache.ranger.patch.BaseLoader$$FastClassBySpringCGLIB$$3c27c16d.invoke(<generated>) > at > org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:792) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) > at > org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) > at > org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) > at > org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) > at > org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) > at > org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:707) > at > org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil$$EnhancerBySpringCGLIB$$a6bd5385.load(<generated>) > at > org.apache.ranger.patch.cliutil.TrxLogV2MigrationUtil.main(TrxLogV2MigrationUtil.java:80) > Caused by: org.eclipse.persistence.exceptions.DatabaseException: > Internal Exception: > com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table > 'ranger.x_trx_log' doesn't exist > Error Code: 1146 > Call: SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID) > Query: ReportQuery(name="XXTrxLog.findDistinctTrxIds" referenceClass=XXTrxLog > sql="SELECT TRX_ID FROM x_trx_log GROUP BY TRX_ID ORDER BY MIN(ID)") > at > org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:342) > at > org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:700) > at > org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:567) > at > org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:2105) > at > org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:313) > at > org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:275) > at > org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:261) > at > org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:345) > at > org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.selectAllRows(DatasourceCallQueryMechanism.java:765) > at > org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllRowsFromTable(ExpressionQueryMechanism.java:2776) > at > org.eclipse.persistence.internal.queries.ExpressionQueryMechanism.selectAllReportQueryRows(ExpressionQueryMechanism.java:2713) > at > org.eclipse.persistence.queries.ReportQuery.executeDatabaseQuery(ReportQuery.java:894) > at > org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:913) > at > org.eclipse.persistence.queries.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:1191) > at > org.eclipse.persistence.queries.ReadAllQuery.execute(ReadAllQuery.java:485) > at > org.eclipse.persistence.queries.ObjectLevelReadQuery.executeInUnitOfWork(ObjectLevelReadQuery.java:1279) > at > org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:3004) > at > org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1898) > at > org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1880) > at > org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1845) > at > org.eclipse.persistence.internal.jpa.QueryImpl.executeReadQuery(QueryImpl.java:262) > ... 17 common frames omitted > Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table > 'ranger.x_trx_log' doesn't exist > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) > at > sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) > at > sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) > at java.lang.reflect.Constructor.newInstance(Constructor.java:423) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)