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)