Mirza Aliev created IGNITE-13906:
------------------------------------
Summary: Possible deadlock between methods from GridEncryptionManager
Key: IGNITE-13906
URL:
https://issues.apache.org/jira/browse/IGNITE-13906 Project: Ignite
Issue Type: Bug
Affects Versions: 2.9
Reporter: Mirza Aliev
It seems that {{GridEncryptionManager}} uses {{metaStorageMux}} and {{checkpointReadLock}} in an inconsistent way.
Sometimes, the implementation acquires the mutex fist and then {{checkpointReadLock}}, sometimes vice versa, which may lead to a deadlock.
Let's consider the following scenario:
Thread-1: {{removeGroupKey}} acquired {{metaStorageMux}} and trying to get {{checkpointReadLock}} (cannot proceed further because of checkpointer)
Therad-2: {{doChangeMasterKey}} acquired {{checkpointReadLock}} and trying to get {{metaStorageMux}} (cannot proceed further due to thread-1)
Checkpointer-thread: trying to acquire the write lock (cannot get the lock due to thread-2)
Possible solutuion: acquire {{metaStorageMux}} before {{checkpointReadLock}} in {{doChangeMasterKey}} method
--
This message was sent by Atlassian Jira
(v8.3.4#803005)