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

Read a key from metastorage may hang on node restart

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.4
    • 2.5
    • persistence
    • None

    Description

      MetaStorage handles rmvId counter incorrectly: it is not propagated to metapage and is not persisted to disk; on restart rmvId is set to 0 which leads to incorrect initialization of BPlusTree where all keys live.

      As a consequence if there are more than 52 keys and more than 31 of them get updated than on next restart node hangs on attempt to read BaselineTopology info from metastore (because of endless looping inside BPlusTree starting from the root over and over again).

      Steps to reproduce

      1. Start single node with persistence enabled.
      2. Put 60 keys to metastore, update 40 of them.
      3. Restart node.

      Expected behavior

      Node starts just fine.

      Actual behavior

      Node hangs, thread dump of starting thread shows looping on reading BaselineTopology from metastore.

      Workaround

      No impact if no more than 52 keys are stored in metastore or keys are never updated.

      Attachments

        Issue Links

          Activity

            People

              sergey-chugunov Sergey Chugunov
              sergey-chugunov Sergey Chugunov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: