[
https://issues.apache.org/jira/browse/PHOENIX-7666?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18113721#comment-18113721
]
Li Zhexi commented on PHOENIX-7666:
-----------------------------------
Hi [~tkhurana]
I have met the same issue in branch-5.2.1 , and I tried mergeing the PR, it do
not work.
In addition to your modification, I also modified
phoenix-core-client/src/main/java/org/apache/phoenix/filter/SkipScanFilter.java
and overrode the reset method. This error seems fixed.
| @Override| | |
| | | public void reset() {|
| | | // Clear the per-row hint map so that the filter can be safely reused|
| | | // across scanner instances (e.g., during index read-repair in|
| | | // GlobalIndexChecker where indexScan = new Scan(scan) shares the same|
| | | // filter object). Without this, nextCellHintMap retains stale hints|
| | | // from the previous scanner, causing "The next hint must come after|
| | | // previous hint" IllegalStateException.|
| | | nextCellHintMap.clear();|
| | | }|
Hope this is helpful for your Jira.
> Index query failure with SkipScanFilter
> ---------------------------------------
>
> Key: PHOENIX-7666
> URL: https://issues.apache.org/jira/browse/PHOENIX-7666
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 5.1.3, 5.2.1
> Reporter: Tanuj Khurana
> Assignee: Tanuj Khurana
> Priority: Major
> Fix For: 5.3.0, 5.2.2
>
>
> When the query is served by the index and the scan has a skipscan filter, the
> query fails with the exception:
> {code:java}
> Caused by: java.lang.IllegalStateException: The next hint must come after
> previous hint (prev=val1\x00val2d//LATEST_TIMESTAMP/Maximum/vlen=0/seqid=0,
> next=val1\x00val2d//LATEST_TIMESTAMP/Maximum/vlen=0/seqid=0,
> kv=val1\x00val2c\x00c/0:\x00\x00\x00\x00/1752538149585/Put/vlen=1/seqid=8) at
> org.apache.phoenix.filter.SkipScanFilter.setNextCellHint(SkipScanFilter.java:204)
> at
> org.apache.phoenix.filter.SkipScanFilter.filterCell(SkipScanFilter.java:178)
> at
> org.apache.hadoop.hbase.filter.FilterListWithAND.filterCell(FilterListWithAND.java:199)
> at
> org.apache.hadoop.hbase.filter.FilterList.filterCell(FilterList.java:173)
> at
> org.apache.phoenix.filter.UnverifiedRowFilter.filterCell(UnverifiedRowFilter.java:90)
> at
> org.apache.phoenix.filter.PagingFilter.filterCell(PagingFilter.java:222)
> at
> org.apache.hadoop.hbase.regionserver.querymatcher.UserScanQueryMatcher.matchColumn(UserScanQueryMatcher.java:156)
> at
> org.apache.hadoop.hbase.regionserver.querymatcher.NormalUserScanQueryMatcher.match(NormalUserScanQueryMatcher.java:80)
> {code}
> This is happening because when an index row is unverified, the read repair
> process can in some cases rewind the scanner which violates the state of the
> skipscan filter and the skipscan filter throws an IllegalStateException
--
This message was sent by Atlassian Jira
(v8.20.10#820010)