[ 
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 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}})

 

  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.

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 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}})

 


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

Reply via email to