Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-6265

Calling getTimestamp() on a KV in cp.prePut() causes KV not to be flushed

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 0.92.0, 0.94.0, 0.95.2
    • 0.94.1, 0.95.0
    • regionserver
    • 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

        1. HBASE-6265-v3.patch
          2 kB
          Lars George
        2. HBASE-6265-v2.patch
          2 kB
          Lars George
        3. HBASE-6265-0.94.patch
          2 kB
          Lars George
        4. HBASE-6265-0.92.patch
          2 kB
          Lars George
        5. HBASE-6265.patch
          2 kB
          Lars George

        Issue Links

          Activity

            People

              larsgeorge Lars George
              larsgeorge Lars George
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: