[
https://issues.apache.org/jira/browse/PHOENIX-1314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14168111#comment-14168111
]
rajeshbabu edited comment on PHOENIX-1314 at 10/11/14 12:03 PM:
----------------------------------------------------------------
{code}
// we should either have no previous hint, or the next hint should
always come after the previous hint
// TODO: put this assert back after trying failing tests without it
// Tests failing with this assert include:
// DeleteIT.testDeleteAllFromTableWithIndexNoAutoCommitNoSalting()
// MutableIndexIT.testCoveredColumnUpdatesWithLocalIndex()
// assert previousCellHint == null ||
KeyValue.COMPARATOR.compare(nextCellHint, previousCellHint) > 0
// : "next hint must come after previous hint (prev=" +
previousCellHint + ", next=" + nextCellHint + ", kv=" + kv + ")";
{code}
[~jamestaylor] we should not have the assertion. Currently if filter gives an
hint then seek to hint happening on only current store scanner still other
store scanners(if any) can gives the rows less than hint. In such case
nextCellHint will be less than previousCellHint and assertion will fail.
Ideally seek should happen on all the store scanners. I am not sure in that
area.
If HBase behavior is correct then we should remove the assertion other wise we
should handle at HBase side such that seek happen on all the store scanners.
[~anoop.hbase], [~lhofhansl] are better people to judge. what do you say?
Thanks.
was (Author: rajesh23):
{code}
// we should either have no previous hint, or the next hint should
always come after the previous hint
// TODO: put this assert back after trying failing tests without it
// Tests failing with this assert include:
// DeleteIT.testDeleteAllFromTableWithIndexNoAutoCommitNoSalting()
// MutableIndexIT.testCoveredColumnUpdatesWithLocalIndex()
// assert previousCellHint == null ||
KeyValue.COMPARATOR.compare(nextCellHint, previousCellHint) > 0
// : "next hint must come after previous hint (prev=" +
previousCellHint + ", next=" + nextCellHint + ", kv=" + kv + ")";
{code}
[~jamestaylor] we should not have the assertion. Currently if filter gives an
hint then seek to hint happening on only current store scanner still other
store scanners(if any) can gives the rows less than hint. In such case
nextCellHint will be less than previousCellHint and assertion will fail.
Ideally seek should happen on all the store scanners. I am not sure in that
area.
[~anoop.hbase], [~lhofhansl] are better people to judge. what do you say about
having the assertion in SkipScanFilter#setNextCellHint?
Thanks.
> Assertion tripped for skip scan with two unit tests
> ---------------------------------------------------
>
> Key: PHOENIX-1314
> URL: https://issues.apache.org/jira/browse/PHOENIX-1314
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.1
> Reporter: James Taylor
> Assignee: rajeshbabu
> Attachments: PHOENIX-1314.patch
>
>
> After checking in a pretty sizeable change
> (https://git-wip-us.apache.org/repos/asf?p=phoenix.git;a=commit;h=d018cc1c6e01d9836de6e67af4f8b91de3269bfd),
> the assert in SkipScanFilter.setNextCellHint() started getting tripped for
> the following unit tests:
> - DeleteIT.testDeleteAllFromTableWithIndexNoAutoCommitNoSalting()
> - MutableIndexIT.testCoveredColumnUpdatesWithLocalIndex()
> The tests seem to pass without this assert (not sure what HBase does if the
> seek next hint is the same as the current row), but it would be good to get
> to the bottom of this. Would you mind taking a look, [~rajesh23]? It's
> possibly related to PHOENIX-1313.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)