[jira] [Created] (IGNITE-13906) Possible deadlock between methods from GridEncryptionManager

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Created] (IGNITE-13906) Possible deadlock between methods from GridEncryptionManager

Anton Vinogradov (Jira)
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)