[ https://issues.apache.org/jira/browse/IGNITE-19606?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Lapin updated IGNITE-19606: ------------------------------------- Description: 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);});` was: 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 given assertion. * Assertion itself might be implemented though `metaStorageSvcFut.thenRun(() -> \{storage.startWatches(this::onRevisionApplied);});` > Linearize metaStorageManager.deployWatches and metaStorageManager.start() > ------------------------------------------------------------------------- > > Key: IGNITE-19606 > URL: https://issues.apache.org/jira/browse/IGNITE-19606 > Project: Ignite > Issue Type: Improvement > Reporter: Alexander Lapin > Assignee: Alexander Lapin > Priority: Major > Labels: ignite-3 > > 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)