Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
0.92.0, 0.94.0, 0.95.2
-
None
-
Reviewed
Description
There is an issue when you call getTimestamp() on any KV handed into a Coprocessor's prePut(). It initializes the internal "timestampCache" variable.
When you then pass it to the normal processing, the region server sets the time to the server time in case you have left it unset from the client side (updateLatestStamp() call).
The TimeRangeTracker then calls getTimestamp() later on to see if it has to include the KV, but instead of getting the proper time it sees the cached timestamp from the prePut() call.
Attachments
Attachments
Issue Links
- is duplicated by
-
HBASE-7774 RegionObserver.prePut() cannot rely on the Put's timestamps, can even cause data loss
- Closed