[
https://issues.apache.org/jira/browse/IGNITE-2709?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15160282#comment-15160282
]
Semen Boikov commented on IGNITE-2709:
--------------------------------------
Reviewed, see one issue: in old code if 'onOwnerChanged' returns 'false' we try
to notify others futures otherwise do 'return', for asynchronous notification
'return' is missed and it does not handle case when 'onOwnerChanged' returns
'false'.
> High contention on a cache key leads to excsessive thread stack usage
> ---------------------------------------------------------------------
>
> Key: IGNITE-2709
> URL: https://issues.apache.org/jira/browse/IGNITE-2709
> Project: Ignite
> Issue Type: Bug
> Components: cache
> Affects Versions: ignite-1.4
> Reporter: Alexey Goncharuk
> Assignee: Alexey Goncharuk
> Attachments: stack.txt
>
>
> Currently {{GridCacheMvccManager#onOwnerChanged}} callback notifies listeners
> synchronously. This means that the call stack size for a transaction commit
> is proportional to the size of MVCC candidates queue. On a big enough queue
> size this leads to a StackOverflowError (see the file attached).
> I suggest the {{GridCacheMvccManager:158}} line be executed asynchronously
> after some (3-5) nested calls.
> The change should be properly benchmarked.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)