[
https://issues.apache.org/jira/browse/PHOENIX-5018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16772444#comment-16772444
]
Hadoop QA commented on PHOENIX-5018:
------------------------------------
{color:red}-1 overall{color}. Here are the results of testing the latest
attachment
http://issues.apache.org/jira/secure/attachment/12959313/PHOENIX-5018.master.004.patch
against master branch at commit f1a6081c23b22afb0534e560618f36ec9b486db6.
ATTACHMENT ID: 12959313
{color:green}+1 @author{color}. The patch does not contain any @author
tags.
{color:red}-1 tests included{color}. The patch doesn't appear to include
any new or modified tests.
Please justify why no new tests are needed for this
patch.
Also please list what manual steps were performed to
verify this patch.
{color:green}+1 javac{color}. The applied patch does not increase the
total number of javac compiler warnings.
{color:red}-1 release audit{color}. The applied patch generated 1 release
audit warnings (more than the master's current 0 warnings).
{color:red}-1 lineLengths{color}. The patch introduces the following lines
longer than 100:
+ String dataTableFullName, String
indexTableFullName) throws SQLException {
+ IndexToolIT.assertExplainPlan(localIndex, actualExplainPlan,
dataTableFullName, indexTableFullName);
+ " (id varchar(10) not null primary key, val varchar(10), ts
timestamp)" + tableDDLOptions);
+ conn.createStatement().execute("upsert into " + tableName + " values
('aaa', 'abc', current_date())");
+ conn.createStatement().execute("upsert into " + tableName + " values
('bbb', 'bcd', current_date())");
+ conn.createStatement().execute("CREATE "+ (localIndex ? "LOCAL " : "")
+ " INDEX " + indexName + " on " +
+ IndexToolIT.runIndexTool(true, false, null, (view ? viewName :
dataTableName), indexName);
+ String selectSql = String.format("SELECT * FROM %s WHERE val = 'abc'",
(view ? viewName : dataTableName));
+ assertExplainPlan(conn, localIndex, selectSql, dataTableName, (view ?
"_IDX_" + dataTableName : indexName));
+
assertTrue(rs.unwrap(PhoenixResultSet.class).getCurrentRow().getValue(0).getTimestamp()
< clock2.initialTime() &&
{color:red}-1 core tests{color}. The patch failed these unit tests:
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.TableDDLPermissionsIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.MutableIndexSplitReverseScanIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ConcurrentMutationsIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ChangePermissionsIT
./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.MutableIndexSplitForwardScanIT
Test results:
https://builds.apache.org/job/PreCommit-PHOENIX-Build/2340//testReport/
Release audit warnings:
https://builds.apache.org/job/PreCommit-PHOENIX-Build/2340//artifact/patchprocess/patchReleaseAuditWarnings.txt
Console output:
https://builds.apache.org/job/PreCommit-PHOENIX-Build/2340//console
This message is automatically generated.
> Index mutations created by UPSERT SELECT will have wrong timestamps
> -------------------------------------------------------------------
>
> Key: PHOENIX-5018
> URL: https://issues.apache.org/jira/browse/PHOENIX-5018
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.14.0, 5.0.0
> Reporter: Geoffrey Jacoby
> Assignee: Kadir OZDEMIR
> Priority: Major
> Attachments: PHOENIX-5018.4.x-HBase-1.3.001.patch,
> PHOENIX-5018.4.x-HBase-1.3.002.patch, PHOENIX-5018.4.x-HBase-1.4.001.patch,
> PHOENIX-5018.4.x-HBase-1.4.002.patch, PHOENIX-5018.master.001.patch,
> PHOENIX-5018.master.002.patch, PHOENIX-5018.master.003.patch,
> PHOENIX-5018.master.004.patch
>
> Time Spent: 5.5h
> Remaining Estimate: 0h
>
> When doing a full rebuild (or initial async build) of a local or global index
> using IndexTool and PhoenixIndexImportDirectMapper, or doing a synchronous
> initial build of a global index using the index create DDL, we generate the
> index mutations by using an UPSERT SELECT query from the base table to the
> index.
> The timestamps of the mutations use the default HBase behavior, which is to
> take the current wall clock. However, the timestamp of an index KeyValue
> should use the timestamp of the initial KeyValue in the base table.
> Having base table and index timestamps out of sync can cause all sorts of
> weird side effects, such as if the base table has data with an expired TTL
> that isn't expired in the index yet. Also inserting old mutations with new
> timestamps may overwrite the data that has been newly overwritten by the
> regular data path during index build, which would lead to data loss and
> inconsistency issues.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)