[ https://issues.apache.org/jira/browse/IGNITE-7085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexandr Fedotov updated IGNITE-7085: ------------------------------------- Description: When PDS is enabled and IGNITE_BINARY_SORT_OBJECT_FIELDS property is set and IgniteCache#put is called a node hangs. The root cause is that when IGNITE_BINARY_SORT_OBJECT_FIELDS flag is enabled BinaryMetadata#fields field is stored as TreeMap, but because BinaryUtils#WRAP_TREES is set by default, that leads to BinaryMetadata#fields being wrapped into a BinaryTreeMap. When an update for BinaryMetadata is initiated it ends up in a discovery thread from where a metadata update for BinaryTreeMap is initiated. Since this update should be processed by the same discovery thread, that results in a deadlock. was: When PDS is enabled and IGNITE_BINARY_SORT_OBJECT_FIELDS property is set and IgniteCache#put is called a node hangs. The root cause is that when IGNITE_BINARY_SORT_OBJECT_FIELDS flag is enabled BinaryMetadata#fields field is stored as TreeMap, but because BinaryUtils#WRAP_TREES is set by default, that leads to BinaryMetadata#fields being wrapped into BinaryTreeMap. When an update for BinaryMetadata is initiated it ends up in a discovery thread from where a metadata update for BinaryTreeMap is initiated. Since this update should be processed by the same discovery thread, that results in a deadlock. > When PDS is enabled and IGNITE_BINARY_SORT_OBJECT_FIELDS property is set and > IgniteCache#put is called a node hangs > ------------------------------------------------------------------------------------------------------------------- > > Key: IGNITE-7085 > URL: https://issues.apache.org/jira/browse/IGNITE-7085 > Project: Ignite > Issue Type: Bug > Components: binary > Affects Versions: 2.1 > Reporter: Alexandr Fedotov > Assignee: Alexandr Fedotov > Fix For: 2.4 > > > When PDS is enabled and IGNITE_BINARY_SORT_OBJECT_FIELDS property is set and > IgniteCache#put is called a node hangs. > The root cause is that when IGNITE_BINARY_SORT_OBJECT_FIELDS flag is enabled > BinaryMetadata#fields field is stored as TreeMap, but because > BinaryUtils#WRAP_TREES is > set by default, that leads to BinaryMetadata#fields being wrapped into a > BinaryTreeMap. > When an update for BinaryMetadata is initiated it ends up in a discovery > thread from where > a metadata update for BinaryTreeMap is initiated. Since this update should be > processed by the same discovery thread, that results in a deadlock. -- This message was sent by Atlassian JIRA (v6.4.14#64029)