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

Node can't start after forced shutdown if the wal archiver disabled

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.7
    • Fix Version/s: 2.8
    • Component/s: persistence
    • Labels:
      None

      Description

      If a server node killed with the disabled wal archive, it could fail on start with following exception:

      [18:37:53,887][SEVERE][sys-stripe-1-#2][G] Failed to execute runnable.
      java.lang.IllegalStateException: Failed to get page IO instance (page content is corrupted)
      	at org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forVersion(IOVersions.java:85)
      	at org.apache.ignite.internal.processors.cache.persistence.tree.io.IOVersions.forPage(IOVersions.java:97)
      	at org.apache.ignite.internal.pagemem.wal.record.delta.MetaPageUpdatePartitionDataRecord.applyDelta(MetaPageUpdatePartitionDataRecord.java:109)
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.applyPageDelta(GridCacheDatabaseSharedManager.java:2532)
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.lambda$performBinaryMemoryRestore$11(GridCacheDatabaseSharedManager.java:2327)
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.lambda$stripedApplyPage$12(GridCacheDatabaseSharedManager.java:2441)
      	at org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.lambda$stripedApply$13(GridCacheDatabaseSharedManager.java:2479)
      	at org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:550)
      	at org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
      	at java.lang.Thread.run(Thread.java:748)
      

      The reproducer is attached(works only on Linux).
      Steps to run the reproducer.
      1. Copy config/server.xml into IGNITE_HOME/config folder;
      2. Set IGNITE_HOME in the CorruptionReproducer class;
      3. Launch CorruptionReproducer.

        Attachments

        1. disabled-wal-archive-reproducer.zip
          4 kB
          Pavel Vinokurov

          Issue Links

            Activity

              People

              • Assignee:
                slava.koptilin Vyacheslav Koptilin
                Reporter:
                pvinokurov Pavel Vinokurov
              • Votes:
                0 Vote for this issue
                Watchers:
                5 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 - 20m
                  20m