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

Reply via email to