[ 
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)

Reply via email to