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

[jira] [Updated] (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 ]

Mirza Aliev updated IGNITE-18410:
---------------------------------
    Description: 
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 return wron 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`)

 

  was:
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.
 


> 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
>            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 return wron 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)