You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Semen Boikov (JIRA)" <ji...@apache.org> on 2017/04/05 12:49:41 UTC

[jira] [Assigned] (IGNITE-2466) OutOfMemory when PRIMARY_SYNC mode is used

     [ https://issues.apache.org/jira/browse/IGNITE-2466?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Semen Boikov reassigned IGNITE-2466:
------------------------------------

    Assignee: Dmitry Karachentsev  (was: Semen Boikov)

Hi,

I reviewed your changes, have some comments:
- I think new interface BackPressureTracker is not needed, just use existing GridNioMessageTracker everywhere. Also you can not change CommunicationListener, this is public API, so use class cast where needed.
- I don't like you added one more thread local in GridNioBackPressureControl. I think single thread local is enough, (threadProcessingMessage is true is there is non-null tracker)
- this changes in GridDhtAtomicCache:
{noformat}
if (node.isClient() && !dhtFut.isDone()) {
    final BackPressureTracker tracker = GridNioBackPressureControl.threadTracker();

    if (tracker != null) {
        tracker.registerMessage();

        dhtFut.listen(new IgniteInClosure<IgniteInternalFuture<Void>>() {
            @Override public void apply(IgniteInternalFuture<Void> fut) {
                tracker.deregisterMessage();
            }
        });
    }
}
{noformat}
I think check 'node.isClient()' is not needed, it should not matter if update was initiated by client or server, instead you need add check taht writeSynchronizationMode = PRIMARY_SYNC

Thanks

> OutOfMemory when PRIMARY_SYNC mode is used
> ------------------------------------------
>
>                 Key: IGNITE-2466
>                 URL: https://issues.apache.org/jira/browse/IGNITE-2466
>             Project: Ignite
>          Issue Type: Bug
>    Affects Versions: 1.5.0.final
>            Reporter: Denis Magda
>            Assignee: Dmitry Karachentsev
>             Fix For: 2.0
>
>         Attachments: example-ignite.xml, MemTest.java
>
>
> To reproduce, run two server nodes with 2g of heap each and then MemTest. Servers will fail with OOME. If backups are disabled or there is only one server node, it works.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)