You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Alexander Lapin (Jira)" <ji...@apache.org> on 2023/06/15 13:03:00 UTC

[jira] [Updated] (IGNITE-19606) Linearize metaStorageManager.deployWatches and metaStorageManager.start()

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

Alexander Lapin updated IGNITE-19606:
-------------------------------------
    Reviewer: Alexander Lapin

> Linearize metaStorageManager.deployWatches and metaStorageManager.start()
> -------------------------------------------------------------------------
>
>                 Key: IGNITE-19606
>                 URL: https://issues.apache.org/jira/browse/IGNITE-19606
>             Project: Ignite
>          Issue Type: Bug
>            Reporter: Alexander Lapin
>            Assignee: Vladislav Pyatkov
>            Priority: Major
>              Labels: ignite-3
>          Time Spent: 7h 20m
>  Remaining Estimate: 0h
>
> h3. Motivation
> Occurred that in some tests deployWatches was called on not started metaStorageManager which leads to failures and unpredictable artifacts. In order to prevent such possibility it's required to linearize it though metaStorageSvcFut.
> h3. Definition of Done
> Calling deployWatches will chain with metaStorageManager.start().
> h3. Implementation Notes
>  * I don't think that it's worth to prepare some general solution for all IgniteComponents that will prevent calling their methods before start, for now, it's only about MetaStorage and deployWatches.
>  * MetaStorageManager has two implementations MetaStorageManagerImpl and StandaloneMetaStorageManager, so we should have two tests for a given logic.
>  * Linearization itself might be implemented though `metaStorageSvcFut.thenRun(() -> \{storage.startWatches(this::onRevisionApplied);});`
>  



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