Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Memory leak in ConnectorTracker when push is enabled and no transmission from the client #7748

Closed
vaadin-bot opened this issue Jul 12, 2016 · 8 comments
Labels
Milestone

Comments

@vaadin-bot
Copy link
Collaborator

Originally by arek_da


In such scenario the syncIdToUnregisteredConnectorIds TreeMap gets overloaded causing eventually OutOfMemory error.
Please note that ConnectorTracker.cleanConcurrentlyRemovedConnectorIds is called upon transmission from the client.
In my case the application does huge amount of pushes while some clients use it as a display board (without any client interaction for a long time)

A fragment of heap trace:
759 715 240 (96,4%) [768] 68 com/fxe/gui/MainUI 0x78091e4d0
|- 758 225 000 (96,21%) [88] 7 com/vaadin/ui/ConnectorTracker 0x780af6898
|- 756 101 384 (95,94%) [80] 1 java/util/TreeMap 0x780b06690
|- 756 101 304 (95,94%) [56] 4 java/util/TreeMap$Entry 0x78ac358c8


Imported from https://dev.vaadin.com/ issue #20048

@vaadin-bot vaadin-bot added the bug label Dec 10, 2016
@markathomas
Copy link

+1 - I have heap dumps where the connector tracker is holding hundreds of thousands of references for a small app. There definitely seems to be a memory leak in this area of Vaadin. I'll be happy to share an HPROF heap dump with the Vaadin team if they feel it would be helpful.

@Artur-
Copy link
Member

Artur- commented Dec 16, 2016

Is this the same as #7657, which was fixed in 7.7.0?

@markathomas
Copy link

No, I am using 7.7.5 and seeing a memory leak in ConnectorTracker.

1 similar comment
@markathomas
Copy link

markathomas commented Dec 16, 2016 via email

@Artur-
Copy link
Member

Artur- commented Dec 22, 2016

You do not happen to have an example project to share? If the problem is that syncIdToUnregisteredConnectorIds grows, then you are probably removing components in the push messages. Possibly a workaround could be to update components instead of adding and removing

The fix in #7657 should resolve it by acknowledging push messages when a component has been removed, giving the server a chance to do cleanup

@markathomas
Copy link

no, i don't have a simple example to share. shouldn't the fix for #7657 already be in the version i'm using, 7.7.5, or do i need to set a poll interval? we have opened a support request on this issue as we're having to drop containers every 2 days or so. Tatu is handling the support request and has access to our code and heap dump.

@TatuLund
Copy link
Contributor

TatuLund commented Jan 4, 2017

Related: #8111

@pleku
Copy link
Contributor

pleku commented Jan 11, 2017

Closed by 62c0d73

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants