[
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:06 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);
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 ?
was (Author: alishap):
Hi [~sankarh],
I got an issue with ReplDumpTaskTest.java 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)