You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Ivan Bessonov (Jira)" <ji...@apache.org> on 2022/12/19 08:29:00 UTC

[jira] [Assigned] (IGNITE-18410) Put data to metastorage during some components start leads to assertion error

     [ https://issues.apache.org/jira/browse/IGNITE-18410?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ivan Bessonov reassigned IGNITE-18410:
--------------------------------------

    Assignee: Ivan Bessonov

> Put data to metastorage during some components start leads to assertion error
> -----------------------------------------------------------------------------
>
>                 Key: IGNITE-18410
>                 URL: https://issues.apache.org/jira/browse/IGNITE-18410
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Mirza Aliev
>            Assignee: Ivan Bessonov
>            Priority: Major
>              Labels: ignite-3
>
> When we was developing https://issues.apache.org/jira/browse/IGNITE-18087 some tests on restart started to fail on the assertion 
> {code:java}
> assert rev >= appliedRevision : IgniteStringFormatter.format(
> {code} 
> in {{ConfigurationCatchUpListener}}.
> It means that we have inconsistency when we compare storage revision from configuration and revision from the event. Needed to investigate.
> UPD:
> We made a fix in  {{DistributedConfigurationStorage#resolveRevision}} and added {{else}} section were we initialised master key with 0 when there was no changes in configuration, but some puts to the metastorage were done, so the {{DistributedConfigurationStorage#resolveRevision}} method returned wrong non-null revision for the configuration. But seems that this is not enough and we still get some failed tests.
> We fail we the assertion 
> {code:java}
> assert data.isEmpty() || cfgRevision > 0;
> {code}
> in {{DistributedConfigurationStorage#readDataOnRecovery0}} (see muted test {{ItDistributedConfigurationStorageTest#testRestartWithPds}})
> or get exception 
> {code:java}
>                     if (revision <= appliedRevision) {
>                         throw new MetaStorageException(DEPLOYING_WATCH_ERR, String.format(
>                                 "Current revision (%d) must be greater than the revision in the Vault (%d)",
>                                 revision, appliedRevision
>                         ));
>                     }
> {code}
> in
> MetaStorageManager#storeEntries (see muted test {{ItTablesApiTest#testGetTableFromLaggedNode}})
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)