increment(Increment, Integer, boolean) might fail
-------------------------------------------------
Key: HBASE-3398
URL: https://issues.apache.org/jira/browse/HBASE-3398
Project: HBase
Issue Type: Bug
Affects Versions: 0.90.0
Reporter: Prakash Khemani
Assignee: Jonathan Gray
In org.apache.hadoop.hbase.regionserver.HRegion.increment(Increment, Integer,
boolean) the following loop assumes that the result from geLastIncrement() has
a single entry for a given <family, qualifier>. But that is not necessarily
true. getLastIncrement() does a union of all entries found in each of the store
files ... and multiple versions of the same key are quite possible.
List<KeyValue> results = getLastIncrement(get);
// Iterate the input columns and update existing values if they were
// found, otherwise add new column initialized to the increment amount
int idx = 0;
for (Map.Entry<byte [], Long> column : family.getValue().entrySet()) {
long amount = column.getValue();
if (idx < results.size() &&
results.get(idx).matchingQualifier(column.getKey())) {
amount += Bytes.toLong(results.get(idx).getValue());
idx++;
}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.