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

WAL can continue to log into archived segment if auto rollover enabled

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • None
    • None
    • None
    • Docs Required, Release Notes Required

    Description

      Currently, there is a possibility that WAL will continue to log into an archived segment after node restart.

      Bug scenario:

      1. WalAutoArchiveAfterInactivity enabled.
      2. Node is stopping with the G.stop("ign", false").
      3. T0: Performs last checkpoint write some records to current WAL segment(Segment#0) and freeze.
      4. T1: Auto rollover happens in FileWriteAheadLogManager#checkWalRolloverRequiredDuringInactivityPeriod.
      5. T2(FileArchiver) Archives Segment#0.

      After restart, WAL will continue to log into Segment#0 which leads that newly logged data will not be archived after rollover because FileArchiver will wait for Segment#2 in SegmentCurrentStateStorage#waitNextSegmentForArchivation.

      PR to highlight error - https://github.com/apache/ignite/pull/8997

      It seems we should to continue to log into the next segment if curAbsIdx == lastArchivedSegment on start.

      Attachments

        Issue Links

          Activity

            People

              nizhikov Nikolay Izhikov
              nizhikov Nikolay Izhikov
              Votes:
              0 Vote for this issue
              Watchers:
              2 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 - 4.5h
                  4.5h