[ https://issues.apache.org/jira/browse/HIVE-19927?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16576181#comment-16576181 ]
Alisha Prabhu edited comment on HIVE-19927 at 8/10/18 12:22 PM: ---------------------------------------------------------------- Hi [~sankarh], Observed that ReplDumpTaskTest.java fail with the below error after the above commit. Command used in ql module : mvn -Dtest=ReplDumpTaskTest test Error: {code:java} [ERROR] removeDBPropertyToPreventRenameWhenBootstrapDumpOfTableFails(org.apache.hadoop.hive.ql.exec.repl.ReplDumpTaskTest) Time elapsed: 3.008 s <<< ERROR! java.lang.Exception: Unexpected exception, expected<org.apache.hadoop.hive.ql.exec.repl.ReplDumpTaskTest$TestException> but was<org.mockito.exceptions.verification.WantedButNotInvoked> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.handleException(PowerMockJUnit44RunnerDelegateImpl.java:370) {code} However, after debugging I have observed that, at line 225 of ReplDumpTask.java, as shown below , Long bootDumpBeginReplId = queryState.getConf().getLong(ReplicationSemanticAnalyzer.LAST_REPL_ID_KEY, -1L); is unable to fetch details from the "queryState" object. Could you please help me understand the context behind the change? or a possible reason for the above error ? was (Author: alishap): Hi [~sankarh], Observed that ReplDumpTaskTest.java fail with the below error after the above commit. Command used in ql module : mvn -Dtest=ReplDumpTaskTest test Error: {code:java} [ERROR] removeDBPropertyToPreventRenameWhenBootstrapDumpOfTableFails(org.apache.hadoop.hive.ql.exec.repl.ReplDumpTaskTest) Time elapsed: 3.008 s <<< ERROR! java.lang.Exception: Unexpected exception, expected<org.apache.hadoop.hive.ql.exec.repl.ReplDumpTaskTest$TestException> but was<org.mockito.exceptions.verification.WantedButNotInvoked> at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.handleException(PowerMockJUnit44RunnerDelegateImpl.java:370) {code} However, after debugging I have observed that, at line 225 of ReplDumpTask.java, as shown below , Long bootDumpBeginReplId = queryState.getConf().getLong(ReplicationSemanticAnalyzer.LAST_REPL_ID_KEY, -1L); it is unable to fetch details from the "queryState" object. Could you please help me understand the context behind the change? or a possible reason for the above error ? > Last Repl ID set by bootstrap dump is incorrect and may cause data loss if > have ACID/MM tables. > ----------------------------------------------------------------------------------------------- > > Key: HIVE-19927 > URL: https://issues.apache.org/jira/browse/HIVE-19927 > Project: Hive > Issue Type: Sub-task > Components: HiveServer2, repl, Transactions > Affects Versions: 3.1.0 > Reporter: Sankar Hariappan > Assignee: Sankar Hariappan > Priority: Major > Labels: DR, pull-request-available, replication > Fix For: 4.0.0, 3.2.0 > > Attachments: HIVE-19927.01-branch-3.patch, HIVE-19927.01.patch, > HIVE-19927.02.patch, HIVE-19927.03.patch, HIVE-19927.04.patch > > > During bootstrap dump of ACID tables, let's consider the below sequence. > - Current session (REPL DUMP), Open txn (Txn1) - Event-10 > - Another session (Session-2), Open txn (Txn2) - Event-11 > - Session-2 -> Insert data (T1.D1) to ACID table. - Event-12 > - Get lastReplId = last event ID logged. (Event-12) > - Session-2 -> Commit Txn (Txn2) - Event-13 > - Dump ACID tables based on validTxnList based on Txn1. --> This step skips > all the data written by txns > Txn1. So, T1.D1 will be missing. > - Commit Txn (Txn1) > - REPL LOAD from bootstrap dump will skip T1.D1. > - Incremental REPL DUMP will start from Event-13 and hence lose Txn2 which is > opened after Txn1. So, data T1.D1 will be lost for ever. > Proposed to capture the lastReplId of bootstrap before opening current txn > (Txn1) and store it in Driver context and use it for dump. -- This message was sent by Atlassian JIRA (v7.6.3#76005)