You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2018/03/16 09:01:00 UTC

[jira] [Commented] (IGNITE-7964) Read a key from metastorage may hang on node restart

    [ https://issues.apache.org/jira/browse/IGNITE-7964?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401613#comment-16401613 ] 

ASF GitHub Bot commented on IGNITE-7964:
----------------------------------------

GitHub user sergey-chugunov-1985 opened a pull request:

    https://github.com/apache/ignite/pull/3645

    IGNITE-7964 rmvId is stored to MetaStorage metapage during operations

    

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/gridgain/apache-ignite ignite-7964

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/ignite/pull/3645.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3645
    
----
commit f63635eece62be3ce5f581d7a981da36985775a2
Author: Sergey Chugunov <se...@...>
Date:   2018-03-16T08:57:18Z

    IGNITE-7964 rmvId is stored to MetaStorage metapage during operations

----


> Read a key from metastorage may hang on node restart
> ----------------------------------------------------
>
>                 Key: IGNITE-7964
>                 URL: https://issues.apache.org/jira/browse/IGNITE-7964
>             Project: Ignite
>          Issue Type: Bug
>          Components: persistence
>    Affects Versions: 2.4
>            Reporter: Sergey Chugunov
>            Assignee: Sergey Chugunov
>            Priority: Major
>             Fix For: 2.5
>
>
> 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).
> h2. Steps to reproduce
>  # Start single node with persistence enabled.
>  # Put 60 keys to metastore, update 40 of them.
>  # Restart node.
> h2. Expected behavior
> Node starts just fine.
> h2. Actual behavior
> Node hangs, thread dump of starting thread shows looping on reading BaselineTopology from metastore.
> h2. Workaround
> No impact if no more than 52 keys are stored in metastore or keys are never updated.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)