Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
Docs Required, Release Notes Required
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)
Attachments
Issue Links
- is cloned by
-
IGNITE-18446 Fix busylock usage in ClusterManagementGroupManager
- Resolved
- relates to
-
IGNITE-15389 org.apache.ignite.internal.metastorage.client.CursorImpl has potential deadlock inside
- Resolved