Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
0.95.2
-
None
-
Reviewed
Description
When underlying store changed (due compact, bulk load, etc), we destroy current KeyValueHeap and recreate it using checkReseek call. Besides heap recreation, it resets underlying QueryMatcher instance.
The problem is that checkReseek not called by seek() and reseek(), only by next(). If someone calls seek() just after store changed, it gets wrong scanner results. Call to reseek may end up with NPE.
AFAIK, current codebase don't call seek and reseek, but it is quite possible in future. Personally, I spent lots of time to find source of wrong scanner results in HBASE-5416.
Attachments
Attachments
Issue Links
- breaks
-
HBASE-5416 Filter on one CF and if a match, then load and return full row (WAS: Improve performance of scans with some kind of filters)
- Closed