Uploaded image for project: 'Ignite'
  1. Ignite
  2. IGNITE-14821

AssertionError: Historical iterator tries to iterate WAL out of reservation

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • 2.11
    • None
    • None
    • Fixed an issue when multiple checkpoints in a single WAL segment could lead to incorrect WAL reservation.
    • Release Notes Required

    Description

      A reason of the issue is incorrect comparison WAL pointer, that leads to choose not quite the last pointer for reservation before rebalance. The code selected the earliest WAL segment, but not the last pointer in it.

      Assuming assertion error in description:

      Historical iterator tries to iterate WAL out of reservation [cache=SYSTEM_CACHEGROUP_LONGKEYS, reservedPointer=FileWALPointer [idx=10, fileOff=448674503, len=104925], historicalPointer=FileWALPointer [idx=10, fileOff=442844723, len=104925]]

      reservedPointer is chosen incorrect, but corresponds to the valid segment idx=10 (the same as in historicalPointer).

      A valid comparison of WAL pointers solves this issue. Segment number and segment offset participate in it together (look at the FileWalPointer#comapreTo method).

      Attachments

        Issue Links

          Activity

            People

              v.pyatkov Vladislav Pyatkov
              v.pyatkov Vladislav Pyatkov
              Slava Koptilin Slava Koptilin
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 0.5h
                  0.5h