[ https://issues.apache.org/jira/browse/IGNITE-19606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17733052#comment-17733052 ]
Alexander Lapin commented on IGNITE-19606: ------------------------------------------ [~v.pyatkov] LGTM, thanks! > 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)