[
https://issues.apache.org/jira/browse/IGNITE-18441?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vladislav Pyatkov updated IGNITE-18441:
---------------------------------------
Description:
*Motivation:*
We are using a busy lock to avoid invocation of a manager's method when the
manager has already stopped. The same manner the lock should work in
MetastorageManager, but because it has a specific future
({_}metaStorageSvcFut{_}) that completes when a metasorage RAFT group starts.
We chain operation future to _metaStorageSvcFut_ under busy lock, but operation
future's completion is not wrapped with busy lock.
*Definition of done:*
All code invocation in the metastorage manager should lead to
_NODE_STOPPING_ERR_ when the manager is stopped, whatever it is during chanting
of futures or code in the future listener.
*Implementation notes:*
Wrap all action that executed after _metaStorageSvcFut_ in
_IgniteUtils#inBusyLock(lock, supplier)_
was:
*Motivation:*
We are using a busy lock to avoid invocation of a manager's method when the
manager has already stopped. The same manner the lock should work in
MetastorageManager, but because it has a specific future
({_}metaStorageSvcFut{_}) that completes when a metasorage RAFT group starts.
We chain operation future to _metaStorageSvcFut_ under busy lock, but operation
future's completion is not wrapped with busy lock.
*Implementation notes:*
Wrap all action that executed after _metaStorageSvcFut_ in
_IgniteUtils#inBusyLock(lock, supplier)_
> Fix busylock usage in MetastorageManager
> ----------------------------------------
>
> Key: IGNITE-18441
> URL: https://issues.apache.org/jira/browse/IGNITE-18441
> Project: Ignite
> Issue Type: Bug
> Reporter: Andrey Mashenkov
> Priority: Major
> Labels: ignite-3
>
> *Motivation:*
> We are using a busy lock to avoid invocation of a manager's method when the
> manager has already stopped. The same manner the lock should work in
> MetastorageManager, but because it has a specific future
> ({_}metaStorageSvcFut{_}) that completes when a metasorage RAFT group starts.
> We chain operation future to _metaStorageSvcFut_ under busy lock, but
> operation future's completion is not wrapped with busy lock.
> *Definition of done:*
> All code invocation in the metastorage manager should lead to
> _NODE_STOPPING_ERR_ when the manager is stopped, whatever it is during
> chanting of futures or code in the future listener.
> *Implementation notes:*
> Wrap all action that executed after _metaStorageSvcFut_ in
> _IgniteUtils#inBusyLock(lock, supplier)_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)